aboutsummaryrefslogtreecommitdiff
path: root/modules/actual.nix
diff options
context:
space:
mode:
authorKaran Jayachandra <mail@karanjayachandra.com>2026-07-18 23:04:53 +0200
committerKaran Jayachandra <mail@karanjayachandra.com>2026-07-18 23:04:53 +0200
commit9ceddb33272e5fca6382c1b4dec2074bd1167738 (patch)
treecac68c1bdc90c9ab618e4fdb4c8eb65d27d9a647 /modules/actual.nix
parent718a79f8de2a55f2ab83cac7e8595cd3916ed486 (diff)
Simplify config and add AdGuard DoH/DoT support
- Replace the hand-rolled Podman OCI container for Actual Budget with the native services.actual module (available in the pinned nixpkgs release); the container never actually had a backend enabled, so it likely never ran. - Collapse cgit's Caddy routing to a single reverse proxy - the smart-HTTP git backend was already served on the same nginx vhost/port as cgit itself, so the separate /git/* -> 8085 route was dead and pointed at a port nothing listened on. - Drop the unused kvm-intel kernel module from the guest hardware profile, and rename disko's misleadingly-named ESP partition (it's ext4, not a real EFI System Partition). - Point common.nix's disabled autoUpgrade flake URL at this repo's own cgit hosting instead of a generic GitHub placeholder. - Add AdGuard Home DNS-over-TLS (853) and DNS-over-HTTPS (8443) support, backed by an independent ACME certificate (modules/acme.nix) issued via a webroot Caddy serves on port 80. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Diffstat (limited to 'modules/actual.nix')
-rw-r--r--modules/actual.nix32
1 files changed, 11 insertions, 21 deletions
diff --git a/modules/actual.nix b/modules/actual.nix
index 62593a1..95bbc7d 100644
--- a/modules/actual.nix
+++ b/modules/actual.nix
@@ -1,32 +1,22 @@
-{ 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.
+# Native NixOS module (services.actual, available since this flake's pinned
+# nixpkgs release). 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.
+# All budget data is persisted in /var/lib/actual on the host (the module's
+# own StateDirectory).
{
- # 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";
+ services.actual = {
+ enable = true;
+ settings = {
+ hostname = "127.0.0.1";
+ port = 5006;
};
};
}