aboutsummaryrefslogtreecommitdiff
path: root/modules/actual.nix
blob: 62593a17d08db18afbb20f54450095782adfa9d2 (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
32
{ pkgs, ... }:

# Actual Budget - local-first personal finance application.
#
# Runs as a Podman OCI container because the native services.actual NixOS
# module is not available in nixos-24.11. The container listens on
# 127.0.0.1:5006; Caddy handles public HTTPS termination.
#
# 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 persisted in /var/lib/actual on the host.
{
  # Ensure the data directory exists before the container starts
  systemd.tmpfiles.rules = [
    "d /var/lib/actual 0750 root root -"
  ];

  virtualisation.oci-containers.containers.actual = {
    image = "docker.io/actualbudget/actual-server:latest";

    ports = [ "127.0.0.1:5006:5006" ];

    volumes = [
      "/var/lib/actual:/data"
    ];

    environment = {
      ACTUAL_PORT = "5006";
    };
  };
}