{ pkgs, ... }: # Actual Budget - local-first personal finance application. # # Uses the NixOS native module (services.actual) available in nixpkgs 24.11+. # On first visit to https://budget.karanj.com the app prompts you to set a # server password in the browser - no pre-configuration needed. # # All budget data is stored in /var/lib/actual (persists across reboots). { services.actual = { enable = true; settings = { # Listen on localhost only; Caddy handles public HTTPS hostname = "127.0.0.1"; port = 5006; # Tell Actual its public URL so HTTPS redirects work correctly serverFiles = "/var/lib/actual/server-files"; userFiles = "/var/lib/actual/user-files"; }; }; # Ensure data directory exists with correct ownership systemd.tmpfiles.rules = [ "d /var/lib/actual 0750 actual actual -" "d /var/lib/actual/server-files 0750 actual actual -" "d /var/lib/actual/user-files 0750 actual actual -" ]; }