My nix-darwin and NixOS config
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix(server): use PostgreSQL for Umami (nixpkgs package requires it)

+21 -3
+21 -3
modules/server/services/analytics/umami.nix
··· 11 11 # User-Agent for daily unique visitor counting, then discards the hash. 12 12 # 13 13 # Storage: 14 - # SQLite database at /srv/umami/umami.db (on the /srv volume). 14 + # PostgreSQL database (local, peer auth via unix socket). 15 15 # 16 16 # Secrets (sops-encrypted, age backend): 17 17 # secrets/umami.env — KEY=value env file, must contain: ··· 55 55 mode = "0400"; 56 56 }; 57 57 58 + # ── PostgreSQL database ─────────────────────────────────────────────────── 59 + services.postgresql = { 60 + enable = lib.mkDefault true; 61 + ensureDatabases = [ "umami" ]; 62 + ensureUsers = [ 63 + { 64 + name = "umami"; 65 + ensureDBOwnership = true; 66 + } 67 + ]; 68 + }; 69 + 58 70 # ── Umami service (native) ──────────────────────────────────────────────── 59 71 systemd.services.umami = { 60 72 description = "Umami Web Analytics"; 61 73 wantedBy = [ "multi-user.target" ]; 62 74 after = [ 63 75 "network.target" 76 + "postgresql.service" 77 + "srv.mount" 78 + ]; 79 + wants = [ 80 + "postgresql.service" 64 81 "srv.mount" 65 82 ]; 66 - wants = [ "srv.mount" ]; 83 + requires = [ "postgresql.service" ]; 67 84 68 85 environment = { 69 - DATABASE_URL = "file:${dataDir}/umami.db"; 86 + # PostgreSQL via unix socket (peer auth, no password needed) 87 + DATABASE_URL = "postgresql:///umami?host=/run/postgresql"; 70 88 HOSTNAME = "127.0.0.1"; 71 89 PORT = umamiPort; 72 90 DISABLE_TELEMETRY = "1";