-{ lib, pkgs, config, myconfig, ... }:
-let
- infcloud = rec {
- webappName = "tools_infcloud";
- root = "/run/current-system/webapps/${webappName}";
- vhostConf = ''
- Alias /carddavmate ${root}
- Alias /caldavzap ${root}
- Alias /infcloud ${root}
- <Directory ${root}>
- AllowOverride All
- Options FollowSymlinks
- Require all granted
- DirectoryIndex index.html
- </Directory>
- '';
- };
- davical = pkgs.callPackage ./davical.nix {
- env = myconfig.env.tools.davical;
- inherit (pkgs.webapps) davical awl;
- };
-
- cfg = config.services.myWebsites.tools.dav;
-in {
- options.services.myWebsites.tools.dav = {
- enable = lib.mkEnableOption "enable dav website";
- };
-
- config = lib.mkIf cfg.enable {
- secrets.keys = davical.keys;
- services.websites.tools.modules = davical.apache.modules;
-
- services.websites.tools.vhostConfs.dav = {
- certName = "eldiron";
- addToCerts = true;
- hosts = ["dav.immae.eu" ];
- root = null;
- extraConfig = [
- infcloud.vhostConf
- davical.apache.vhostConf
- ];
- };
-
- services.phpfpm.poolConfigs = {
- davical = davical.phpFpm.pool;
- };
-
- system.extraSystemBuilderCmds = ''
- mkdir -p $out/webapps
- ln -s ${davical.webRoot} $out/webapps/${davical.apache.webappName}
- ln -s ${pkgs.webapps.infcloud} $out/webapps/${infcloud.webappName}
- '';
- };
-}
-