summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hostnix/elmo/configuration.nix1
-rw-r--r--hostnix/elmo/yakatak.nix41
2 files changed, 42 insertions, 0 deletions
diff --git a/hostnix/elmo/configuration.nix b/hostnix/elmo/configuration.nix
index dec1dfa..6ecd69f 100644
--- a/hostnix/elmo/configuration.nix
+++ b/hostnix/elmo/configuration.nix
@@ -21,6 +21,7 @@
./usenet.nix
./web.nix
./wireguard.nix
+ ./yakatak.nix
];
nix.settings.experimental-features = [ "nix-command" "flakes" ];
diff --git a/hostnix/elmo/yakatak.nix b/hostnix/elmo/yakatak.nix
new file mode 100644
index 0000000..2057a92
--- /dev/null
+++ b/hostnix/elmo/yakatak.nix
@@ -0,0 +1,41 @@
+{ pkgs, ... }:
+
+{
+ systemd.tmpfiles.rules = [
+ "d /opt/yakatak 0755 joe users"
+ ];
+
+ systemd.services.yakatak = {
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ Type = "exec";
+ DynamicUser = true;
+ SupplementaryGroups = "nginx";
+ RuntimeDirectory = "yakatak";
+ StateDirectory = "yakatak";
+ WorkingDirectory = "/opt/yakatak";
+ };
+ environment = {
+ NITRO_UNIX_SOCKET = "/run/yakatak/socket";
+ NUXT_DB_PATH = "/var/lib/yakatak/yakatak.db";
+ };
+ script = ''
+ # Hack to make our socket connectable by nginx.
+ (
+ sleep 5
+ chown :nginx /run/yakatak/socket
+ chmod g+w /run/yakatak/socket
+ ) &
+
+ ${pkgs.nodejs_22}/bin/node .output/server/index.mjs
+ '';
+ };
+
+ services.nginx.virtualHosts."yakatak.app" = {
+ enableACME = true;
+ forceSSL = true;
+ locations."/" = {
+ proxyPass = "http://unix:/run/yakatak/socket";
+ };
+ };
+}