--- /dev/null
+{ 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.myServices.websites.tools.dav;
+in {
+ options.myServices.websites.tools.dav = {
+ enable = lib.mkEnableOption "enable dav website";
+ };
+
+ config = lib.mkIf cfg.enable {
+ system.activationScripts.davical = davical.activationScript;
+ 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;
+ };
+
+ myServices.websites.webappDirs."${davical.apache.webappName}" = davical.webRoot;
+ myServices.websites.webappDirs."${infcloud.webappName}" = pkgs.webapps.infcloud;
+ };
+}
+