]>
Commit | Line | Data |
---|---|---|
1 | { lib, pkgs, config, ... }: | |
2 | let | |
3 | infcloud = rec { | |
4 | webappName = "tools_infcloud"; | |
5 | root = "/run/current-system/webapps/${webappName}"; | |
6 | vhostConf = '' | |
7 | Alias /carddavmate ${root} | |
8 | Alias /caldavzap ${root} | |
9 | Alias /infcloud ${root} | |
10 | <Directory ${root}> | |
11 | AllowOverride All | |
12 | Options FollowSymlinks | |
13 | Require all granted | |
14 | DirectoryIndex index.html | |
15 | </Directory> | |
16 | ''; | |
17 | }; | |
18 | davical = pkgs.callPackage ./davical.nix { | |
19 | env = config.myEnv.tools.davical; | |
20 | inherit (pkgs.webapps) davical awl; | |
21 | }; | |
22 | ||
23 | cfg = config.myServices.websites.tools.dav; | |
24 | in { | |
25 | options.myServices.websites.tools.dav = { | |
26 | enable = lib.mkEnableOption "enable dav website"; | |
27 | }; | |
28 | ||
29 | config = lib.mkIf cfg.enable { | |
30 | system.activationScripts.davical = davical.activationScript; | |
31 | secrets.keys = davical.keys; | |
32 | services.websites.env.tools.modules = davical.apache.modules; | |
33 | ||
34 | services.websites.env.tools.vhostConfs.dav = { | |
35 | certName = "eldiron"; | |
36 | addToCerts = true; | |
37 | hosts = ["dav.immae.eu" ]; | |
38 | root = "/run/current-system/webapps/_dav"; | |
39 | extraConfig = [ | |
40 | infcloud.vhostConf | |
41 | (davical.apache.vhostConf config.services.phpfpm.pools.davical.socket) | |
42 | ]; | |
43 | }; | |
44 | ||
45 | services.phpfpm.pools = { | |
46 | davical = { | |
47 | user = config.services.httpd.Tools.user; | |
48 | group = config.services.httpd.Tools.group; | |
49 | settings = davical.phpFpm.pool; | |
50 | }; | |
51 | }; | |
52 | ||
53 | myServices.websites.webappDirs._dav = ./www; | |
54 | myServices.websites.webappDirs."${davical.apache.webappName}" = davical.webRoot; | |
55 | myServices.websites.webappDirs."${infcloud.webappName}" = pkgs.webapps.infcloud; | |
56 | }; | |
57 | } | |
58 |