diff --git a/hosts/common/default.nix b/hosts/common/default.nix index 5744a71..8117212 100644 --- a/hosts/common/default.nix +++ b/hosts/common/default.nix @@ -25,5 +25,7 @@ sops just htop + nodejs + pnpm ]; } diff --git a/hosts/lab/default.nix b/hosts/lab/default.nix index 50949c4..d45996b 100644 --- a/hosts/lab/default.nix +++ b/hosts/lab/default.nix @@ -6,6 +6,7 @@ ./foundry.nix ./dokuwiki.nix ./forgejo.nix + ./wynne.nix ]; networking.hostName = "lab"; diff --git a/hosts/lab/wynne.nix b/hosts/lab/wynne.nix new file mode 100644 index 0000000..2fff5c4 --- /dev/null +++ b/hosts/lab/wynne.nix @@ -0,0 +1,40 @@ +{ pkgs, ... }: +let + port = 4322; + dataDir = "/srv/wynne"; +in +{ + services.caddy.virtualHosts."wynne.rs" = { + extraConfig = '' + reverse_proxy localhost:${toString port} + encode zstd gzip + ''; + }; + + systemd.services.wynne = { + description = "wynne.rs"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + environment = { + HOST = "127.0.0.1"; + PORT = toString port; + ASTRO_DATABASE_FILE = "${dataDir}/data/guestbook.db"; + }; + serviceConfig = { + Type = "simple"; + WorkingDirectory = "${dataDir}/repo"; + ExecStart = "${pkgs.nodejs}/bin/node dist/server/entry.mjs"; + Restart = "on-failure"; + User = "wynne"; + Group = "wynne"; + ReadWritePaths = [ "${dataDir}/data" ]; + }; + }; + + users.users.wynne = { + isSystemUser = true; + group = "wynne"; + home = dataDir; + }; + users.groups.wynne = {}; +}