]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - virtual/eldiron.nix
Move packages to specific files
[perso/Immae/Config/Nix.git] / virtual / eldiron.nix
index 3d480fd6161e1d366b72ddab26c3da90e1fedb7d..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;
-        www = ''
-          listen = /var/run/phpfpm/www.sock
-          user = wwwrun
-          group = wwwrun
-          listen.owner = wwwrun
-          listen.group = wwwrun
-          pm = ondemand
-          pm.max_children = 5
-          pm.process_idle_timeout = 60
-          ;php_admin_flag[log_errors] = on
-          php_admin_value[open_basedir] = "/var/www"
-          '';
+        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
-        install -d -m 0755 /var/www
         '';
       redis = ''
         mkdir -p /run/redis
 
       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 ++
         pkgs.lib.lists.flatten (pkgs.lib.attrsets.mapAttrsToList (n: v: v.modules) apacheConfig) ++
         [ "macro" ]);
       extraConfig = builtins.concatStringsSep "\n"
         (withSSL "eldiron" // {
           listen = [ { ip = "*"; port = 443; } ];
           hostName = "eldiron.immae.eu";
-          # FIXME: directory needs to exist
-          documentRoot = "/var/www";
+          documentRoot = ./www;
+          extraConfig = ''
+            DirectoryIndex index.htm
+            '';
         })
         (withSSL "eldiron" // {
           listen = [ { ip = "*"; port = 443; } ];
             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";