refactor(docker): share more vars between compose.nix files
All checks were successful
Discord / discord commits (push) Has been skipped
All checks were successful
Discord / discord commits (push) Has been skipped
This commit is contained in:
parent
1c8b80283e
commit
f481168458
18 changed files with 115 additions and 70 deletions
|
@ -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];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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;};
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
rwDataDir: {pkgs, ...}: {
|
||||
{...}: {pkgs, ...}: {
|
||||
virtualisation.docker.compose."hauk" = {
|
||||
networks.proxy_net = {external = true;};
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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"];
|
||||
|
|
|
@ -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;};
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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" = {
|
||||
|
|
|
@ -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;};
|
||||
|
|
|
@ -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;};
|
||||
|
|
|
@ -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;};
|
||||
|
|
|
@ -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;};
|
||||
|
|
Loading…
Add table
Reference in a new issue