added redis to nextcloud

This commit is contained in:
mc-fucker 2021-12-02 16:30:19 +01:00
parent cc2e12d180
commit 3db6776e42

View file

@ -3,6 +3,7 @@
services.nextcloud = { services.nextcloud = {
autoUpdateApps.enable = true; autoUpdateApps.enable = true;
enable = true; enable = true;
caching.redis = true;
hostName = "nc.mc-fucker.cool"; hostName = "nc.mc-fucker.cool";
package = pkgs.nextcloud22; package = pkgs.nextcloud22;
https = true; https = true;
@ -16,14 +17,14 @@
adminuser = "Superadmin"; adminuser = "Superadmin";
defaultPhoneRegion = "DE"; defaultPhoneRegion = "DE";
}; };
poolSettings = { #poolSettings = {
"pm" = "dynamic"; # "pm" = "dynamic";
"pm.max_children" = "128"; # "pm.max_children" = "256";
"pm.max_requests" = "500"; # "pm.max_requests" = "1000";
"pm.max_spare_servers" = "18"; # "pm.max_spare_servers" = "64";
"pm.min_spare_servers" = "6"; # "pm.min_spare_servers" = "24";
"pm.start_servers" = "12"; # "pm.start_servers" = "32";
}; #};
}; };
services.nginx = { services.nginx = {
@ -31,18 +32,49 @@
package = pkgs.nginxQuic; package = pkgs.nginxQuic;
virtualHosts."${config.services.nextcloud.hostName}" = { virtualHosts."${config.services.nextcloud.hostName}" = {
forceSSL = true; forceSSL = true;
#sslCertificate = "/etc/letsencrypt/live/mc-fucker.cool/cert.pem";
#sslCertificateKey = "/etc/letsencrypt/live/mc-fucker.cool/privkey.pem";
enableACME = true; enableACME = true;
http3 = true; http3 = true;
}; };
}; };
services.redis = {
enable = true;
unixSocket = "/run/redis/redis.sock";
unixSocketPerm = 770;
};
users.groups.redis.members = [ "nextcloud" ];
networking.firewall.allowedTCPPorts = [ 80 443 ]; networking.firewall.allowedTCPPorts = [ 80 443 ];
security.acme = { security.acme = {
acceptTerms = true; acceptTerms = true;
email = "dev@mc-fucker.cool"; email = "dev@mc-fucker.cool";
}; };
systemd.services.nextcloud-redis-setup = let
redisConfig = pkgs.writeText "nextcloud-redis-config.php" ''
<?php
$CONFIG = [
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '${config.services.redis.unixSocket}',
'port' => 0,
'dbindex' => 0,
'timeout' => 1.5,
],
];
'';
in {
wantedBy = [ "multi-user.target" ];
before = [ "phpfpm-nextcloud.service" ];
script = ''
ln -sf ${redisConfig} ${config.services.nextcloud.datadir}/config/redis.config.php
'';
serviceConfig.Type = "oneshot";
serviceConfig.User = "nextcloud";
};
} }
# vim: set et ts=2 sw=2 ai: # vim: set et ts=2 sw=2 ai: