From 8beedcf05e101bb2a476e2fdcd3e113828bd3bad Mon Sep 17 00:00:00 2001 From: lew Date: Sat, 4 Apr 2026 19:55:54 +0100 Subject: [PATCH] add caddy, podman, foundry vtt, and dokuwiki --- hosts/lab/default.nix | 11 +++++++++++ hosts/lab/dokuwiki.nix | 23 +++++++++++++++++++++++ hosts/lab/foundry.nix | 20 ++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 hosts/lab/dokuwiki.nix create mode 100644 hosts/lab/foundry.nix diff --git a/hosts/lab/default.nix b/hosts/lab/default.nix index 6e0a22c..220771a 100644 --- a/hosts/lab/default.nix +++ b/hosts/lab/default.nix @@ -3,6 +3,8 @@ imports = [ ./hardware-configuration.nix ../common + ./foundry.nix + ./dokuwiki.nix ]; networking.hostName = "lab"; @@ -27,5 +29,14 @@ security.sudo.wheelNeedsPassword = false; + virtualisation.containers.enable = true; + virtualisation.podman = { + enable = true; + defaultNetwork.settings.dns_enabled = true; + }; + virtualisation.oci-containers.backend = "podman"; + + services.caddy.enable = true; + system.stateVersion = "23.11"; } diff --git a/hosts/lab/dokuwiki.nix b/hosts/lab/dokuwiki.nix new file mode 100644 index 0000000..df5e95a --- /dev/null +++ b/hosts/lab/dokuwiki.nix @@ -0,0 +1,23 @@ +{ ... }: +{ + services.caddy.virtualHosts."wiki.wynne.rs" = { + extraConfig = '' + reverse_proxy localhost:8070 + encode zstd gzip + ''; + }; + + virtualisation.oci-containers.containers.dokuwiki = { + image = "lscr.io/linuxserver/dokuwiki:latest"; + environment = { + PUID = "1000"; + PGID = "1000"; + TZ = "Europe/London"; + }; + volumes = [ + "/srv/dokuwiki/config:/config" + "/srv/dokuwiki/cont-init.d:/custom-cont-init.d:ro" + ]; + ports = [ "127.0.0.1:8070:80" ]; + }; +} diff --git a/hosts/lab/foundry.nix b/hosts/lab/foundry.nix new file mode 100644 index 0000000..2660860 --- /dev/null +++ b/hosts/lab/foundry.nix @@ -0,0 +1,20 @@ +{ ... }: +{ + services.caddy.virtualHosts."foundry.ily.rs" = { + extraConfig = '' + reverse_proxy localhost:30000 + encode zstd gzip + ''; + }; + + virtualisation.oci-containers.containers.foundry = { + image = "node:22-slim"; + cmd = [ "node" "main.js" "--dataPath=/data" ]; + workdir = "/app"; + volumes = [ + "/srv/foundry/app:/app:ro" + "/srv/foundry/data:/data" + ]; + ports = [ "127.0.0.1:30000:30000" ]; + }; +}