]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - virtual/modules/websites/tools/cloud/default.nix
Refactor websites.
[perso/Immae/Config/Nix.git] / virtual / modules / websites / tools / cloud / default.nix
diff --git a/virtual/modules/websites/tools/cloud/default.nix b/virtual/modules/websites/tools/cloud/default.nix
new file mode 100644 (file)
index 0000000..7dd5c6e
--- /dev/null
@@ -0,0 +1,45 @@
+{ lib, pkgs, config, mylibs, ... }:
+let
+    nextcloud = pkgs.callPackage ./nextcloud.nix { inherit (mylibs) checkEnv; };
+
+    cfg = config.services.myWebsites.tools.cloud;
+in {
+  options.services.myWebsites.tools.cloud = {
+    enable = lib.mkEnableOption "enable cloud website";
+  };
+
+  config = lib.mkIf cfg.enable {
+    security.acme.certs."eldiron".extraDomains."cloud.immae.eu" = null;
+
+    services.myWebsites.tools.modules = nextcloud.apache.modules;
+
+    services.myWebsites.tools.vhostConfs.cloud = {
+      certName    = "eldiron";
+      hosts       = ["cloud.immae.eu" ];
+      root        = nextcloud.webRoot;
+      extraConfig = [
+        nextcloud.apache.vhostConf
+      ];
+    };
+
+    environment.systemPackages = let
+      occ = pkgs.writeScriptBin "nextcloud-occ" ''
+        #! ${pkgs.stdenv.shell}
+        cd ${nextcloud.webRoot}
+        NEXTCLOUD_CONFIG_DIR="${nextcloud.webRoot}/config" \
+          exec \
+          ${pkgs.php}/bin/php \
+          -c ${pkgs.php}/etc/php.ini \
+          occ $*
+        '';
+    in [ occ ];
+
+    system.activationScripts.nextcloud = nextcloud.activationScript;
+
+    services.myPhpfpm = {
+      poolPhpConfigs.nextcloud = nextcloud.phpFpm.phpConfig;
+      poolConfigs.nextcloud = nextcloud.phpFpm.pool;
+    };
+
+  };
+}