1{
2 inputs,
3 pkgs,
4 lib,
5 ...
6}:
7let
8 pkg = pkgs.callPackage "${inputs.limbusart}/package.nix" { };
9 domain = "pmart.gaze.systems";
10in
11{
12 systemd.services.limbusart = {
13 description = "limbusart";
14 wantedBy = [ "multi-user.target" ];
15 after = [ "network.target" ];
16 serviceConfig = lib.mkMerge [
17 {
18 User = "limbusart";
19 ExecStart = "${pkg}/bin/limbusart";
20 Restart = "on-failure";
21 RestartSec = 5;
22 WorkingDirectory = "/var/lib/limbusart";
23 EnvironmentFile = pkgs.writeText "limbusart.conf" ''
24 ARTS_PATH="arts.txt"
25 SITE_TITLE="random pm art"
26 EMBED_TITLE="random pm art here!!"
27 EMBED_DESC="click NOW to see random pm art"
28 EMBED_COLOR="#bd0000"
29 '';
30 }
31 ];
32 };
33 users.users.limbusart = {
34 isSystemUser = true;
35 group = "limbusart";
36 };
37 users.groups.limbusart = { };
38
39 security.acme.certs."gaze.systems".extraDomainNames = [domain];
40 services.nginx.virtualHosts.${domain} = {
41 useACMEHost = "gaze.systems";
42 forceSSL = true;
43 quic = true;
44 kTLS = true;
45 locations."/".proxyPass = "http://localhost:3000";
46 };
47}