diff options
| author | Valentin <valentin@fricklerhandwerk.de> | 2025-10-14 16:57:58 +0200 |
|---|---|---|
| committer | Valentin <valentin@fricklerhandwerk.de> | 2025-11-06 16:46:27 +0100 |
| commit | 8a34bd46c45d4a7555a0e86d4e78c2d4f6d2e993 (patch) | |
| tree | 97f5b6f90b713801fe507046797c437fed74223b /www/caddy.nix | |
| parent | 2a04f1c63ae150dc27dac8f33c0d6f04e3410b12 (diff) | |
Befehle zur Veröffentlichung der Inhalte und lokalen Vorschau
Diffstat (limited to 'www/caddy.nix')
| -rw-r--r-- | www/caddy.nix | 56 |
1 files changed, 41 insertions, 15 deletions
diff --git a/www/caddy.nix b/www/caddy.nix index dd31299..a2da36b 100644 --- a/www/caddy.nix +++ b/www/caddy.nix @@ -1,4 +1,12 @@ -{ self, ... }: +{ self, lib, ... }: +let + html = + with lib.fileset; + toSource { + root = ./html; + fileset = ./html; + }; +in { flake.domain = "heimfeld.hamburg"; flake.machines.tharos = { @@ -35,20 +43,11 @@ }; }; - systemd.tmpfiles.rules = - let - html = - with lib.fileset; - toSource { - root = ./html; - fileset = ./html; - }; - in - [ - # Verzeichnis für Web-Inhalte sofort anlegen, da der Webserver sonst nicht startet, - # aber nur wenn es noch nicht existiert. - "C /var/www/${self.domain} - - - - ${html}" - ]; + systemd.tmpfiles.rules = [ + # Verzeichnis für Web-Inhalte sofort anlegen, da der Webserver sonst nicht startet, + # aber nur wenn es noch nicht existiert. + "C /var/www/${self.domain} - - - - ${html}" + ]; }; vm = { @@ -82,4 +81,31 @@ ''; }; }; + perSystem = + { + pkgs, + system, + self', + ... + }: + { + # Website-Inhalte auf den Server hochladen + packages.publish = pkgs.writeShellApplication { + name = "publish"; + runtimeInputs = with pkgs; [ rsync ]; + text = '' + rsync -avi --rsync-path "sudo rsync" --chown caddy:caddy --delete ${self'.packages.html}/ ${self.machines.tharos.deploy-target}:/var/www/${self.domain}/ + ''; + }; + + # Lokale Vorschau + packages.html = pkgs.runCommand "source" { } '' + cp -r ${html} $out + ''; + packages.preview = pkgs.devmode.override { + buildArgs = '' + -A packages.${system}.html -vv + ''; + }; + }; } |
