aboutsummaryrefslogtreecommitdiff
path: root/modules/private/websites/tools/dav/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/private/websites/tools/dav/default.nix')
-rw-r--r--modules/private/websites/tools/dav/default.nix53
1 files changed, 53 insertions, 0 deletions
diff --git a/modules/private/websites/tools/dav/default.nix b/modules/private/websites/tools/dav/default.nix
new file mode 100644
index 0000000..fb0baae
--- /dev/null
+++ b/modules/private/websites/tools/dav/default.nix
@@ -0,0 +1,53 @@
1{ lib, pkgs, config, myconfig, ... }:
2let
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 };
18 davical = pkgs.callPackage ./davical.nix {
19 env = myconfig.env.tools.davical;
20 inherit (pkgs.webapps) davical awl;
21 };
22
23 cfg = config.myServices.websites.tools.dav;
24in {
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.tools.modules = davical.apache.modules;
33
34 services.websites.tools.vhostConfs.dav = {
35 certName = "eldiron";
36 addToCerts = true;
37 hosts = ["dav.immae.eu" ];
38 root = null;
39 extraConfig = [
40 infcloud.vhostConf
41 davical.apache.vhostConf
42 ];
43 };
44
45 services.phpfpm.poolConfigs = {
46 davical = davical.phpFpm.pool;
47 };
48
49 myServices.websites.webappDirs."${davical.apache.webappName}" = davical.webRoot;
50 myServices.websites.webappDirs."${infcloud.webappName}" = pkgs.webapps.infcloud;
51 };
52}
53