nixos/nextcloud: fix declarative cache configuration

It's supposed to be `memcache.distributed`, not an associative PHP array
named `memcache` with a key `distributed`.

This was probably never caught because the initial `grep -q` check in
the test was invalid: `redis-cli` prints nothing if no keys can be found
when not writing to a tty apparently.
This commit is contained in:
Maximilian Bosch 2023-06-16 14:07:05 +02:00
parent 5a2769d981
commit 3df3a89892
No known key found for this signature in database
GPG key ID: 9A6EEA275CA5BE0A
2 changed files with 5 additions and 12 deletions

View file

@ -1065,10 +1065,8 @@ in {
services.nextcloud = lib.mkIf cfg.configureRedis { services.nextcloud = lib.mkIf cfg.configureRedis {
caching.redis = true; caching.redis = true;
extraOptions = { extraOptions = {
memcache = { "memcache.distributed" = ''\OC\Memcache\Redis'';
distributed = ''\OC\Memcache\Redis''; "memcache.locking" = ''\OC\Memcache\Redis'';
locking = ''\OC\Memcache\Redis'';
};
redis = { redis = {
host = config.services.redis.servers.nextcloud.unixSocket; host = config.services.redis.servers.nextcloud.unixSocket;
port = 0; port = 0;

View file

@ -40,16 +40,11 @@ in {
secretFile = "/etc/nextcloud-secrets.json"; secretFile = "/etc/nextcloud-secrets.json";
extraOptions.redis = { extraOptions.redis = {
host = "/run/redis/redis.sock";
port = 0;
dbindex = 0; dbindex = 0;
timeout = 1.5; timeout = 1.5;
# password handled via secretfile below # password handled via secretfile below
}; };
extraOptions.memcache = { configureRedis = true;
local = "\OC\Memcache\Redis";
locking = "\OC\Memcache\Redis";
};
}; };
services.redis.servers."nextcloud".enable = true; services.redis.servers."nextcloud".enable = true;
@ -74,7 +69,7 @@ in {
# This file is meant to contain secret options which should # This file is meant to contain secret options which should
# not go into the nix store. Here it is just used to set the # not go into the nix store. Here it is just used to set the
# databyse type to postgres. # redis password.
environment.etc."nextcloud-secrets.json".text = '' environment.etc."nextcloud-secrets.json".text = ''
{ {
"redis": { "redis": {
@ -117,6 +112,6 @@ in {
) )
# redis cache should not be empty # redis cache should not be empty
nextcloud.fail("redis-cli KEYS * | grep -q 'empty array'") nextcloud.fail('test "[]" = "$(redis-cli --json KEYS "*")"')
''; '';
}) })