Fix the volume issue.

This commit is contained in:
Root User 2026-02-07 18:53:57 +01:00
parent e7722f83fd
commit 3804745fd1
Signed by: root
GPG key ID: 087F0A95E5766D72
2 changed files with 81 additions and 30 deletions

View file

@ -1,8 +1,10 @@
# Auto-generated by compose2nix. # Auto-generated by compose2nix.
{ pkgs, lib, config, ... }:
{ {
pkgs,
lib,
config,
...
}: {
# Runtime # Runtime
virtualisation.podman = { virtualisation.podman = {
enable = true; enable = true;
@ -12,9 +14,12 @@
# Enable container name DNS for all Podman networks. # Enable container name DNS for all Podman networks.
networking.firewall.interfaces = let 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 { in {
"${matchAll}".allowedUDPPorts = [ 53 ]; "${matchAll}".allowedUDPPorts = [53];
}; };
virtualisation.oci-containers.backend = "podman"; virtualisation.oci-containers.backend = "podman";
@ -36,9 +41,9 @@
config.sops.secrets."songsheet/database/DATABASE_URL".path config.sops.secrets."songsheet/database/DATABASE_URL".path
]; ];
volumes = [ volumes = [
"nix-system-configs/modules/songsheet/wavelog/db:/var/www/html/var/db:rw" "wavelog_partdb_db_f:/var/www/html/var/db:rw"
"nix-system-configs/modules/songsheet/wavelog/public_media:/var/www/html/public/media:rw" "wavelog_partdb_media_f:/var/www/html/public/media:rw"
"nix-system-configs/modules/songsheet/wavelog/uploads:/var/www/html/uploads:rw" "wavelog_partdb_uploads_f:/var/www/html/uploads:rw"
]; ];
ports = [ ports = [
"8087:80/tcp" "8087:80/tcp"
@ -58,9 +63,15 @@
}; };
after = [ after = [
"podman-network-wavelog_default.service" "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 = [ requires = [
"podman-network-wavelog_default.service" "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 = [ partOf = [
"podman-compose-wavelog-root.target" "podman-compose-wavelog-root.target"
@ -153,7 +164,7 @@
# Networks # Networks
systemd.services."podman-network-wavelog_default" = { systemd.services."podman-network-wavelog_default" = {
path = [ pkgs.podman ]; path = [pkgs.podman];
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = true; RemainAfterExit = true;
@ -162,13 +173,49 @@
script = '' script = ''
podman network inspect wavelog_default || podman network create wavelog_default podman network inspect wavelog_default || podman network create wavelog_default
''; '';
partOf = [ "podman-compose-wavelog-root.target" ]; partOf = ["podman-compose-wavelog-root.target"];
wantedBy = [ "podman-compose-wavelog-root.target" ]; wantedBy = ["podman-compose-wavelog-root.target"];
}; };
# Volumes # 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" = { systemd.services."podman-volume-wavelog_wavelog-config" = {
path = [ pkgs.podman ]; path = [pkgs.podman];
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = true; RemainAfterExit = true;
@ -176,11 +223,11 @@
script = '' script = ''
podman volume inspect wavelog_wavelog-config || podman volume create wavelog_wavelog-config podman volume inspect wavelog_wavelog-config || podman volume create wavelog_wavelog-config
''; '';
partOf = [ "podman-compose-wavelog-root.target" ]; partOf = ["podman-compose-wavelog-root.target"];
wantedBy = [ "podman-compose-wavelog-root.target" ]; wantedBy = ["podman-compose-wavelog-root.target"];
}; };
systemd.services."podman-volume-wavelog_wavelog-dbdata" = { systemd.services."podman-volume-wavelog_wavelog-dbdata" = {
path = [ pkgs.podman ]; path = [pkgs.podman];
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = true; RemainAfterExit = true;
@ -188,11 +235,11 @@
script = '' script = ''
podman volume inspect wavelog_wavelog-dbdata || podman volume create wavelog_wavelog-dbdata podman volume inspect wavelog_wavelog-dbdata || podman volume create wavelog_wavelog-dbdata
''; '';
partOf = [ "podman-compose-wavelog-root.target" ]; partOf = ["podman-compose-wavelog-root.target"];
wantedBy = [ "podman-compose-wavelog-root.target" ]; wantedBy = ["podman-compose-wavelog-root.target"];
}; };
systemd.services."podman-volume-wavelog_wavelog-uploads" = { systemd.services."podman-volume-wavelog_wavelog-uploads" = {
path = [ pkgs.podman ]; path = [pkgs.podman];
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = true; RemainAfterExit = true;
@ -200,11 +247,11 @@
script = '' script = ''
podman volume inspect wavelog_wavelog-uploads || podman volume create wavelog_wavelog-uploads podman volume inspect wavelog_wavelog-uploads || podman volume create wavelog_wavelog-uploads
''; '';
partOf = [ "podman-compose-wavelog-root.target" ]; partOf = ["podman-compose-wavelog-root.target"];
wantedBy = [ "podman-compose-wavelog-root.target" ]; wantedBy = ["podman-compose-wavelog-root.target"];
}; };
systemd.services."podman-volume-wavelog_wavelog-userdata" = { systemd.services."podman-volume-wavelog_wavelog-userdata" = {
path = [ pkgs.podman ]; path = [pkgs.podman];
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = true; RemainAfterExit = true;
@ -212,8 +259,8 @@
script = '' script = ''
podman volume inspect wavelog_wavelog-userdata || podman volume create wavelog_wavelog-userdata podman volume inspect wavelog_wavelog-userdata || podman volume create wavelog_wavelog-userdata
''; '';
partOf = [ "podman-compose-wavelog-root.target" ]; partOf = ["podman-compose-wavelog-root.target"];
wantedBy = [ "podman-compose-wavelog-root.target" ]; wantedBy = ["podman-compose-wavelog-root.target"];
}; };
# Root service # Root service
@ -223,6 +270,6 @@
unitConfig = { unitConfig = {
Description = "Root target generated by compose2nix."; Description = "Root target generated by compose2nix.";
}; };
wantedBy = [ "multi-user.target" ]; wantedBy = ["multi-user.target"];
}; };
} }

View file

@ -4,11 +4,6 @@ services:
# By default Part-DB will be running under Port 8080, you can change it here # By default Part-DB will be running under Port 8080, you can change it here
ports: ports:
- '8087:80' - '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 restart: unless-stopped
labels: labels:
- "compose2nix.settings.sops.secrets=songsheet/database/DATABASE_URL" - "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: # 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 # The packages will be installed automatically when the container starts
# - COMPOSER_EXTRA_PACKAGES=symfony/mailgun-mailer symfony/sendgrid-mailer # - 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 wavelog-db: # THIS IS NOW DANGLING BUT WILL BE THERE TO PREVENT BREAKAGE OF THE MAIN COMPOSE FILE
image: mariadb:11.3 image: mariadb:11.3
@ -87,4 +88,7 @@ volumes:
wavelog-dbdata: wavelog-dbdata:
wavelog-uploads: wavelog-uploads:
wavelog-userdata: wavelog-userdata:
wavelog-config: wavelog-config:
partdb_uploads_f:
partdb_media_f:
partdb_db_f: