aboutsummaryrefslogtreecommitdiff
path: root/www
diff options
context:
space:
mode:
Diffstat (limited to 'www')
-rw-r--r--www/caddy.nix56
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
+ '';
+ };
+ };
}