1 { lib, pkgs, config, ... }:
4 root = pkgs.webapps-infcloud;
6 Alias /carddavmate ${root}
7 Alias /caldavzap ${root}
8 Alias /infcloud ${root}
11 Options FollowSymlinks
13 DirectoryIndex index.html
17 davical = pkgs.callPackage ./davical.nix {
18 env = config.myEnv.tools.davical;
19 davical = pkgs.webapps-davical;
20 awl = pkgs.webapps-awl;
24 cfg = config.myServices.websites.tools.dav;
26 options.myServices.websites.tools.dav = {
27 enable = lib.mkEnableOption "enable dav website";
30 config = lib.mkIf cfg.enable {
31 myServices.dns.zones."immae.eu".subdomains.dav =
32 with config.myServices.dns.helpers; ips servers.eldiron.ips.main;
34 myServices.chatonsProperties.services = {
36 file.datetime = "2022-08-21T01:33:00";
39 description = "DAViCal is a server for calendar sharing";
40 website = "https://dav.immae.eu";
41 logo = "https://www.davical.org/images/logo.gif";
43 status.description = "OK";
44 registration."" = ["MEMBER" "CLIENT"];
45 registration.load = "OPEN";
46 install.type = "PACKAGE";
50 website = "https://www.davical.org/";
51 license.url = "https://gitlab.com/davical-project/davical/-/blob/master/COPYING";
52 license.name = "GNU General Public License Version 2";
53 version = pkgs.webapps-davical.version;
54 source.url = "https://gitlab.com/davical-project/davical/";
59 # file.datetime = "2022-08-22T00:00:00";
62 # description = "Opensource CalDAV web client";
63 # website = "https://dav.immae.eu/caldavzap/";
64 # logo = "https://dav.immae.eu/caldavzap/images/infcloud_logo.svg";
65 # status.level = "OK";
66 # status.description = "OK";
67 # registration."" = ["MEMBER" "CLIENT"];
68 # registration.load = "OPEN";
69 # install.type = "PACKAGE";
73 # website = "https://inf-it.com/open-source/clients/infcloud/";
74 # license.url = "https://www.gnu.org/licenses/agpl-3.0.en.html";
75 # license.name = "GNU Affero General Public License (version 3.0)";
76 # version = pkgs.webapps-infcloud.version;
77 # source.url = "https://inf-it.com/open-source/clients/infcloud/";
81 # file.datetime = "2022-08-22T00:00:00";
84 # description = "Opensource Carddav web client";
85 # website = "https://dav.immae.eu/carddavmate/";
86 # logo = "https://dav.immae.eu/caldavzap/images/infcloud_logo.svg";
87 # status.level = "OK";
88 # status.description = "OK";
89 # registration."" = ["MEMBER" "CLIENT"];
90 # registration.load = "OPEN";
91 # install.type = "PACKAGE";
95 # website = "https://inf-it.com/open-source/clients/infcloud/";
96 # license.url = "https://www.gnu.org/licenses/agpl-3.0.en.html";
97 # license.name = "GNU Affero General Public License (version 3.0)";
98 # version = pkgs.webapps-infcloud.version;
99 # source.url = "https://inf-it.com/open-source/clients/infcloud/";
103 secrets.keys = davical.keys;
104 services.websites.env.tools.modules = davical.apache.modules;
106 security.acme.certs.eldiron.extraDomainNames = [ "dav.immae.eu" ];
107 services.websites.env.tools.vhostConfs.dav = {
108 certName = "eldiron";
109 hosts = ["dav.immae.eu" ];
113 (davical.apache.vhostConf config.services.phpfpm.pools.davical.socket)
117 services.phpfpm.pools = {
119 user = config.services.websites.env.tools.user;
120 group = config.services.websites.env.tools.group;
121 settings = davical.phpFpm.pool;
122 phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
125 myServices.monitoring.fromMasterActivatedPlugins = [ "http" ];
126 myServices.monitoring.fromMasterObjects.service = [
128 service_description = "davical website is running on dav.immae.eu";
129 host_name = config.hostEnv.fqdn;
130 use = "external-web-service";
131 check_command = ["check_https" "dav.immae.eu" "/davical/" "Log On Please"];
133 servicegroups = "webstatus-webapps";
134 _webstatus_name = "Davical";
135 _webstatus_url = "https://dav.immae.eu/davical";