]> git.immae.eu Git - perso/Immae/Config/Nix.git/blame - modules/private/websites/tools/dav/default.nix
Move secrets to flakes
[perso/Immae/Config/Nix.git] / modules / private / websites / tools / dav / default.nix
CommitLineData
ab8f306d 1{ lib, pkgs, config, ... }:
10889174 2let
452c2314
IB
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 };
9d90e7e2 18 davical = pkgs.callPackage ./davical.nix {
ab8f306d 19 env = config.myEnv.tools.davical;
452c2314 20 inherit (pkgs.webapps) davical awl;
da30ae4f 21 inherit config;
9d90e7e2 22 };
10889174 23
4288c2f2 24 cfg = config.myServices.websites.tools.dav;
10889174 25in {
4288c2f2 26 options.myServices.websites.tools.dav = {
10889174
IB
27 enable = lib.mkEnableOption "enable dav website";
28 };
29
30 config = lib.mkIf cfg.enable {
4288c2f2 31 system.activationScripts.davical = davical.activationScript;
1a718805 32 secrets.keys = davical.keys;
29f8cb85 33 services.websites.env.tools.modules = davical.apache.modules;
10889174 34
29f8cb85 35 services.websites.env.tools.vhostConfs.dav = {
10889174 36 certName = "eldiron";
7df420c2 37 addToCerts = true;
10889174 38 hosts = ["dav.immae.eu" ];
f00e1c4b 39 root = "/run/current-system/webapps/_dav";
10889174 40 extraConfig = [
452c2314 41 infcloud.vhostConf
5400b9b6 42 (davical.apache.vhostConf config.services.phpfpm.pools.davical.socket)
10889174
IB
43 ];
44 };
45
441da8aa
IB
46 services.phpfpm.pools = {
47 davical = {
5400b9b6
IB
48 user = config.services.httpd.Tools.user;
49 group = config.services.httpd.Tools.group;
50 settings = davical.phpFpm.pool;
dcac3ec7 51 phpPackage = pkgs.php72;
441da8aa 52 };
10889174
IB
53 };
54
d3452fc5
IB
55 services.websites.webappDirs._dav = ./www;
56 services.websites.webappDirs."${davical.apache.webappName}" = davical.webRoot;
57 services.websites.webappDirs."${infcloud.webappName}" = pkgs.webapps.infcloud;
10889174
IB
58 };
59}
60