+{ 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;
+ };
+
+ };
+}