fix pods creation and folder management

This commit is contained in:
Dmitriy Kholkin 2023-06-27 23:09:36 +03:00
parent fc7349aa48
commit 443a9c394a
5 changed files with 19 additions and 14 deletions

View File

@ -82,16 +82,17 @@ in {
}; };
}; };
systemd.tmpfiles.rules = [
"d ${data-dir}/db 0700 70 root -"
"d ${data-dir}/redis 0755 dhcpcd root -"
"d ${data-dir}/media 0755 ${owner} ${owner} -"
"d ${data-dir}/certs 0755 ${owner} ${owner} -"
"d ${data-dir}/custom-templates 0755 ${owner} ${owner} -"
];
systemd.services."podman-create-${pod-name}" = let systemd.services."podman-create-${pod-name}" = let
portsMapping = lib.concatMapStrings (port: " -p " + port) open-ports; portsMapping = lib.concatMapStrings (port: " -p " + port) open-ports;
start = pkgs.writeShellScript "create-pod" '' start = pkgs.writeShellScript "create-pod" ''
if [[ ! -d "${data-dir}" ]]; then
mkdir -p "${data-dir}/db"
mkdir -p "${data-dir}/redis"
mkdir -p "${data-dir}/media" && chown ${owner}:${owner} "${data-dir}/media"
mkdir -p "${data-dir}/certs" && chown ${owner}:${owner} "${data-dir}/certs"
mkdir -p "${data-dir}/custom-templates" && chown ${owner}:${owner} "${data-dir}/custom-templates"
fi
podman pod exists ${pod-name} || podman pod create -n ${pod-name} ${portsMapping} podman pod exists ${pod-name} || podman pod create -n ${pod-name} ${portsMapping}
''; '';
stop = "podman pod rm -i -f ${pod-name}"; stop = "podman pod rm -i -f ${pod-name}";
@ -104,7 +105,7 @@ in {
"${backend}-authentik-worker.service" "${backend}-authentik-worker.service"
"${backend}-authentik-ldap.service" "${backend}-authentik-ldap.service"
]; ];
wantedBy = before; requiredBy = before;
partOf = before; partOf = before;
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";

View File

@ -108,7 +108,7 @@ in {
older-than = "3"; # in days older-than = "3"; # in days
in rec { in rec {
before = [ "gitea-dump.service" ]; before = [ "gitea-dump.service" ];
wantedBy = before; requiredBy = before;
script = '' script = ''
${pkgs.findutils}/bin/find ${config.services.gitea.dump.backupDir} \ ${pkgs.findutils}/bin/find ${config.services.gitea.dump.backupDir} \
-mindepth 1 -type f -mtime +${older-than} -delete -mindepth 1 -type f -mtime +${older-than} -delete

View File

@ -32,18 +32,22 @@ in {
volumes = [ "${joplin-db-data}:/var/lib/postgresql/data" ]; volumes = [ "${joplin-db-data}:/var/lib/postgresql/data" ];
}; };
}; };
systemd.tmpfiles.rules = [
"d ${joplin-data} 0755 ${joplin-uid} ${joplin-uid} -"
"d ${joplin-db-data} 0700 dhcpcd dhcpcd -"
];
systemd.services."podman-create-${pod-name}" = let systemd.services."podman-create-${pod-name}" = let
portsMapping = lib.concatMapStrings (port: " -p " + port) open-ports; portsMapping = lib.concatMapStrings (port: " -p " + port) open-ports;
start = pkgs.writeShellScript "create-pod" '' start = pkgs.writeShellScript "create-pod" ''
mkdir -p ${joplin-data} && chown ${joplin-uid} ${joplin-data}
mkdir -p ${joplin-db-data}
podman pod exists ${pod-name} || podman pod create -n ${pod-name} ${portsMapping} podman pod exists ${pod-name} || podman pod create -n ${pod-name} ${portsMapping}
''; '';
stop = "podman pod rm -i -f ${pod-name}"; stop = "podman pod rm -i -f ${pod-name}";
in rec { in rec {
path = [ pkgs.coreutils config.virtualisation.podman.package ]; path = [ pkgs.coreutils config.virtualisation.podman.package ];
before = [ "${backend}-joplin.service" "${backend}-joplin-db.service" ]; before = [ "${backend}-joplin.service" "${backend}-joplin-db.service" ];
wantedBy = before; requiredBy = before;
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = "yes"; RemainAfterExit = "yes";

View File

@ -43,7 +43,7 @@ in {
"${backend}-recyclarr.service" "${backend}-recyclarr.service"
"${backend}-sonarr.service" "${backend}-sonarr.service"
]; ];
wantedBy = before; requiredBy = before;
partOf = before; partOf = before;
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";

View File

@ -139,7 +139,7 @@ in {
"${backend}-memcached.service" "${backend}-memcached.service"
"${backend}-seafile-caddy.service" "${backend}-seafile-caddy.service"
]; ];
wantedBy = before; requiredBy = before;
partOf = before; partOf = before;
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";