dotfiles/nix/server/site.nix
2025-10-18 12:43:35 +09:00

52 lines
1.2 KiB
Nix

{ config
, pkgs
, lib
, self
, nixpkgs
, kp2pml30-moe
, system
, ...
}@args:
let
cfg = config.kp2pml30.server;
ports = config.kp2pml30.server.ports;
backend = kp2pml30-moe.packages.${system}.kp2pml30-moe-backend;
frontend = kp2pml30-moe.packages.${system}.kp2pml30-moe-frontend;
in lib.mkIf cfg.nginx {
environment.systemPackages = [
frontend
];
kp2pml30.server.sitePath = frontend.outPath;
users.users.kp2pml30-moe-backend = {
home = "/home/kp2pml30-moe-backend";
isNormalUser = true;
packages = [
backend
pkgs.bash
];
};
systemd.services.kp2pml30-moe-backend-service = {
enable = true;
after = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = "kp2pml30-moe-backend";
ProtectSystem = "full";
ProtectHostname = "true";
ProtectKernelTunables = "true";
ProtectControlGroups = "true";
Restart = "on-failure";
RestartSec = "3";
ExecStart = ''${pkgs.bash}/bin/bash -c "source /home/kp2pml30-moe-backend/env.sh && touch /home/kp2pml30-moe-backend/db.json && ${backend}/bin/kp2pml30-moe-backend --port ${toString ports.backend} --moderated-path /home/kp2pml30-moe-backend/chatbox-db.json"'';
};
};
}