In the last post regarding open source side projects I presented traq, a CLI time tracking application I use for my everyday work.
Today I decided to present and walk you through the setup of umsatz, my open source accounting
application.
But let’s first introduce umsatz:
umsatz was written to ensure that my book keeping informations are kept safe - that is only locally accessible, not from the internet.
It’s not that my information are particularly sensitive. It’s just that I like control over my data and I do not trust third parties like google or apple to keep my information safe.
I use umsatz to track all my freelance related incomes and expenses, organize them
by account, and get a basic overview about what’s due.
Some more details about umsatz are available at
umsatz.deployed.eu.
Now, let’s set umsatz up.
Assuming you want to run umsatz on a Raspberry PI and you’ve got all rpi accessoires at hand, all you need is an empty usb stick as secondary backup storage.
The Raspberry PI needs to run Raspbian - a modified version of Debian wheezy. You can download a copy at raspberrypi.org/downloads/. If your rpi is not running already take a look at the raspberry pi documentation.
To setup umsatz you need to use Ansible. Ansible then takes care of the entire rpi configuration, including provisioning umsatz.
It boils down to the following bash script:
# install ansible using Homebrew
brew install ansible
# clone the umsatz provisioning locally
git clone https://github.com/umsatz/provisioning.git
cd provisioning
# make sure to replace ip.of.rasp.berry
echo "ip.of.rasp.berry" > raspberry
# execute the release installation
ansible-playbook -i raspberry -u pi release-install.yml
After installing ansible make sure to write the correct IP into the raspberry file, otherwise the provisioning won’t work.
Also note that at the beginning of the provisioning you will be prompted for your rpi pi-user password.
The entire process might take about an hour. After ansible finishes your rpi will run postgreSQL, nginx and multiple other API services, written in go.
Firing up the browser on your pi’s IP will display the umsatz frontend, and you can start using it.
To finish up, here’s a current feature listing as of ‘12 2014:
- support for double-entry bookkeeping
- support for multiple currencies (right now USD, GBP, EUR)
- support for multiple languages (only DE translated)
- support for arbitrary accounts
- support for arbitrary fiscal periods (year, quarter, month)
- support for quick search and filter
- automatic backups to multiple attached devices
That’s about it.
You can check it out at github.com/umsatz.
I’ll explore the development setup for umsatz in a later post.