summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIzorkin <izorkin@elven.pw>2022-02-26 19:09:18 +0300
committergithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2022-06-02 18:31:20 +0000
commit74d1c336ae4d25d3c61f0d50cd8ef1c0b57984f8 (patch)
treeb981d2b60cb056a9ae36946ff0c609274f94808e
parentMerge pull request #175890 from NixOS/backport-175647-to-release-22.05 (diff)
downloadnixpkgs-origin/backport-173664-to-release-22.05.tar.gz
nixos/peertube: use redis.serversorigin/backport-173664-to-release-22.05
(cherry picked from commit 0b1340f57b09e6cf290f0fe45509665aea14b5b3)
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2205.section.xml22
-rw-r--r--nixos/doc/manual/release-notes/rl-2205.section.md11
-rw-r--r--nixos/modules/services/web-apps/peertube.nix16
-rw-r--r--nixos/tests/web-apps/peertube.nix7
4 files changed, 47 insertions, 9 deletions
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
index 480bf1d7d820..8632df1dbeec 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
@@ -2131,6 +2131,28 @@ cp /var/lib/redis/dump.rdb &quot;/var/lib/redis-mastodon/dump.rdb&quot;
</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>
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md
index 8625daad4d50..58ae1027084e 100644
--- a/nixos/doc/manual/release-notes/rl-2205.section.md
+++ b/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -773,6 +773,17 @@ In addition to numerous new and upgraded packages, this release has the followin
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
diff --git a/nixos/modules/services/web-apps/peertube.nix b/nixos/modules/services/web-apps/peertube.nix
index e195e6e6e824..e6b6aa273e7f 100644
--- a/nixos/modules/services/web-apps/peertube.nix
+++ b/nixos/modules/services/web-apps/peertube.nix
@@ -209,7 +209,7 @@ in {
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
@@ -344,7 +344,7 @@ in {
};
};
}
- (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 = [
@@ -441,13 +441,17 @@ in {
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;
})
];
@@ -465,7 +469,7 @@ in {
};
})
(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") {
diff --git a/nixos/tests/web-apps/peertube.nix b/nixos/tests/web-apps/peertube.nix
index d42b4e3d677b..ecc45bff2e2c 100644
--- a/nixos/tests/web-apps/peertube.nix
+++ b/nixos/tests/web-apps/peertube.nix
@@ -11,7 +11,7 @@ import ../make-test-python.nix ({pkgs, ...}:
{ address = "192.168.2.10"; prefixLength = 24; }
];
};
- firewall.allowedTCPPorts = [ 5432 6379 ];
+ firewall.allowedTCPPorts = [ 5432 31638 ];
};
services.postgresql = {
@@ -34,7 +34,7 @@ import ../make-test-python.nix ({pkgs, ...}:
enable = true;
bind = "0.0.0.0";
requirePass = "turrQfaQwnanGbcsdhxy";
- port = 6379;
+ port = 31638;
};
};
@@ -76,6 +76,7 @@ import ../make-test-python.nix ({pkgs, ...}:
redis = {
host = "192.168.2.10";
+ port = 31638;
passwordFile = "/etc/peertube/password-redis-db";
};
@@ -113,7 +114,7 @@ import ../make-test-python.nix ({pkgs, ...}:
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)