]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - modules/private/websites/tools/dav/default.nix
b3aa03deb7336c697c028b5bfdfcab704286826a
[perso/Immae/Config/Nix.git] / modules / private / websites / tools / dav / default.nix
1 { lib, pkgs, config, ... }:
2 let
3 infcloud = rec {
4 root = pkgs.webapps.infcloud;
5 vhostConf = ''
6 Alias /carddavmate ${root}
7 Alias /caldavzap ${root}
8 Alias /infcloud ${root}
9 <Directory ${root}>
10 AllowOverride All
11 Options FollowSymlinks
12 Require all granted
13 DirectoryIndex index.html
14 </Directory>
15 '';
16 };
17 davical = pkgs.callPackage ./davical.nix {
18 env = config.myEnv.tools.davical;
19 inherit (pkgs.webapps) davical awl;
20 inherit config;
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 = ./www;
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 phpPackage = pkgs.php72;
51 };
52 };
53 };
54 }
55