====== Actual Budget ======
[[https://actualbudget.org|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:
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 [[https://docs.searxng.org/admin/installation-nginx.html#installation-nginx|this page]] create a NGINX config file called **/etc/nginx/com.mydomain/budget/budget.conf** like this:
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 [[gentoo:containers|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:
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 ps
Then type:
podman exec -it <> node /app/src/scripts/reset-password.js