chore: snipe-it fix postInstall script

This commit is contained in:
m3tam3re
2026-06-19 09:01:22 +02:00
parent 0147b42ce3
commit 4e9fca4513
2 changed files with 29 additions and 0 deletions
+15
View File
@@ -1,12 +1,24 @@
{
config,
lib,
pkgs,
...
}: let
serviceName = "snipe-it";
servicePort = config.m3ta.ports.get serviceName;
mysqlPort = config.m3ta.ports.get "mysql";
hostName = "am.az-gruppe.com";
restoreDefaults = pkgs.writeShellScript "snipe-it-restore-defaults" ''
set -euo pipefail
src="${pkgs.snipe-it}/share/snipe-it/uploads"
dst="/var/lib/snipe-it/public/uploads"
if [ -d "$src" ] && [ -d "$dst" ]; then
# -n = kein Überschreiben existierender Dateien (User-Uploads bleiben erhalten)
cp -rn "$src/." "$dst/"
fi
'';
in {
services.${serviceName} = {
enable = true;
@@ -52,6 +64,9 @@ in {
after = ["mysql.service"];
requires = ["mysql.service"];
unitConfig.ConditionPathExists = "${config.services.mysql.dataDir}/snipeit";
serviceConfig = {
ExecStartPre = ["+${restoreDefaults}"];
};
};
# Traefik configuration
+14
View File
@@ -0,0 +1,14 @@
{prev}: {
snipe-it = prev.snipe-it.overrideAttrs (oldAttrs: {
postInstall =
''
snipe_it_out="$out/share/php/snipe-it"
mkdir -p $out/share/snipe-it
# Alle Default-Uploads sichern (z.B. default.png) bevor das
# ursprüngliche postInstall das Verzeichnis mit rm -R löscht
cp -r $snipe_it_out/public/uploads $out/share/snipe-it/uploads
''
+ oldAttrs.postInstall;
});
}