Actual Budget
Actual Budget is a super fast and privacy-focused app for managing your finances. At its heart is the well proven and much loved Envelope Budgeting methodology. You own your data and can do whatever you want with it. Featuring multi-device sync, optional end-to-end encryption and so much more
Installation
Create the usual dedicated user. Also, all data needs to be located in a dedicated folder that will be /data/budget-data:
useradd -d /data/daemons/actualbudget -m actualbudget mkdir /data/budget-data chown actualbudget:actualbudget /data/budget-data
Now, as actualbudget user, create the following docker compose file:
- docker-compose.yml
version: "3.7" services: actual_server: image: docker.io/actualbudget/actual-server:latest ports: # This line makes Actual available at port 5006 of the device you run the server on, # i.e. http://localhost:5006. You can change the first number to change the port, if you want. - '5106:5006' volumes: - ./data/budget-data:/data networks: - actualbudget-net networks: actualbudget-net: {}
Remember to set an available port (5106)!
Now pull it:
podman compose pull
Single Sign On
Currently due to a few design flaws (poor design choices?) Actual Budget doesn't reliably run with authelia SSO. It doesn't even support multi-user at this time, just a single fixed password. Things seems to be improving, will update this info when i will be able to.
Reverse Proxy
You can run Actual Bidget only on a sub-domain.
I assume it will be reachable as https://budget.mydomain.com.
Following this page create a NGINX config file called /etc/nginx/com.mydomain/budget/budget.conf like this:
- budget.conf
server { server_name budget.mydomain.com; listen 443 ssl; listen 8443 ssl; access_log /var/log/nginx/budget.mydomain.com_access_log main; error_log /var/log/nginx/budget.mydomain.com_error_log info; location / { proxy_pass http://127.0.0.1:5106/; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; } }
Autostart
To start it, and set it up on boot, as usual follow my indications Using Containers on Gentoo, so link the user-containers init script:
ln -s /etc/init.d/user-containers /etc/init.d/user-containers.actualbudget
and create the following config file:
- /etc/conf.d/user-containers.actualbudget
USER=actualbudget DESCRIPTION="Budgetting application server"
Add the service to the default runlevel and start it now:
rc-update add user-containers.actualbudget default rc-service user-containers.actualbudget start
Reset password
Actual budget relies on a single password for authentication. If you need to replace it, these are the commands.
You can find your container ID with:
podman ps
su - actualbuget podman exec -it <<container-id>> /bin/sh
Then type:
node /app/src/scripts/reset-password.js