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