From 11160e4448ff00831e07867e20e0a71095397e20 Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Fri, 11 Jul 2025 21:59:13 +0200 Subject: [PATCH] Services/Kopia: Generate volume list from names --- system/services/kopia.nix | 79 ++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 43 deletions(-) diff --git a/system/services/kopia.nix b/system/services/kopia.nix index f1d0849b..e0b73a4a 100644 --- a/system/services/kopia.nix +++ b/system/services/kopia.nix @@ -33,52 +33,45 @@ in { # "51515:51515" ]; - volumes = [ - "kopia_config:/app/config" - "kopia_cache:/app/cache" - "kopia_logs:/app/logs" - "kopia_temp:/tmp" + volumes = let + # TODO: Setup on ThinkNix: adguard_config, adguard_work, portainer_config + backup = [ + "authelia_config" + "formula10_cache" + "formula10_data" + "formula11_pb_data" + "gitea-db_data" + "gitea_data" + "gitea-runner_config" + "gitea-runner_data" + "heidi_config" + "immich-database_data" + "immich_config" + "immich_data" + "immich_machine-learning" + "jellyfin_config" + "nextcloud-db_data" + "nextcloud_data" + "nginx_config" + "nginx_letsencrypt" + "nginx_snippets" + "paperless-postgres_data" + "paperless_data" + ]; - # Repository, where snapshots are stored (incrementally) - "/media/synology-syncthing:/repository" + mkVolume = name: "${name}:/data/${name}:ro"; + in + [ + "kopia_config:/app/config" + "kopia_cache:/app/cache" + "kopia_logs:/app/logs" + "kopia_temp:/tmp" + # Repository where snapshots are stored (incrementally) + "/media/synology-syncthing:/repository" + ] # Folders that are backed up - # "adguard_config:/data/adguard_config:ro" # ThinkNix - # "adguard_work:/data/adguard_work:ro" # ThinkNix - - "authelia_config:/data/authelia_config:ro" - - "formula10_cache:/data/formula10_cache:ro" - "formula10_data:/data/formula10_data:ro" - - "formula11_pb_data:/data/formula11_pb_data:ro" - - "gitea-db_data:/data/gitea-db_data:ro" - "gitea-runner_config:/data/gitea-runner_config:ro" - "gitea-runner_data:/data/gitea-runner_data:ro" - "gitea_data:/data/gitea_data:ro" - - "heidi_config:/data/heidi_config:ro" - - "immich-database_data:/data/immich-database_data:ro" - "immich_config:/data/immich_config:ro" - "immich_data:/data/immich_data:ro" - "immich_machine-learning:/data/immich_machine-learning:ro" - - "jellyfin_config:/data/jellyfin_config:ro" - - "nextcloud-db_data:/data/nextcloud-db_data:ro" - "nextcloud_data:/data/nextcloud_data:ro" - - "nginx_config:/data/nginx_config:ro" - "nginx_letsencrypt:/data/nginx_letsencrypt:ro" - "nginx_snippets:/data/nginx_snippets:ro" - - "paperless-postgres_data:/data/paperless-postgres_data:ro" - "paperless_data:/data/paperless_data:ro" - - # "portainer_config:/data/portainer_config:ro" - ]; + ++ builtins.map mkVolume backup; environment = { TZ = "Europe/Berlin";