]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - virtual/eldiron.nix
Add Nextcloud configuration
[perso/Immae/Config/Nix.git] / virtual / eldiron.nix
index d90e722d13f3b1ecda60b05154deed18ff576bd8..36b765c1dae2ea31991d9e5975a94782941dfd0f 100644 (file)
       };
     };
 
-    environment.systemPackages = [
+    environment.systemPackages = let
+      # FIXME: move it to nextcloud
+      occ = pkgs.writeScriptBin "nextcloud-occ" ''
+        #! ${pkgs.stdenv.shell}
+        cd ${mypkgs.nextcloud.webRoot}
+        NEXTCLOUD_CONFIG_DIR="${mypkgs.nextcloud.webRoot}/config" \
+          exec \
+          ${config.services.phpfpm.phpPackage}/bin/php \
+          -c ${config.services.phpfpm.phpPackage}/etc/php.ini \
+          occ $*
+        '';
+    in [
       pkgs.telnet
       pkgs.vim
+      occ
     ];
 
     security.acme.certs = {
@@ -55,6 +67,7 @@
           "tools.immae.eu" = null;
           "connexionswing.immae.eu" = null;
           "sandetludo.immae.eu" = null;
+          "cloud.immae.eu" = null;
         };
       };
       # "connexionswing" = {
     services.ympd = mypkgs.ympd.config // { enable = true; };
 
     services.phpfpm = {
+      # /!\ phppackage is used in nextcloud configuation
+      phpOptions = ''
+        ; For nextcloud
+        extension=${pkgs.phpPackages.redis}/lib/php/extensions/redis.so
+        ; For nextcloud
+        extension=${pkgs.phpPackages.apcu}/lib/php/extensions/apcu.so
+        '';
       extraConfig = ''
         log_level = notice
         '';
         adminer = mypkgs.adminer.phpFpm.pool;
         connexionswing_dev = mypkgs.connexionswing_dev.phpFpm.pool;
         connexionswing_prod = mypkgs.connexionswing_prod.phpFpm.pool;
+        nextcloud = mypkgs.nextcloud.phpFpm.pool;
       };
     };
 
     system.activationScripts = {
       connexionswing_dev  = mypkgs.connexionswing_dev.activationScript;
       connexionswing_prod = mypkgs.connexionswing_prod.activationScript;
+      nextcloud = mypkgs.nextcloud.activationScript;
       httpd = ''
         install -d -m 0755 /var/lib/acme/acme-challenge
         '';
 
       extraModules = pkgs.lib.lists.unique (
         mypkgs.adminer.apache.modules ++
+        mypkgs.nextcloud.apache.modules ++
         mypkgs.connexionswing_dev.apache.modules ++
         mypkgs.connexionswing_prod.apache.modules ++
         mypkgs.ympd.apache.modules ++
             mypkgs.connexionswing_dev.apache.vhostConf
           ];
         })
+        (withSSL "eldiron" // {
+          listen = [ { ip = "*"; port = 443; } ];
+          hostName = "cloud.immae.eu";
+          documentRoot = mypkgs.nextcloud.webRoot;
+          extraConfig = builtins.concatStringsSep "\n" [
+            mypkgs.nextcloud.apache.vhostConf
+          ];
+        })
         { # Should go last, default fallback
           listen = [ { ip = "*"; port = 80; } ];
           hostName = "redirectSSL";