forked from
lass.pds.lassul.us/superconfig
This repository has no description
2.7 kB
94 lines
1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7{
8 services.nginx.virtualHosts."ref.ptkk.de" = {
9 enableACME = true;
10 locations."/" = {
11 proxyPass = "http://localhost:4626";
12 extraConfig = ''
13 proxy_http_version 1.1;
14 proxy_set_header Host $host;
15 proxy_set_header X-Real-IP $remote_addr;
16 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
17 proxy_set_header X-Forwarded-Proto $scheme;
18 proxy_set_header X-Forwarded-Port $server_port;
19 proxy_set_header X-Forwarded-Host $host;
20 proxy_set_header Connection $connection_upgrade;
21 proxy_set_header Upgrade $http_upgrade;
22 proxy_cache_bypass $http_upgrade;
23 '';
24 };
25 locations."/static/" = {
26 alias = "/var/lib/ref.ptkk.de/static/";
27 };
28 forceSSL = true;
29 };
30 systemd.services."ref.ptkk.de" = {
31 wantedBy = [ "multi-user.target" ];
32 environment = {
33 PRODUCTION = "yip";
34 DATA_DIR = "/var/lib/ref.ptkk.de/data";
35 PORT = "4626";
36 STATIC_ROOT = "/var/lib/ref.ptkk.de/static";
37 };
38 path = with pkgs; [
39 git
40 gnutar
41 gzip
42 nix
43 ];
44 serviceConfig = {
45 ExecStartPre = [
46 "${pkgs.coreutils}/bin/mkdir -p /var/lib/ref.ptkk.de/data"
47 "${pkgs.coreutils}/bin/mkdir -p /var/lib/ref.ptkk.de/code"
48 "${pkgs.coreutils}/bin/mkdir -p /var/lib/ref.ptkk.de/static"
49 ];
50 ExecStart = pkgs.writers.writeDash "nixify" ''
51 cd code
52 if test -e shell.nix; then
53 ${pkgs.nix}/bin/nix-shell -I /var/src --run serve
54 else
55 echo 'no shell.nix, bailing out'
56 exit 0
57 fi
58 '';
59 LoadCredential = [
60 "django-secret.key:${config.krebs.secret.directory}/ref.ptkk.de-django.key"
61 ];
62 User = "ref.ptkk.de";
63 WorkingDirectory = "/var/lib/ref.ptkk.de";
64 StateDirectory = "ref.ptkk.de";
65 Restart = "always";
66 RestartSec = "100s";
67 };
68 };
69 systemd.services."ref.ptkk.de-restarter" = {
70 serviceConfig = {
71 Type = "oneshot";
72 ExecStart = "${pkgs.systemd}/bin/systemctl restart ref.ptkk.de.service";
73 };
74 };
75 systemd.paths."ref.ptkk.de-restarter" = {
76 wantedBy = [ "multi-user.target" ];
77 pathConfig.PathChanged = [
78 "/var/lib/ref.ptkk.de/code"
79 "/var/src/nixpkgs"
80 ];
81 };
82
83 users.users."ref.ptkk.de" = {
84 isSystemUser = true;
85 uid = pkgs.stockholm.lib.genid_uint31 "ref.ptkk.de";
86 openssh.authorizedKeys.keys = [
87 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF6fu6LtyRdk++qIBpP0BdZQHSTqzNNlvp7ML2Dv0IxD CI@github.com"
88 config.krebs.users.lass.pubkey
89 ];
90 group = "nginx";
91 home = "/var/lib/ref.ptkk.de";
92 useDefaultShell = true;
93 };
94}