|
1 | | -flake: |
| 1 | +{ flake, ... }: |
2 | 2 | { |
3 | 3 | config, |
4 | 4 | lib, |
|
8 | 8 | let |
9 | 9 | cfg = config.strykeforce.services.website; |
10 | 10 | stateDir = "/var/lib/strykeforce"; |
| 11 | + inherit (flake.packages.${pkgs.system}) manage static venv; |
11 | 12 | in |
12 | 13 | { |
13 | 14 | options.strykeforce.services.website = { |
|
56 | 57 | "d ${stateDir} 0775 strykeforce strykeforce -" |
57 | 58 | ]; |
58 | 59 |
|
59 | | - environment.systemPackages = [ |
60 | | - flake.packages.${pkgs.system}.strykeforce-manage |
61 | | - ]; |
| 60 | + environment.systemPackages = [ manage ]; |
62 | 61 |
|
63 | | - systemd.services.strykeforce-website = |
64 | | - let |
65 | | - venv = flake.packages.${pkgs.system}.venv; |
66 | | - static = flake.packages.${pkgs.system}.static; |
67 | | - in |
68 | | - { |
69 | | - wantedBy = [ "multi-user.target" ]; |
70 | | - requires = [ "postgresql.service" ]; |
71 | | - after = [ "postgresql.service" ]; |
72 | | - |
73 | | - environment = { |
74 | | - DJANGO_SETTINGS_MODULE = cfg.settingsModule; |
75 | | - ALLOWED_HOSTS = cfg.allowedHosts; |
76 | | - STATIC_ROOT = "${static}"; |
77 | | - MEDIA_ROOT = "${stateDir}/media"; |
78 | | - }; |
| 62 | + systemd.services.strykeforce-website = { |
| 63 | + wantedBy = [ "multi-user.target" ]; |
| 64 | + requires = [ "postgresql.service" ]; |
| 65 | + after = [ "postgresql.service" ]; |
79 | 66 |
|
80 | | - preStart = "${venv}/bin/strykeforce-manage migrate --no-input"; |
| 67 | + environment = { |
| 68 | + DJANGO_SETTINGS_MODULE = cfg.settingsModule; |
| 69 | + ALLOWED_HOSTS = cfg.allowedHosts; |
| 70 | + STATIC_ROOT = "${static}"; |
| 71 | + MEDIA_ROOT = "${stateDir}/media"; |
| 72 | + }; |
81 | 73 |
|
82 | | - serviceConfig = { |
83 | | - EnvironmentFile = cfg.secrets; |
84 | | - ExecStart = "${venv}/bin/gunicorn --workers=5 --bind=127.0.0.1:8000 website.wsgi"; |
85 | | - User = "strykeforce"; |
86 | | - Restart = "on-failure"; |
87 | | - }; |
| 74 | + preStart = "${venv}/bin/strykeforce-manage migrate --no-input"; |
| 75 | + |
| 76 | + serviceConfig = { |
| 77 | + EnvironmentFile = cfg.secrets; |
| 78 | + ExecStart = "${venv}/bin/gunicorn --workers=5 --bind=127.0.0.1:8000 website.wsgi"; |
| 79 | + User = "strykeforce"; |
| 80 | + Restart = "on-failure"; |
88 | 81 | }; |
| 82 | + }; |
89 | 83 |
|
90 | | - systemd.services.strykeforce-website-publish-scheduled = |
91 | | - let |
92 | | - venv = flake.packages.${pkgs.system}.venv; |
93 | | - static = flake.packages.${pkgs.system}.static; |
94 | | - in |
95 | | - { |
96 | | - startAt = "hourly"; |
97 | | - environment = { |
98 | | - DJANGO_SETTINGS_MODULE = cfg.settingsModule; |
99 | | - ALLOWED_HOSTS = cfg.allowedHosts; |
100 | | - STATIC_ROOT = "${static}"; |
101 | | - MEDIA_ROOT = "${stateDir}/media"; |
102 | | - }; |
103 | | - serviceConfig = { |
104 | | - EnvironmentFile = cfg.secrets; |
105 | | - User = "strykeforce"; |
106 | | - ExecStart = "${venv}/bin/strykeforce-manage publish_scheduled"; |
107 | | - }; |
| 84 | + systemd.services.strykeforce-website-publish-scheduled = { |
| 85 | + startAt = "hourly"; |
| 86 | + environment = { |
| 87 | + DJANGO_SETTINGS_MODULE = cfg.settingsModule; |
| 88 | + ALLOWED_HOSTS = cfg.allowedHosts; |
| 89 | + STATIC_ROOT = "${static}"; |
| 90 | + MEDIA_ROOT = "${stateDir}/media"; |
108 | 91 | }; |
| 92 | + serviceConfig = { |
| 93 | + EnvironmentFile = cfg.secrets; |
| 94 | + User = "strykeforce"; |
| 95 | + ExecStart = "${venv}/bin/strykeforce-manage publish_scheduled"; |
| 96 | + }; |
| 97 | + }; |
109 | 98 |
|
110 | 99 | services.postgresql = { |
111 | 100 | ensureDatabases = [ "strykeforce" ]; |
|
0 commit comments