From 3804745fd1a70e2cae29c76b48595563829c2129 Mon Sep 17 00:00:00 2001 From: Christine Elisabeth Koppel Date: Sat, 7 Feb 2026 18:53:57 +0100 Subject: [PATCH] Fix the volume issue. --- .../songsheet/wavelog/docker-compose.nix | 95 ++++++++++++++----- .../songsheet/wavelog/docker-compose.yml | 16 ++-- 2 files changed, 81 insertions(+), 30 deletions(-) diff --git a/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix b/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix index d6bdedc..e3dd7da 100644 --- a/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix +++ b/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix @@ -1,8 +1,10 @@ # Auto-generated by compose2nix. - -{ pkgs, lib, config, ... }: - { + pkgs, + lib, + config, + ... +}: { # Runtime virtualisation.podman = { enable = true; @@ -12,9 +14,12 @@ # Enable container name DNS for all Podman networks. networking.firewall.interfaces = let - matchAll = if !config.networking.nftables.enable then "podman+" else "podman*"; + matchAll = + if !config.networking.nftables.enable + then "podman+" + else "podman*"; in { - "${matchAll}".allowedUDPPorts = [ 53 ]; + "${matchAll}".allowedUDPPorts = [53]; }; virtualisation.oci-containers.backend = "podman"; @@ -36,9 +41,9 @@ config.sops.secrets."songsheet/database/DATABASE_URL".path ]; volumes = [ - "nix-system-configs/modules/songsheet/wavelog/db:/var/www/html/var/db:rw" - "nix-system-configs/modules/songsheet/wavelog/public_media:/var/www/html/public/media:rw" - "nix-system-configs/modules/songsheet/wavelog/uploads:/var/www/html/uploads:rw" + "wavelog_partdb_db_f:/var/www/html/var/db:rw" + "wavelog_partdb_media_f:/var/www/html/public/media:rw" + "wavelog_partdb_uploads_f:/var/www/html/uploads:rw" ]; ports = [ "8087:80/tcp" @@ -58,9 +63,15 @@ }; after = [ "podman-network-wavelog_default.service" + "podman-volume-wavelog_partdb_db_f.service" + "podman-volume-wavelog_partdb_media_f.service" + "podman-volume-wavelog_partdb_uploads_f.service" ]; requires = [ "podman-network-wavelog_default.service" + "podman-volume-wavelog_partdb_db_f.service" + "podman-volume-wavelog_partdb_media_f.service" + "podman-volume-wavelog_partdb_uploads_f.service" ]; partOf = [ "podman-compose-wavelog-root.target" @@ -153,7 +164,7 @@ # Networks systemd.services."podman-network-wavelog_default" = { - path = [ pkgs.podman ]; + path = [pkgs.podman]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; @@ -162,13 +173,49 @@ script = '' podman network inspect wavelog_default || podman network create wavelog_default ''; - partOf = [ "podman-compose-wavelog-root.target" ]; - wantedBy = [ "podman-compose-wavelog-root.target" ]; + partOf = ["podman-compose-wavelog-root.target"]; + wantedBy = ["podman-compose-wavelog-root.target"]; }; # Volumes + systemd.services."podman-volume-wavelog_partdb_db_f" = { + path = [pkgs.podman]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; + script = '' + podman volume inspect wavelog_partdb_db_f || podman volume create wavelog_partdb_db_f + ''; + partOf = ["podman-compose-wavelog-root.target"]; + wantedBy = ["podman-compose-wavelog-root.target"]; + }; + systemd.services."podman-volume-wavelog_partdb_media_f" = { + path = [pkgs.podman]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; + script = '' + podman volume inspect wavelog_partdb_media_f || podman volume create wavelog_partdb_media_f + ''; + partOf = ["podman-compose-wavelog-root.target"]; + wantedBy = ["podman-compose-wavelog-root.target"]; + }; + systemd.services."podman-volume-wavelog_partdb_uploads_f" = { + path = [pkgs.podman]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; + script = '' + podman volume inspect wavelog_partdb_uploads_f || podman volume create wavelog_partdb_uploads_f + ''; + partOf = ["podman-compose-wavelog-root.target"]; + wantedBy = ["podman-compose-wavelog-root.target"]; + }; systemd.services."podman-volume-wavelog_wavelog-config" = { - path = [ pkgs.podman ]; + path = [pkgs.podman]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; @@ -176,11 +223,11 @@ script = '' podman volume inspect wavelog_wavelog-config || podman volume create wavelog_wavelog-config ''; - partOf = [ "podman-compose-wavelog-root.target" ]; - wantedBy = [ "podman-compose-wavelog-root.target" ]; + partOf = ["podman-compose-wavelog-root.target"]; + wantedBy = ["podman-compose-wavelog-root.target"]; }; systemd.services."podman-volume-wavelog_wavelog-dbdata" = { - path = [ pkgs.podman ]; + path = [pkgs.podman]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; @@ -188,11 +235,11 @@ script = '' podman volume inspect wavelog_wavelog-dbdata || podman volume create wavelog_wavelog-dbdata ''; - partOf = [ "podman-compose-wavelog-root.target" ]; - wantedBy = [ "podman-compose-wavelog-root.target" ]; + partOf = ["podman-compose-wavelog-root.target"]; + wantedBy = ["podman-compose-wavelog-root.target"]; }; systemd.services."podman-volume-wavelog_wavelog-uploads" = { - path = [ pkgs.podman ]; + path = [pkgs.podman]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; @@ -200,11 +247,11 @@ script = '' podman volume inspect wavelog_wavelog-uploads || podman volume create wavelog_wavelog-uploads ''; - partOf = [ "podman-compose-wavelog-root.target" ]; - wantedBy = [ "podman-compose-wavelog-root.target" ]; + partOf = ["podman-compose-wavelog-root.target"]; + wantedBy = ["podman-compose-wavelog-root.target"]; }; systemd.services."podman-volume-wavelog_wavelog-userdata" = { - path = [ pkgs.podman ]; + path = [pkgs.podman]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; @@ -212,8 +259,8 @@ script = '' podman volume inspect wavelog_wavelog-userdata || podman volume create wavelog_wavelog-userdata ''; - partOf = [ "podman-compose-wavelog-root.target" ]; - wantedBy = [ "podman-compose-wavelog-root.target" ]; + partOf = ["podman-compose-wavelog-root.target"]; + wantedBy = ["podman-compose-wavelog-root.target"]; }; # Root service @@ -223,6 +270,6 @@ unitConfig = { Description = "Root target generated by compose2nix."; }; - wantedBy = [ "multi-user.target" ]; + wantedBy = ["multi-user.target"]; }; } diff --git a/nix-system-configs/modules/songsheet/wavelog/docker-compose.yml b/nix-system-configs/modules/songsheet/wavelog/docker-compose.yml index 3173b59..a1f8bf0 100644 --- a/nix-system-configs/modules/songsheet/wavelog/docker-compose.yml +++ b/nix-system-configs/modules/songsheet/wavelog/docker-compose.yml @@ -4,11 +4,6 @@ services: # By default Part-DB will be running under Port 8080, you can change it here ports: - '8087:80' - volumes: - # By default - - ./uploads:/var/www/html/uploads - - ./public_media:/var/www/html/public/media - - ./db:/var/www/html/var/db restart: unless-stopped labels: - "compose2nix.settings.sops.secrets=songsheet/database/DATABASE_URL" @@ -55,6 +50,12 @@ services: # If you need to install additional composer packages (e.g., for specific mailer transports), you can specify them here: # The packages will be installed automatically when the container starts # - COMPOSER_EXTRA_PACKAGES=symfony/mailgun-mailer symfony/sendgrid-mailer + volumes: + # By default + # Devnote: # use named volumes instead of relative paths ./uploads, etc. + - partdb_uploads_f:/var/www/html/uploads + - partdb_media_f:/var/www/html/public/media + - partdb_db_f:/var/www/html/var/db wavelog-db: # THIS IS NOW DANGLING BUT WILL BE THERE TO PREVENT BREAKAGE OF THE MAIN COMPOSE FILE image: mariadb:11.3 @@ -87,4 +88,7 @@ volumes: wavelog-dbdata: wavelog-uploads: wavelog-userdata: - wavelog-config: \ No newline at end of file + wavelog-config: + partdb_uploads_f: + partdb_media_f: + partdb_db_f: \ No newline at end of file