]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - nixops/modules/websites/tools/dav/default.nix
075cf48d440a4f906d46f17e3064f2ab744d90d1
[perso/Immae/Config/Nix.git] / nixops / modules / websites / tools / dav / default.nix
1 { lib, pkgs, config, myconfig, ... }:
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 = myconfig.env.tools.davical;
20 inherit (pkgs.webapps) davical awl;
21 };
22
23 cfg = config.services.myWebsites.tools.dav;
24 in {
25 options.services.myWebsites.tools.dav = {
26 enable = lib.mkEnableOption "enable dav website";
27 };
28
29 config = lib.mkIf cfg.enable {
30 secrets.keys = davical.keys;
31 services.websites.tools.modules = davical.apache.modules;
32
33 services.websites.tools.vhostConfs.dav = {
34 certName = "eldiron";
35 addToCerts = true;
36 hosts = ["dav.immae.eu" ];
37 root = null;
38 extraConfig = [
39 infcloud.vhostConf
40 davical.apache.vhostConf
41 ];
42 };
43
44 services.myPhpfpm.poolConfigs = {
45 davical = davical.phpFpm.pool;
46 };
47
48 system.extraSystemBuilderCmds = ''
49 mkdir -p $out/webapps
50 ln -s ${davical.webRoot} $out/webapps/${davical.apache.webappName}
51 ln -s ${pkgs.webapps.infcloud} $out/webapps/${infcloud.webappName}
52 '';
53 };
54 }
55