diff options
Diffstat (limited to 'virtual/modules/websites/tools/cloud/default.nix')
-rw-r--r-- | virtual/modules/websites/tools/cloud/default.nix | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/virtual/modules/websites/tools/cloud/default.nix b/virtual/modules/websites/tools/cloud/default.nix new file mode 100644 index 0000000..7dd5c6e --- /dev/null +++ b/virtual/modules/websites/tools/cloud/default.nix | |||
@@ -0,0 +1,45 @@ | |||
1 | { lib, pkgs, config, mylibs, ... }: | ||
2 | let | ||
3 | nextcloud = pkgs.callPackage ./nextcloud.nix { inherit (mylibs) checkEnv; }; | ||
4 | |||
5 | cfg = config.services.myWebsites.tools.cloud; | ||
6 | in { | ||
7 | options.services.myWebsites.tools.cloud = { | ||
8 | enable = lib.mkEnableOption "enable cloud website"; | ||
9 | }; | ||
10 | |||
11 | config = lib.mkIf cfg.enable { | ||
12 | security.acme.certs."eldiron".extraDomains."cloud.immae.eu" = null; | ||
13 | |||
14 | services.myWebsites.tools.modules = nextcloud.apache.modules; | ||
15 | |||
16 | services.myWebsites.tools.vhostConfs.cloud = { | ||
17 | certName = "eldiron"; | ||
18 | hosts = ["cloud.immae.eu" ]; | ||
19 | root = nextcloud.webRoot; | ||
20 | extraConfig = [ | ||
21 | nextcloud.apache.vhostConf | ||
22 | ]; | ||
23 | }; | ||
24 | |||
25 | environment.systemPackages = let | ||
26 | occ = pkgs.writeScriptBin "nextcloud-occ" '' | ||
27 | #! ${pkgs.stdenv.shell} | ||
28 | cd ${nextcloud.webRoot} | ||
29 | NEXTCLOUD_CONFIG_DIR="${nextcloud.webRoot}/config" \ | ||
30 | exec \ | ||
31 | ${pkgs.php}/bin/php \ | ||
32 | -c ${pkgs.php}/etc/php.ini \ | ||
33 | occ $* | ||
34 | ''; | ||
35 | in [ occ ]; | ||
36 | |||
37 | system.activationScripts.nextcloud = nextcloud.activationScript; | ||
38 | |||
39 | services.myPhpfpm = { | ||
40 | poolPhpConfigs.nextcloud = nextcloud.phpFpm.phpConfig; | ||
41 | poolConfigs.nextcloud = nextcloud.phpFpm.pool; | ||
42 | }; | ||
43 | |||
44 | }; | ||
45 | } | ||