Personal accounting tools can be a godsend when it comes to managing finances, though privacy can be an issue when you're using third-party accounting applications. Thankfully, there are a couple of bookkeeping apps you could self-host on your server to keep a weather eye on your monthly bills, budget allocations, and other aspects of your personal finances. Firefly III (not to be confused with Adobe’s non-self-hosted AI generator) is easily one of the best tools for the purpose, and this guide will walk you through the process of setting it up on your home lab.
I tried building a home lab with a hardcore enterprise-grade operating system
Harvester may have some wacky minimum system requirements, but it's worth checking out if you've got the hardware that can handle it
Deploying a Firefly III container
Docker containers provide a relatively easy way to host a Firefly III instance. Assuming you’ve already installed Docker Engine on your (preferably) Linux distro, here’s how you can get an instance of Firefly III up and running:
- Launch the terminal app.
-
Run the following command to create and open a docker-compose.yml file.
sudo nano docker-compose.yml
- Open the web page containing the docker compose code and paste it inside the file you created in the last step.
- Tap Ctrl+X followed by Y and Enter to save and exit the file.
-
Create another file called .env with this command:
sudo nano .env
- Head to the .env.example file link and copy all its contents into the .env file.
- Scroll down to the Database credentials section and enter your ideal password for the DB_PASSWORD field.
- Tap Ctrl+X, Y, and Enter to save all the changes and head back to the terminal app.
-
Enter the following command in the terminal to create a db.env file.
sudo nano .db.env
- Open the link to the database.env on your browser and paste all the code inside the .db.env file.
- Enter the same password after the MYSQL_PASSWORD field and press the Ctrl+X, Y, and Enter keys to save the changes.
-
Finally, use the docker compose command to spin up a container for Firefly III.
sudo docker compose up -d
If you're on Windows and have Docker Engine set up, you can follow the same steps to deploy. For those unwilling to set up extra packages on top of their existing distro, you can use a Type-2 hypervisor like VirtualBox or VMware Workstation Pro to deploy a Linux virtual machine for your Docker environment instead. If you're running YunoHost or UmbrelOS on your Raspberry Pi, you can simply grab the Firefly III from their respective app stores for a painless setup process.
Accessing the Firefly III instance
With the Firefly III container ready, it’s time to log into its web UI and set your budget, savings, and other financial records.
- Type the IP address of your PC into your web browser. If you’ve set a different port inside the docker-compose.yml file, you’ll need to enter a colon (:) and the port number after the IP address.
- Enter the Email Address and Password before hitting Register.
- Under the Getting Started section, tap Submit after adding a Bank name and your Balance (in the appropriate Currency).
- Switch to the Budgets tab and press the Create a budget button.
- Choose a Name, select the type of Auto-budget, enter the Amount and Period, and hit Store New Budget.
- If you have recurring payments that you wish to add to your Firefly III bookkeeping server, navigate to the Bills section and click on Create a bill.
- Modify the values under the Name, Minimum Amount, Maximum Amount, Date, Repeats, and Skip fields before hitting the Store new bill button.
- Alternatively, if you want to manage your savings targets, head to the Piggy banks tab and click on Create a new piggy bank.
- Enter a Name for your savings target, choose the Amount you wish to save, and tap Store a new piggy bank.
Micromanaging every aspect of your budget with Firefly III
If you’ve followed all the steps correctly, the updated Bills, Savings, and Budget values will appear inside the Dashboard. Aside from these basic options, you can head to the Automations tab to create trigger-action scripts for your transactions. Alternatively, you can import your bank transactions into Firefly III to generate detailed reports of your savings and expenditure.
Manage your ROM collection with a self-hosted RomM server
Thanks to its clean UI and third-party database integrations, RomM is great for organizing your ROM files
