From 8a34bd46c45d4a7555a0e86d4e78c2d4f6d2e993 Mon Sep 17 00:00:00 2001 From: Valentin Date: Tue, 14 Oct 2025 16:57:58 +0200 Subject: =?UTF-8?q?Befehle=20zur=20Ver=C3=B6ffentlichung=20der=20Inhalte?= =?UTF-8?q?=20und=20lokalen=20Vorschau?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- www/caddy.nix | 56 +++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 15 deletions(-) (limited to 'www') 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 + ''; + }; + }; } -- cgit v1.2.3