diff --git a/configurations/nos/modules/docker/default.nix b/configurations/nos/modules/docker/default.nix index 0ca3cea7..adcdb49b 100644 --- a/configurations/nos/modules/docker/default.nix +++ b/configurations/nos/modules/docker/default.nix @@ -1,28 +1,33 @@ {...}: let - configPath = "/var/lib/docker-data"; + globalEnv = { + configPath = "/var/lib/docker-data"; + mainUID = "1000"; + mainGID = "1000"; + TZ = "America/New_York"; + }; in { imports = [ - (import ./forgejo/compose.nix configPath) - (import ./freshrss/compose.nix configPath) - (import ./gameyfin/compose.nix configPath) - (import ./hauk/compose.nix configPath) - (import ./immich/compose.nix configPath) - (import ./music/jbots/compose.nix configPath) - (import ./nextcloud/compose.nix configPath) - (import ./resume/compose.nix configPath) - (import ./vaultwarden/compose.nix configPath) - (import ./wg-easy/compose.nix configPath) + (import ./forgejo/compose.nix globalEnv) + (import ./freshrss/compose.nix globalEnv) + (import ./gameyfin/compose.nix globalEnv) + (import ./hauk/compose.nix globalEnv) + (import ./immich/compose.nix globalEnv) + (import ./music/jbots/compose.nix globalEnv) + (import ./nextcloud/compose.nix globalEnv) + (import ./resume/compose.nix globalEnv) + (import ./vaultwarden/compose.nix globalEnv) + (import ./wg-easy/compose.nix globalEnv) - (import ./media/bazarr/compose.nix configPath) - (import ./media/joal/compose.nix configPath) - (import ./media/jellystat/compose.nix configPath) - (import ./media/prowlarr/compose.nix configPath) - (import ./media/radarr/compose.nix configPath) - (import ./media/seerr/compose.nix configPath) - (import ./media/sonarr/compose.nix configPath) + (import ./media/bazarr/compose.nix globalEnv) + (import ./media/joal/compose.nix globalEnv) + (import ./media/jellystat/compose.nix globalEnv) + (import ./media/prowlarr/compose.nix globalEnv) + (import ./media/radarr/compose.nix globalEnv) + (import ./media/seerr/compose.nix globalEnv) + (import ./media/sonarr/compose.nix globalEnv) ]; services.borgbackup.configs.docker = { - paths = [configPath]; + paths = [globalEnv.configPath]; }; } diff --git a/configurations/nos/modules/docker/forgejo/compose.nix b/configurations/nos/modules/docker/forgejo/compose.nix index 45772087..e23f8485 100644 --- a/configurations/nos/modules/docker/forgejo/compose.nix +++ b/configurations/nos/modules/docker/forgejo/compose.nix @@ -1,11 +1,16 @@ -rwDataDir: { +{ + configPath, + mainUID, + mainGID, + ... +}: { config, pkgs, ... }: let inherit (config.sops) secrets; - rwPath = rwDataDir + "/forgejo"; + rwPath = configPath + "/forgejo"; in { virtualisation.docker.compose."forgejo" = { networks.proxy_net = {external = true;}; @@ -29,9 +34,8 @@ in { environment = { APP_NAME = "Gitea"; - # TODO: change ids - USER_UID = "1000"; - USER_GID = "1000"; + USER_UID = mainUID; + USER_GID = mainGID; ROOT_URL = "https://git.nelim.org"; SSH_DOMAIN = "git.nelim.org"; diff --git a/configurations/nos/modules/docker/freshrss/compose.nix b/configurations/nos/modules/docker/freshrss/compose.nix index 4b912a14..fa8e9975 100644 --- a/configurations/nos/modules/docker/freshrss/compose.nix +++ b/configurations/nos/modules/docker/freshrss/compose.nix @@ -1,11 +1,11 @@ -rwDataDir: { +{configPath, ...}: { config, pkgs, ... }: let inherit (config.sops) secrets; - rwPath = rwDataDir + "/freshrss"; + rwPath = configPath + "/freshrss"; in { virtualisation.docker.compose."freshrss" = { networks.proxy_net = {external = true;}; diff --git a/configurations/nos/modules/docker/gameyfin/compose.nix b/configurations/nos/modules/docker/gameyfin/compose.nix index f59981c9..ecd2962b 100644 --- a/configurations/nos/modules/docker/gameyfin/compose.nix +++ b/configurations/nos/modules/docker/gameyfin/compose.nix @@ -1,4 +1,8 @@ -rwDataDir: { +{ + mainUID, + mainGID, + ... +}: { config, pkgs, ... @@ -11,7 +15,7 @@ in { services."gameyfin" = { image = pkgs.callPackage ./images/gameyfin.nix pkgs; restart = "always"; - user = "1000:1000"; + user = "${mainUID}:${mainGID}"; env_file = [secrets.gameyfin.path]; environment.GAMEYFIN_USER = "mathis"; diff --git a/configurations/nos/modules/docker/hauk/compose.nix b/configurations/nos/modules/docker/hauk/compose.nix index 1edc908e..4cee8f29 100644 --- a/configurations/nos/modules/docker/hauk/compose.nix +++ b/configurations/nos/modules/docker/hauk/compose.nix @@ -1,4 +1,4 @@ -rwDataDir: {pkgs, ...}: { +{...}: {pkgs, ...}: { virtualisation.docker.compose."hauk" = { networks.proxy_net = {external = true;}; diff --git a/configurations/nos/modules/docker/immich/compose.nix b/configurations/nos/modules/docker/immich/compose.nix index 7e212dcb..ea6f6df7 100644 --- a/configurations/nos/modules/docker/immich/compose.nix +++ b/configurations/nos/modules/docker/immich/compose.nix @@ -1,4 +1,4 @@ -rwDataDir: { +{configPath, ...}: { config, lib, pkgs, @@ -8,7 +8,7 @@ rwDataDir: { inherit (config.sops) secrets; - rwPath = rwDataDir + "/immich"; + rwPath = configPath + "/immich"; envFile = "${./env}"; UPLOAD_LOCATION = "${rwPath}/data"; diff --git a/configurations/nos/modules/docker/media/bazarr/compose.nix b/configurations/nos/modules/docker/media/bazarr/compose.nix index f97a1691..18a77214 100644 --- a/configurations/nos/modules/docker/media/bazarr/compose.nix +++ b/configurations/nos/modules/docker/media/bazarr/compose.nix @@ -1,5 +1,11 @@ -rwDataDir: {pkgs, ...}: let - rwPath = rwDataDir + "/media/bazarr"; +{ + configPath, + mainUID, + mainGID, + TZ, + ... +}: {pkgs, ...}: let + rwPath = configPath + "/media/bazarr"; in { virtualisation.docker.compose."bazarr" = { networks.proxy_net = {external = true;}; @@ -9,9 +15,9 @@ in { restart = "always"; environment = { - PUID = "1000"; - PGID = "1000"; - TZ = "America/New_York"; + PUID = mainUID; + PGID = mainGID; + inherit TZ; }; ports = [ diff --git a/configurations/nos/modules/docker/media/jellystat/compose.nix b/configurations/nos/modules/docker/media/jellystat/compose.nix index 0f303467..2f937784 100644 --- a/configurations/nos/modules/docker/media/jellystat/compose.nix +++ b/configurations/nos/modules/docker/media/jellystat/compose.nix @@ -1,11 +1,15 @@ -rwDataDir: { +{ + configPath, + TZ, + ... +}: { config, pkgs, ... }: let inherit (config.sops) secrets; - rwPath = rwDataDir + "/jellystat"; + rwPath = configPath + "/jellystat"; in { virtualisation.docker.compose."jellystat" = { networks.proxy_net = {external = true;}; @@ -21,7 +25,7 @@ in { POSTGRES_IP = "jellystat-db"; POSTGRES_PORT = 5432; - TZ = "America/New_York"; + inherit TZ; }; ports = ["3070:3000"]; diff --git a/configurations/nos/modules/docker/media/joal/compose.nix b/configurations/nos/modules/docker/media/joal/compose.nix index 67173b27..b2a04883 100644 --- a/configurations/nos/modules/docker/media/joal/compose.nix +++ b/configurations/nos/modules/docker/media/joal/compose.nix @@ -1,5 +1,5 @@ -rwDataDir: {pkgs, ...}: let - rwPath = rwDataDir + "/media/joal"; +{configPath, ...}: {pkgs, ...}: let + rwPath = configPath + "/media/joal"; in { virtualisation.docker.compose."joal" = { networks.proxy_net = {external = true;}; diff --git a/configurations/nos/modules/docker/media/prowlarr/compose.nix b/configurations/nos/modules/docker/media/prowlarr/compose.nix index 00a5aa4a..dbf53572 100644 --- a/configurations/nos/modules/docker/media/prowlarr/compose.nix +++ b/configurations/nos/modules/docker/media/prowlarr/compose.nix @@ -1,5 +1,11 @@ -rwDataDir: {pkgs, ...}: let - rwPath = rwDataDir + "/media/prowlarr"; +{ + configPath, + mainUID, + mainGID, + TZ, + ... +}: {pkgs, ...}: let + rwPath = configPath + "/media/prowlarr"; in { virtualisation.docker.compose."prowlarr" = { networks.proxy_net = {external = true;}; @@ -10,9 +16,9 @@ in { restart = "always"; environment = { - PUID = "1000"; - PGID = "1000"; - TZ = "America/New_York"; + PUID = mainUID; + PGID = mainGID; + inherit TZ; }; volumes = ["${rwPath}/data:/config"]; @@ -29,7 +35,7 @@ in { LOG_LEVEL = "info"; LOG_HTML = "false"; CAPTCHA_SOLVER = "none"; - TZ = "America/New_York"; + inherit TZ; # https://github.com/FlareSolverr/FlareSolverr/pull/1300#issuecomment-2379596654 DRIVER = "nodriver"; diff --git a/configurations/nos/modules/docker/media/radarr/compose.nix b/configurations/nos/modules/docker/media/radarr/compose.nix index 3f9cb14e..3f729b7e 100644 --- a/configurations/nos/modules/docker/media/radarr/compose.nix +++ b/configurations/nos/modules/docker/media/radarr/compose.nix @@ -1,5 +1,11 @@ -rwDataDir: {pkgs, ...}: let - rwPath = rwDataDir + "/media/radarr"; +{ + configPath, + mainUID, + mainGID, + TZ, + ... +}: {pkgs, ...}: let + rwPath = configPath + "/media/radarr"; in { virtualisation.docker.compose."radarr" = { networks.proxy_net = {external = true;}; @@ -11,9 +17,9 @@ in { ports = ["7878:7878"]; environment = { - PUID = "1000"; - PGID = "1000"; - TZ = "America/New_York"; + PUID = mainUID; + PGID = mainGID; + inherit TZ; }; volumes = [ diff --git a/configurations/nos/modules/docker/media/seerr/compose.nix b/configurations/nos/modules/docker/media/seerr/compose.nix index af3feb2f..372a5123 100644 --- a/configurations/nos/modules/docker/media/seerr/compose.nix +++ b/configurations/nos/modules/docker/media/seerr/compose.nix @@ -1,5 +1,9 @@ -rwDataDir: {pkgs, ...}: let - rwPath = rwDataDir + "/media/seerr"; +{ + configPath, + TZ, + ... +}: {pkgs, ...}: let + rwPath = configPath + "/media/seerr"; in { virtualisation.docker.compose."seerr" = { networks.proxy_net = {external = true;}; @@ -10,7 +14,7 @@ in { environment = { LOG_LEVEL = "debug"; - TZ = "America/New_York"; + inherit TZ; }; volumes = [ diff --git a/configurations/nos/modules/docker/media/sonarr/compose.nix b/configurations/nos/modules/docker/media/sonarr/compose.nix index f0098282..41a93846 100644 --- a/configurations/nos/modules/docker/media/sonarr/compose.nix +++ b/configurations/nos/modules/docker/media/sonarr/compose.nix @@ -1,5 +1,11 @@ -rwDataDir: {pkgs, ...}: let - rwPath = rwDataDir + "/media/sonarr"; +{ + configPath, + mainUID, + mainGID, + TZ, + ... +}: {pkgs, ...}: let + rwPath = configPath + "/media/sonarr"; in { virtualisation.docker.compose."sonarr" = { networks.proxy_net = {external = true;}; @@ -11,9 +17,9 @@ in { ports = ["8989:8989"]; environment = { - PUID = "1000"; - PGID = "1000"; - TZ = "America/New_York"; + PUID = mainUID; + PGID = mainGID; + inherit TZ; }; volumes = [ diff --git a/configurations/nos/modules/docker/music/jbots/compose.nix b/configurations/nos/modules/docker/music/jbots/compose.nix index e17514d3..8d937fe3 100644 --- a/configurations/nos/modules/docker/music/jbots/compose.nix +++ b/configurations/nos/modules/docker/music/jbots/compose.nix @@ -1,11 +1,11 @@ -rwDataDir: { +{configPath, ...}: { pkgs, self, ... }: let inherit (self.packages.${pkgs.system}) jmusicbot; - rwPath = rwDataDir + "/music/jbots"; + rwPath = configPath + "/music/jbots"; image = pkgs.callPackage ./images/jmusicbot.nix {inherit pkgs jmusicbot;}; in { virtualisation.docker.compose."jbots" = { diff --git a/configurations/nos/modules/docker/nextcloud/compose.nix b/configurations/nos/modules/docker/nextcloud/compose.nix index 38705645..a6c7ed31 100644 --- a/configurations/nos/modules/docker/nextcloud/compose.nix +++ b/configurations/nos/modules/docker/nextcloud/compose.nix @@ -1,4 +1,4 @@ -rwDataDir: { +{configPath, ...}: { config, pkgs, ... @@ -6,7 +6,7 @@ rwDataDir: { inherit (config.sops) secrets; mainContainerName = "app-server"; - rwPath = rwDataDir + "/nextcloud"; + rwPath = configPath + "/nextcloud"; in { virtualisation.docker.compose."nextcloud" = { networks.proxy_net = {external = true;}; diff --git a/configurations/nos/modules/docker/resume/compose.nix b/configurations/nos/modules/docker/resume/compose.nix index f7a76467..dc4af72e 100644 --- a/configurations/nos/modules/docker/resume/compose.nix +++ b/configurations/nos/modules/docker/resume/compose.nix @@ -1,11 +1,11 @@ -rwDataDir: { +{configPath, ...}: { config, pkgs, ... }: let inherit (config.sops) secrets; - rwPath = rwDataDir + "/resume"; + rwPath = configPath + "/resume"; in { virtualisation.docker.compose."resume" = { networks.proxy_net = {external = true;}; diff --git a/configurations/nos/modules/docker/vaultwarden/compose.nix b/configurations/nos/modules/docker/vaultwarden/compose.nix index 4cd1ccbf..f77f527d 100644 --- a/configurations/nos/modules/docker/vaultwarden/compose.nix +++ b/configurations/nos/modules/docker/vaultwarden/compose.nix @@ -1,5 +1,5 @@ -rwDataDir: {pkgs, ...}: let - rwPath = rwDataDir + "/vaultwarden"; +{configPath, ...}: {pkgs, ...}: let + rwPath = configPath + "/vaultwarden"; in { virtualisation.docker.compose."vaultwarden" = { networks.proxy_net = {external = true;}; diff --git a/configurations/nos/modules/docker/wg-easy/compose.nix b/configurations/nos/modules/docker/wg-easy/compose.nix index 46ce160c..fe615dda 100644 --- a/configurations/nos/modules/docker/wg-easy/compose.nix +++ b/configurations/nos/modules/docker/wg-easy/compose.nix @@ -1,5 +1,5 @@ -rwDataDir: {pkgs, ...}: let - rwPath = rwDataDir + "/wg-easy"; +{configPath, ...}: {pkgs, ...}: let + rwPath = configPath + "/wg-easy"; in { virtualisation.docker.compose."wg-easy" = { networks.proxy_net = {external = true;};