{ config, namespace, ... }:
{
  ${namespace} = {
    services = {
      # Existing properly namespaced services
      immich.enable = true;
      jellyfin.enable = true;
      jellyseerr = {
        enable = true;
        dataDir = "/media/nas/main/nix-app-data/jellyseerr";
      };
      lubelogger.enable = true;
      nextcloud.enable = true;
      onlyoffice.enable = true;
      ai.enable = true;
      paperless.enable = true;
      traefik.enable = true;
      wyoming.enable = true;

      # Newly migrated services
      actual = {
        enable = true;
        port = 3333;
        localAddress = "10.0.1.3";
        dataDir = "/media/nas/main/nix-app-data/actual";
        reverseProxy = {
          enable = true;
          subdomain = "actual";
          middlewares = [
            "crowdsec"
            "whitelist-geoblock"
          ];
        };
      };

      ocis.enable = false;

      ersatztv = {
        enable = true;
        configPath = "/media/nas/main/nix-app-data/ersatztv";
        moviesPath = "/media/nas/main/movies";
        tvPath = "/media/nas/main/tv";
        transcodePath = "/media/nas/main/nix-app-data/transcode";
      };

      arrs = {
        enable = true;
        localAddress = "10.0.1.51";
        downloadsDir = "/media/nas/main/ssd_app_data/downloads";
        incompleteDownloadsDir = "/media/nas/main/ssd_app_data/downloads-incomplete";
        moviesDir = "/media/nas/main/movies";
        tvDir = "/media/nas/main/tv";
        isosDir = "/media/nas/main/isos";
        radarr = {
          enable = true;
          port = 7878;
          dataDir = "/media/nas/main/nix-app-data/radarr";
        };
        sonarr = {
          enable = true;
          port = 8989;
          dataDir = "/media/nas/main/nix-app-data/sonarr";
        };
        sabnzbd = {
          enable = true;
          port = 8280;
          dataDir = "/media/nas/main/nix-app-data/sabnzbd";
        };
        deluge = {
          enable = false;
          port = 8112;
        };
        jackett = {
          enable = false;
          port = 9117;
          dataDir = "/media/nas/main/nix-app-data/jackett";
        };
      };

      calibre = {
        enable = true;
        port = 8084;
        webPort = 8083;
        localAddress = "10.0.3.1";
        webDir = "/media/nas/main/nix-app-data/calibre-web";
        dataDir = "/media/nas/main/books";
      };

      crowdsec = {
        enable = true;
        port = 8181;
        apiAddress = "0.0.0.0";
        apiKey = config.sops.secrets."jallen-nas/crowdsec-capi".path;
        dataDir = "/media/nas/main/nix-app-data/crowdsec";
      };

      gitea = {
        enable = true;
        httpPort = 3000;
        sshPort = 2222;
        localAddress = "10.0.4.18";
        dataDir = "/media/nas/main/nix-app-data/gitea";
        reverseProxy = {
          enable = true;
          subdomain = "gitea";
          middlewares = [
            "crowdsec"
            "whitelist-geoblock"
          ];
        };
      };

      headscale = {
        enable = false;
        port = 2112;
        dataDir = "/media/nas/main/nix-app-data/headscale";
        reverseProxy = {
          enable = true;
          subdomain = "headscale";
          middlewares = [
            "crowdsec"
            "whitelist-geoblock"
          ];
        };
      };

      unmanic = {
        enable = true;
        configPath = "/media/nas/main/nix-app-data/unmanic/config";
        moviesPath = "/media/nas/main/movies";
        tvPath = "/media/nas/main/tv";
        transcodePath = "/media/nas/main/nix-app-data/unmanic/transcode";
      };

      uptime-kuma = {
        enable = true;
        port = 3001;
        dataDir = "/media/nas/main/nix-app-data/uptime-kuma";
      };

      glance = {
        enable = true;
        port = 5555;
      };

      free-games-claimer.enable = true;

      manyfold.enable = true;

      orca-slicer = {
        enable = true;
        httpPort = "3100";
        httpsPort = "3101";
      };

      tdarr.enable = false;

      authentik = {
        enable = true;
        port = 9000;
        environmentFile = "/run/secrets/jallen-nas/authentik-env";
      };

      attic = {
        enable = true;
        port = 9012;
        listenAddress = "[::]";
        environmentFile = "/run/secrets/jallen-nas/attic-key";
      };

      protonmail-bridge = {
        enable = true;
        smtpPort = 1025;
        imapPort = 1143;
        user = "admin";
      };

      netbootxyz = {
        enable = true;
      };

      ntfy = {
        enable = true;
        port = 2586;
        localAddress = "10.0.1.3";
        dataDir = "/media/nas/main/nix-app-data/ntfy";
        reverseProxy = {
          enable = true;
          subdomain = "ntfy";
          middlewares = [
            "crowdsec"
            "whitelist-geoblock"
          ];
        };
      };

      matrix = {
        enable = true;
        port = 8448;
        localAddress = "10.0.1.3";
        dataDir = "/media/nas/main/nix-app-data/matrix-synapse";
        reverseProxy = {
          enable = true;
          subdomain = "matrix";
          middlewares = [
            "crowdsec"
            "whitelist-geoblock"
          ];
        };
      };

      glances = {
        enable = true;
        port = 61208;
        bindAddress = "0.0.0.0";
      };

      code-server = {
        enable = true;
        port = 4444;
        user = "admin";
        group = "jallen-nas";
        host = "0.0.0.0";
        auth = "none";
        hashedPassword = "$y$j9T$EkPXmsmIMFFZ.WRrBYCxS1$P0kwo6e4.WM5DsqUcEqWC3MrZp5KfCjxffraMFZWu06";
        extraEnvironment = {
          PROXY_DOMAIN = "code.mjallen.dev";
        };
      };

      restic = {
        enable = true;
        port = 8008;
        dataDir = "/media/nas/main/backup/restic";
        prometheus = true;
        listenAddress = "0.0.0.0";
        htpasswdFile = "/media/nas/main/backup/restic/.htpasswd";
        extraFlags = [ "--no-auth" ];
      };
    };
  };
}
