]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - modules/private/websites/immae/temp.nix
85182834a7bce60deeff6f81ee4e6fd69b21862f
[perso/Immae/Config/Nix.git] / modules / private / websites / immae / temp.nix
1 { lib, pkgs, config, ... }:
2 let
3 cfg = config.myServices.websites.immae.temp;
4 varDir = "/var/lib/immae_temp";
5 env = config.myEnv.websites.immae.temp;
6 in {
7 options.myServices.websites.immae.temp.enable = lib.mkEnableOption "enable Temp' website";
8
9 config = lib.mkIf cfg.enable {
10 services.duplyBackup.profiles.immae_temp.rootDir = varDir;
11 services.duplyBackup.profiles.immae_temp_surfer.rootDir = "/var/lib/surfer";
12 services.websites.env.production.vhostConfs.immae_temp = {
13 certName = "immae";
14 addToCerts = true;
15 hosts = [ "temp.immae.eu" ];
16 root = null;
17 extraConfig = [ ''
18 ProxyVia On
19 ProxyRequests Off
20 ProxyPreserveHost On
21 ProxyPass / unix:///run/surfer/listen.sock|http://temp.immae.eu/
22 ProxyPassReverse / unix:///run/surfer/listen.sock|http://temp.immae.eu/
23 <Proxy *>
24 Options FollowSymLinks MultiViews
25 AllowOverride None
26 Require all granted
27 </Proxy>
28 '' ];
29 };
30
31 secrets.keys = [
32 {
33 dest = "webapps/surfer";
34 permissions = "0400";
35 user = "wwwrun";
36 group = "wwwrun";
37 text = ''
38 CLOUDRON_LDAP_URL=ldaps://${env.ldap.host}
39 CLOUDRON_LDAP_USERS_BASE_DN=${env.ldap.base}
40 TOKENSTORE_FILE=/var/lib/surfer/tokens.json
41 CLOUDRON_LDAP_BIND_DN=${env.ldap.dn}
42 CLOUDRON_LDAP_BIND_PASSWORD=${env.ldap.password}
43 CLOUDRON_LDAP_USERS_BASE_DN=${env.ldap.base}
44 CLOUDRON_LDAP_FILTER="${env.ldap.filter}"
45 LISTEN=/run/surfer/listen.sock
46 '';
47 }
48 ];
49
50 systemd.services.surfer = {
51 description = "Surfer";
52 wantedBy = [ "multi-user.target" ];
53 after = [ "network.target" ];
54
55 script = ''
56 exec ${pkgs.webapps.surfer}/bin/surfer-server ${varDir}
57 '';
58 serviceConfig = {
59 EnvironmentFile = config.secrets.fullPaths."webapps/surfer";
60 User = "wwwrun";
61 Group = "wwwrun";
62 StateDirectory = "surfer";
63 RuntimeDirectory = "surfer";
64 Type = "simple";
65 };
66 };
67 };
68 }
69