{ config, lib, ... }: let inherit (import ./mk-container.nix {inherit lib config;}) mkContainer; in { sops.secrets.umami-secret.mode = "0400"; imports = [ (mkContainer { name = "umami"; hostIp = "10.233.10.1"; containerIp = "10.233.10.2"; bindMounts."/run/secrets/umami-secret" = { hostPath = config.sops.secrets.umami-secret.path; isReadOnly = true; }; nixosConfig = {...}: { services.umami = { enable = true; settings = { PORT = 8080; HOSTNAME = "0.0.0.0"; APP_SECRET_FILE = "/run/secrets/umami-secret"; DISABLE_TELEMETRY = true; DISABLE_BOT_CHECK = true; }; }; # PrivateUsers breaks systemd-creds inside nspawn containers (nested user namespaces) systemd.services.umami.serviceConfig.PrivateUsers = lib.mkForce false; networking.firewall.allowedTCPPorts = [8080]; system.stateVersion = "24.05"; }; }) ]; services.cloudflared.tunnels."${config.var.tunnelId}".ingress."umami.${config.var.domain}" = "http://10.233.10.2:8080"; }