aboutsummaryrefslogtreecommitdiff
path: root/modules/actual.nix
blob: ead145959cfe488badc0e6f9b7c97e741bdb20fd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{ 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 -"
  ];
}