nixos/peertube: use redis.servers

Izorkin 0b1340f5 cc2ead5d

Changed files
+47 -9
nixos
doc
manual
from_md
release-notes
release-notes
modules
services
web-apps
tests
web-apps
+22
nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
···
</listitem>
<listitem>
<para>
+
Peertube now uses services.redis.servers to start a new redis
+
server, instead of using a global redis server. This improves
+
compatibility with other services that use redis.
+
</para>
+
<para>
+
Redis database is used for storage only cache and job queue.
+
More information can be found here -
+
<link xlink:href="https://docs.joinpeertube.org/contribute-architecture">Peertube
+
architecture</link>.
+
</para>
+
<para>
+
If you do want to save the redis database, you can use the
+
following commands before upgrade OS:
+
</para>
+
<programlisting language="bash">
+
redis-cli save
+
sudo mkdir /var/lib/redis-peertube
+
sudo cp /var/lib/redis/dump.rdb /var/lib/redis-peertube/dump.rdb
+
</programlisting>
+
</listitem>
+
<listitem>
+
<para>
If you are using Wayland you can choose to use the Ozone
Wayland support in Chrome and several Electron apps by setting
the environment variable <literal>NIXOS_OZONE_WL=1</literal>
+11
nixos/doc/manual/release-notes/rl-2205.section.md
···
redis-cli save
cp /var/lib/redis/dump.rdb "/var/lib/redis-mastodon/dump.rdb"
```
+
- Peertube now uses services.redis.servers to start a new redis server, instead of using a global redis server.
+
This improves compatibility with other services that use redis.
+
+
Redis database is used for storage only cache and job queue. More information can be found here - [Peertube architecture](https://docs.joinpeertube.org/contribute-architecture).
+
+
If you do want to save the redis database, you can use the following commands before upgrade OS:
+
```bash
+
redis-cli save
+
sudo mkdir /var/lib/redis-peertube
+
sudo cp /var/lib/redis/dump.rdb /var/lib/redis-peertube/dump.rdb
+
```
- If you are using Wayland you can choose to use the Ozone Wayland support
in Chrome and several Electron apps by setting the environment variable
+10 -6
nixos/modules/services/web-apps/peertube.nix
···
port = lib.mkOption {
type = lib.types.nullOr lib.types.port;
-
default = if cfg.redis.createLocally && cfg.redis.enableUnixSocket then null else 6379;
+
default = if cfg.redis.createLocally && cfg.redis.enableUnixSocket then null else 31638;
defaultText = lib.literalExpression ''
if config.${opt.redis.createLocally} && config.${opt.redis.enableUnixSocket}
then null
···
};
};
}
-
(lib.mkIf cfg.redis.enableUnixSocket { redis = { socket = "/run/redis/redis.sock"; }; })
+
(lib.mkIf cfg.redis.enableUnixSocket { redis = { socket = "/run/redis-peertube/redis.sock"; }; })
];
systemd.tmpfiles.rules = [
···
enable = true;
};
-
services.redis = lib.mkMerge [
+
services.redis.servers.peertube = lib.mkMerge [
(lib.mkIf cfg.redis.createLocally {
enable = true;
})
+
(lib.mkIf (cfg.redis.createLocally && !cfg.redis.enableUnixSocket) {
+
bind = "127.0.0.1";
+
port = cfg.redis.port;
+
})
(lib.mkIf (cfg.redis.createLocally && cfg.redis.enableUnixSocket) {
-
unixSocket = "/run/redis/redis.sock";
-
unixSocketPerm = 770;
+
unixSocket = "/run/redis-peertube/redis.sock";
+
unixSocketPerm = 660;
})
];
···
};
})
(lib.attrsets.setAttrByPath [ cfg.user "packages" ] [ cfg.package peertubeEnv peertubeCli pkgs.ffmpeg pkgs.nodejs-16_x pkgs.yarn ])
-
(lib.mkIf cfg.redis.enableUnixSocket {${config.services.peertube.user}.extraGroups = [ "redis" ];})
+
(lib.mkIf cfg.redis.enableUnixSocket {${config.services.peertube.user}.extraGroups = [ "redis-peertube" ];})
];
users.groups = lib.optionalAttrs (cfg.group == "peertube") {
+4 -3
nixos/tests/web-apps/peertube.nix
···
{ address = "192.168.2.10"; prefixLength = 24; }
];
};
-
firewall.allowedTCPPorts = [ 5432 6379 ];
+
firewall.allowedTCPPorts = [ 5432 31638 ];
};
services.postgresql = {
···
enable = true;
bind = "0.0.0.0";
requirePass = "turrQfaQwnanGbcsdhxy";
-
port = 6379;
+
port = 31638;
};
};
···
redis = {
host = "192.168.2.10";
+
port = 31638;
passwordFile = "/etc/peertube/password-redis-db";
};
···
database.wait_for_unit("redis-peertube.service")
database.wait_for_open_port(5432)
-
database.wait_for_open_port(6379)
+
database.wait_for_open_port(31638)
server.wait_for_unit("peertube.service")
server.wait_for_open_port(9000)