Tille - I can see you, read those man pages!   Tille's Site

Open Source Personal Bookkeeping Applications.

This is old (Jan. 2002)


Recently, I took the big step: I became an independent worker, a freelancer. Yes, I work at home. It's great, but even after a short while, I began to realise that there were some changes in my behaviour as far as it concerns finance and spending money. So I thought it would be a good idea to start keeping track of my personal accounts, what with me having more time to go shopping. I never thought I would do this, really. But now I do, and I'm feeling more secure knowing exactly how I spend my income.

Application hunting

I'm generally not the one to start using a new program in this household, so where was I going to start? Freshmeat would probably be the place. I entered the keyword "financial" and there was what I was looking for, a whole category named Office/Business::Financial::Accounting, with 54 projects. Now I wasn't going to test 54 applications, so I selected from those, using my standard criteria for applications:

  • run on my Linux box
  • rather straightforward to install since I'm no guru
  • Open Source and, in the case of dependencies, these have to be Open Source as well
  • frequent update/release scheme, under active development. I don't want any old stuff.

I based my selection on freshmeat indications about license type and last update date, which had to be in the last 6 months. This way, I selected 18 projects:

  • Accounting
  • Compiere
  • Emma
  • FreeMoney
  • GCTB
  • GnuCash
  • GnuLedger
  • jGnash
  • JobTracker
  • mfinance
  • NOLA
  • Numa
  • PHP-EinnahmenAusgaben
  • QHacc
  • QtTudo
  • SQL-Ledger Accounting
  • XdeFactor
  • XIWA

Then I started downloading and a second narrowing of my selection.

First disillusions

The first program, Accounting, has no dependencies filed, downloaded very quick since it's very small, but there was no documentation with the tar.gz-package. But I'm willing to give everything a fair chance, so I went for the project's homepage. This didn't help me, newbie, enough, so I abandoned Accounting and went on to the next program.

That was Compiere. This was looking a lot nicer, with extended support, mailinglists, bugfix requests and everything. It is based on a solid client-server model, but I needed an Oracle server. Now, in my better days maybe I can pass for a middle-sized company, but even then I wouldn't be using Oracle, since in my opinion, only 5 % of the people using Oracle really need it. It's a good product, but I'd rather use PostgreSQL which fits (almost) exactly the same purposes and is free. Even when some of you might say that you can download Oracle for free for Linux, it eats diskspace anyway.


Next came Emma, an Easy Money MAnagement program. Emma requires Gtk+ and Gnome, and preferably Python as well. As I'm running Ximian in my desktop environment, this was no problem. I downloaded the emma-0.7-7.i386.rpm package, first try the easy way, you can always compile the source later if it doesn't work. I installed the RPM package, which took about 2 seconds, and eagerly started the emma program. And there was my first image, after only 3 tries!
I felt at home immediately, Emma has the Gnome look and feel, with helpwindows and helpfunctions where you expect them, e.g. each button has a little helpbar that appears when you hold the mouse over it for a second. This really helps suspicious users like myself over the edge. I like a program that doesn't scare me, so I like an intuitive user interface. Emma sets up a series of standard accounts, including all kinds of costs and expenses you can imagine, ranging from carr and child care bills to income from tax refunding and lotteries, very complete.

screenshot emma1

Your actual data are saved in a plain textfile, which you can store anywhere. Afterwards you start Emma with this file as an argumand to the emma-command.
There is, as far as I could see, no currency defined, so this is an international application. Accounting is always double-entry, so you will know where your money came from, and more importantly, where it went. As shown in the picture, Emma supports hierarchical accounts, e.g. health care is split up in dental care, hospital costs, medicaments, doctor costs and vision care. You can even plan expenses in advance with the schedule function. Transactions can be limited, sorted and highlighted in several ways, which allows the transaction overview to be easily interpreted. Nice colours, too.

After having entered some test transactions I wanted to try the Report Creation Druid, which seemed a nice idea and is fairly adaptable as you can see below

screenshot emma2

but Emma crashed with a segfault when I tried to do something with the report. Also, there was supposed to be a charting function, according to the Emma-project homepage, but I didn't have those. Maybe I should have compiled the source...
According to the author, it should be fairly easy to adapt emma to your specific needs, using the python interface. I will try it, to link Emma to my bank account. Later ;-) Emma is also available in German, French, Japanese, Polish and Swedish. And they have a Debian package. There's a mailinglist and a list of authors in case you are having troubles. There's still a good deal of work to do, but in my opinion Emma can be a useful program the way it is now. I gave them a good score on freshmeat, I think we will be hearing more of Emma in the future.

Emma is available from http://rainbow.mimuw.edu.pl/~la181249/emma/home.php3#downloading

More discarded projects

The next project took somewhat more time. Freemoney requires a running Apache webserver, PostgreSQL, Perl and Interchange. I had 3 our of 4, so after reading more about that Interchange server, I decided to go and get it. Interchange is an Open Source E-Commerce platform, so I might as well try it. I started well on it and installing the E-commerce server is no problem, but I gave up when the installation required too much SQL knowledge. I decided that this program will be tested in a later phase, when my activities require features like order entry, customer handling and general ledger. For now, something to keep track of personal affaires will do. I'm sure they will get another chance because the developers on FreeMoney are quite serious and have strong beliefs in Open Source proven technology.

Next on my list was a project called GCTB, but there was again no documentation included in the package, and the website is in Spanish. Sorry, guys!


After that, I got lucky again, this time with GnuCash. GnuCash came with Ximian distribution (gnucash-1.4.11-ximian.5.i386.rpm), but I had never tried it before. Starting it from the menu didn't work, so I tried the command line. Thus I was informed the GnuCash needs a library called libguile.so.9. A flaw in Red Carpet? Who knows. Anyway, I downloaded a newer Guile (1.4) and this time the application started successfully. And overnight there was another update (using Red Carpet, again), so I don't expect any troubles here. GnuCash saw that I hadn't run the program since the last update, which apparently had something to do with currencies. All my data were nicely converted to some new scheme, and behold! it is even prettier than before

screenshot GnuCash1

This really is a nice surprise. Gnucash certainly meets my criterium concerning frequent updates. It requires Gtk+, Gnome, Guile (as mentioned), Glade, G-wrap and slip for "normal" use, which are all included in the general Linux distributions.
Accounts and transactions between accounts can be entered in a comfortable way, and use of different currencies is supported (as well as the Euro), provided you supply exchange rates to the program.

screenshot GnuCash2

GnuCash makes a wide range of reports, piecharts, balance sheets and the like. Everything you would want, actually, for making a business presentation, a financial plan for a new company or that kind of stuff..

screenshot GnuCash3

I for one wish it had existed when I was writing a businessplan once, I would have delighted my banker with the reporting features of GnuCash.

GnuCash provides support for general ledger, stockkeeping and even taxes, but I'm not the right person to check if this complies with local rules. It is certainly fit to serve general bookkeeping purposes. Hierarchical accounts and grouping of accounts are supported, with a handy general overview and details in separate windows. Transactions can be split up in their components, e.g. I payed this amount to the company that installed my home office, but the total invoice consists of service, parts and taxes. You can search transactions, with the Transaction Finder, this is a very useful feauture. Double-entry accounting can be enabled on a per account base and several account categories are defined, which provides the flexibility I need as a homeworker, where the line between business and private isn't always too clear. Files are stored in a directory .gnucash in your homedirectory, reports by default in your homedirectory, your actual account information in any file you want.

If needed, this program can grow with your business: recently multi-user support has been added, using a PostgreSQL backend. In the case of a growing enterprise, it is easily imaginable that you have to enter a lot of transactions in a short time. This can be realised using the Import function, which uses QIF data files. A web interface can be added.
There's a GnuCash mailinglist, plenty of documentation and examples, information for developers. GnuCash is definitely a mature product, but still the developers are looking ahead, musing on implementing more features. Keep up the good work, guys!

Available from http://www.gnucash.org


The next application I tried was jGnash, a Java archive. jGnash requires JDK1.3 or higher, but luckily my testmachine was already equipped with a working Java installation. And the application comes with sources, so I thought, "Why not?" The program came with the simple explanation:

To execute: java -jar jgnash_0.2.jar To extract source: jar xvf jgnash_0.2.jar

Not that difficult, isn't it? So I entered the execute command, a whole bunch of error messages about fonts not being found scrolled over the screen and I though "There goes my luck", but I got an image after a while. After the initial shock of running my first Java application, I was pleasantly surprised at the speed and response time. Of course it doesn't integrate as nicely with my desktop environment as a Gnome based program, but on the other hand, jGnash is cross-platform.

screenshot jGnash1

jGnash also supports hierarchical accounts and credit- and debit accounts and sets up a Bank Account, an Expense and an Income Account by default. Transfers can be entered in a simple, clear way, and they can be split. They can also be imported from a QIF file. But one of my problems, as a European, is that only Australian, Canadian and US dollars are available as currencies for my account.
There's a straight forward register, and that's about the tour of jGnash. It runs fine, but I won't be using it.

screenshot jGnash2

Available from http://sourceforge.net/projects/jgnash/

More disappointments

After this, I had a series of disappointments: JobTracker, mFinance and Nola use MySQL, the homepage of the Numa project was just blank (tried with several browsers, even tried viewing the source, but there wasn't any, I only tell you this to prove that I want to give each project a fair chance) and our German collegues who developed PHP-EinnahmenAusgaben also use a MySQL backend.

Q Home Accountant

QHacc was the next program that worked. It comes in a tarball with adequate documentation. Installation uses the wellknown configure-make-make install-method, I only had to set the QTDIR environment variable to my Qt installation, which resides in /usr/lib/qt-2.3.1 and the installation went fine.

To run the program, you either need to set the QHACC_HOME variable (e.g. to your homedirectory) or enter it as an argument on the commandline (e.g. qhacc -f ~).
My first impression was one of sympathy, because of the plain look and feel of this program. Also the fact that the QHacc developers were obviously thinking ahead when they implemented the possibility for input of old transactions was encouraging, what with me knowing nothing else than textfiles until now.
QHacc supports single and double entry bookkeeping, and it gives detailed account information. It is independent of the user's local currency, which is, as far as I'm concerned, a good thing.

screenshot qhacc1.jpg

The userinterface is very simple, but, especially where the graphics and reports are concerned, well designed, you can see a lot of thought has gone in it. I am for instance delighted with the way the graphics are presented, I've included a screenshot not because I want you to see how hard I've worked entering two transactions, but because it's done so charmingly: you can change the account, the dates and the image representing the data in real time, and it's in smoothing pastel colours, probably in case your debits should depress you too much. QHacc makes pie charts line charts or charts with bars in the same pretty colours.

screenshot qhacc2.jpg

The reports are also very structured, clean and elegant and use the same real-time adaption scheme as the graphs. The author claims everything can be done without using the mouse, and although I too am more of a console creature than an X-windows fan, I haven't tried it out. I've never been an MS-Windows user either, so I probably don't know the shortcuts anyway.

Available from http://qhacc.sourceforge.net

The rest

After Qhacc, I tried several more programs. I seriously started with QtTudo, and got an end on my way, but decided that it wasn't simple enough after all.
The SQL-Ledger Accounting program seems for somewhat larger businesses than my modest home office. When downloading Tiny Business Accounting I only get a lame file, XdeFactor comes with (probably) adequate information which guides you through the installation process, but I don't speak Polish that fluently.
Xiwa was the last application I wanted to check, I had to install a lot of perl modules first, but one of them didn't compile, and I was already such a long way from the original installation manual, so I gave up on that one as well.


This table gives an overview of the comparison between the 4 selected programs. The more plusses, the better the score of the program in this particular area.

table overview


For personal use, I will stick to GnuCash, with the account subdivisions like in Emma. GnuCash is best integrated with my other applications, because I'm running a Gnome desktop environment. If I was running some other desktop platform, I'd probably opt for Qhacc (out of lazyness since I'd only have to install Qt). jGnash has a possible future because of its platform independentness but it is doesn't meet my requirements (yet) for a personal/small business/home office bookkeeping package.

This articles was published on the LinuxJournal website June 2002.

2001/1206. Amount of money Bill Gates earned while you were reading this: $35,249.

© 1995-2010 Machtelt Garrels - tille - Powered by vIm - Best viewed with your eyes - Validated by W3C - Last update 20100511