mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-14 06:00:33 +03:00
Merge pull request #258068 from Izorkin/update-peertube
peertube: 5.1.0 -> 5.2.1
This commit is contained in:
commit
29697af6ae
2 changed files with 77 additions and 86 deletions
|
@ -352,6 +352,7 @@ in {
|
||||||
};
|
};
|
||||||
storage = {
|
storage = {
|
||||||
tmp = lib.mkDefault "/var/lib/peertube/storage/tmp/";
|
tmp = lib.mkDefault "/var/lib/peertube/storage/tmp/";
|
||||||
|
tmp_persistent = lib.mkDefault "/var/lib/peertube/storage/tmp_persistent/";
|
||||||
bin = lib.mkDefault "/var/lib/peertube/storage/bin/";
|
bin = lib.mkDefault "/var/lib/peertube/storage/bin/";
|
||||||
avatars = lib.mkDefault "/var/lib/peertube/storage/avatars/";
|
avatars = lib.mkDefault "/var/lib/peertube/storage/avatars/";
|
||||||
videos = lib.mkDefault "/var/lib/peertube/storage/videos/";
|
videos = lib.mkDefault "/var/lib/peertube/storage/videos/";
|
||||||
|
@ -521,6 +522,21 @@ in {
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
locations."~ ^/api/v1/runners/jobs/[^/]+/(update|success)$" = {
|
||||||
|
tryFiles = "/dev/null @api";
|
||||||
|
root = cfg.settings.storage.tmp;
|
||||||
|
priority = 1135;
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
client_max_body_size 12G;
|
||||||
|
add_header X-File-Maximum-Size 8G always;
|
||||||
|
'' + lib.optionalString cfg.enableWebHttps ''
|
||||||
|
add_header Strict-Transport-Security 'max-age=63072000; includeSubDomains';
|
||||||
|
'' + lib.optionalString config.services.nginx.virtualHosts.${cfg.localDomain}.http3 ''
|
||||||
|
add_header Alt-Svc 'h3=":443"; ma=86400';
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
locations."~ ^/api/v1/(videos|video-playlists|video-channels|users/me)" = {
|
locations."~ ^/api/v1/(videos|video-playlists|video-channels|users/me)" = {
|
||||||
tryFiles = "/dev/null @api";
|
tryFiles = "/dev/null @api";
|
||||||
priority = 1140;
|
priority = 1140;
|
||||||
|
@ -607,70 +623,7 @@ in {
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
locations."^~ /lazy-static/avatars/" = {
|
locations."^~ /download/" = {
|
||||||
tryFiles = "$uri @api";
|
|
||||||
root = cfg.settings.storage.avatars;
|
|
||||||
priority = 1330;
|
|
||||||
extraConfig = ''
|
|
||||||
if ($request_method = 'OPTIONS') {
|
|
||||||
${nginxCommonHeaders}
|
|
||||||
add_header Access-Control-Max-Age 1728000;
|
|
||||||
add_header Cache-Control 'no-cache';
|
|
||||||
add_header Content-Type 'text/plain charset=UTF-8';
|
|
||||||
add_header Content-Length 0;
|
|
||||||
return 204;
|
|
||||||
}
|
|
||||||
|
|
||||||
${nginxCommonHeaders}
|
|
||||||
add_header Cache-Control 'public, max-age=7200';
|
|
||||||
|
|
||||||
rewrite ^/lazy-static/avatars/(.*)$ /$1 break;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
locations."^~ /lazy-static/banners/" = {
|
|
||||||
tryFiles = "$uri @api";
|
|
||||||
root = cfg.settings.storage.avatars;
|
|
||||||
priority = 1340;
|
|
||||||
extraConfig = ''
|
|
||||||
if ($request_method = 'OPTIONS') {
|
|
||||||
${nginxCommonHeaders}
|
|
||||||
add_header Access-Control-Max-Age 1728000;
|
|
||||||
add_header Cache-Control 'no-cache';
|
|
||||||
add_header Content-Type 'text/plain charset=UTF-8';
|
|
||||||
add_header Content-Length 0;
|
|
||||||
return 204;
|
|
||||||
}
|
|
||||||
|
|
||||||
${nginxCommonHeaders}
|
|
||||||
add_header Cache-Control 'public, max-age=7200';
|
|
||||||
|
|
||||||
rewrite ^/lazy-static/banners/(.*)$ /$1 break;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
locations."^~ /lazy-static/previews/" = {
|
|
||||||
tryFiles = "$uri @api";
|
|
||||||
root = cfg.settings.storage.previews;
|
|
||||||
priority = 1350;
|
|
||||||
extraConfig = ''
|
|
||||||
if ($request_method = 'OPTIONS') {
|
|
||||||
${nginxCommonHeaders}
|
|
||||||
add_header Access-Control-Max-Age 1728000;
|
|
||||||
add_header Cache-Control 'no-cache';
|
|
||||||
add_header Content-Type 'text/plain charset=UTF-8';
|
|
||||||
add_header Content-Length 0;
|
|
||||||
return 204;
|
|
||||||
}
|
|
||||||
|
|
||||||
${nginxCommonHeaders}
|
|
||||||
add_header Cache-Control 'public, max-age=7200';
|
|
||||||
|
|
||||||
rewrite ^/lazy-static/previews/(.*)$ /$1 break;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
locations."^~ /static/streaming-playlists/private/" = {
|
|
||||||
proxyPass = "http://127.0.0.1:${toString cfg.listenHttp}";
|
proxyPass = "http://127.0.0.1:${toString cfg.listenHttp}";
|
||||||
priority = 1410;
|
priority = 1410;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
@ -682,7 +635,7 @@ in {
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
locations."^~ /static/webseed/private/" = {
|
locations."^~ /static/streaming-playlists/private/" = {
|
||||||
proxyPass = "http://127.0.0.1:${toString cfg.listenHttp}";
|
proxyPass = "http://127.0.0.1:${toString cfg.listenHttp}";
|
||||||
priority = 1420;
|
priority = 1420;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
@ -694,31 +647,34 @@ in {
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
locations."^~ /static/thumbnails/" = {
|
locations."^~ /static/web-videos/private/" = {
|
||||||
tryFiles = "$uri @api";
|
proxyPass = "http://127.0.0.1:${toString cfg.listenHttp}";
|
||||||
root = cfg.settings.storage.thumbnails;
|
|
||||||
priority = 1430;
|
priority = 1430;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
if ($request_method = 'OPTIONS') {
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
${nginxCommonHeaders}
|
proxy_set_header Host $host;
|
||||||
add_header Access-Control-Max-Age 1728000;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
add_header Cache-Control 'no-cache';
|
|
||||||
add_header Content-Type 'text/plain charset=UTF-8';
|
|
||||||
add_header Content-Length 0;
|
|
||||||
return 204;
|
|
||||||
}
|
|
||||||
|
|
||||||
${nginxCommonHeaders}
|
proxy_limit_rate 5M;
|
||||||
add_header Cache-Control 'public, max-age=7200';
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
rewrite ^/static/thumbnails/(.*)$ /$1 break;
|
locations."^~ /static/webseed/private/" = {
|
||||||
|
proxyPass = "http://127.0.0.1:${toString cfg.listenHttp}";
|
||||||
|
priority = 1440;
|
||||||
|
extraConfig = ''
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
|
||||||
|
proxy_limit_rate 5M;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
locations."^~ /static/redundancy/" = {
|
locations."^~ /static/redundancy/" = {
|
||||||
tryFiles = "$uri @api";
|
tryFiles = "$uri @api";
|
||||||
root = cfg.settings.storage.redundancy;
|
root = cfg.settings.storage.redundancy;
|
||||||
priority = 1440;
|
priority = 1450;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
set $peertube_limit_rate 800k;
|
set $peertube_limit_rate 800k;
|
||||||
|
|
||||||
|
@ -753,7 +709,42 @@ in {
|
||||||
locations."^~ /static/streaming-playlists/" = {
|
locations."^~ /static/streaming-playlists/" = {
|
||||||
tryFiles = "$uri @api";
|
tryFiles = "$uri @api";
|
||||||
root = cfg.settings.storage.streaming_playlists;
|
root = cfg.settings.storage.streaming_playlists;
|
||||||
priority = 1450;
|
priority = 1460;
|
||||||
|
extraConfig = ''
|
||||||
|
set $peertube_limit_rate 800k;
|
||||||
|
|
||||||
|
if ($request_uri ~ -fragmented.mp4$) {
|
||||||
|
set $peertube_limit_rate 5M;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request_method = 'OPTIONS') {
|
||||||
|
${nginxCommonHeaders}
|
||||||
|
add_header Access-Control-Max-Age 1728000;
|
||||||
|
add_header Content-Type 'text/plain charset=UTF-8';
|
||||||
|
add_header Content-Length 0;
|
||||||
|
return 204;
|
||||||
|
}
|
||||||
|
if ($request_method = 'GET') {
|
||||||
|
${nginxCommonHeaders}
|
||||||
|
|
||||||
|
access_log off;
|
||||||
|
}
|
||||||
|
|
||||||
|
aio threads;
|
||||||
|
sendfile on;
|
||||||
|
sendfile_max_chunk 1M;
|
||||||
|
|
||||||
|
limit_rate $peertube_limit_rate;
|
||||||
|
limit_rate_after 5M;
|
||||||
|
|
||||||
|
rewrite ^/static/streaming-playlists/(.*)$ /$1 break;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
locations."^~ /static/web-videos/" = {
|
||||||
|
tryFiles = "$uri @api";
|
||||||
|
root = cfg.settings.storage.streaming_playlists;
|
||||||
|
priority = 1470;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
set $peertube_limit_rate 800k;
|
set $peertube_limit_rate 800k;
|
||||||
|
|
||||||
|
@ -788,7 +779,7 @@ in {
|
||||||
locations."^~ /static/webseed/" = {
|
locations."^~ /static/webseed/" = {
|
||||||
tryFiles = "$uri @api";
|
tryFiles = "$uri @api";
|
||||||
root = cfg.settings.storage.videos;
|
root = cfg.settings.storage.videos;
|
||||||
priority = 1460;
|
priority = 1480;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
set $peertube_limit_rate 800k;
|
set $peertube_limit_rate 800k;
|
||||||
|
|
||||||
|
|
|
@ -45,18 +45,18 @@ let
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "peertube";
|
pname = "peertube";
|
||||||
version = "5.1.0";
|
version = "5.2.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Chocobozzz";
|
owner = "Chocobozzz";
|
||||||
repo = "PeerTube";
|
repo = "PeerTube";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-C9mBF+QymGXyBB3IFX6MNgsZpHk739qv1/DLuvzrTaU=";
|
hash = "sha256-8JzU0JVb+JQCNiro8hPHBwkofNTUy90YkSCzTOoB+/A=";
|
||||||
};
|
};
|
||||||
|
|
||||||
yarnOfflineCacheServer = fetchYarnDeps {
|
yarnOfflineCacheServer = fetchYarnDeps {
|
||||||
yarnLock = "${src}/yarn.lock";
|
yarnLock = "${src}/yarn.lock";
|
||||||
hash = "sha256-W+pX2XO27j6qAVxvo+Xf1h7g3V0LUMtwNf+meZmkgwE=";
|
hash = "sha256-pzXH6hdDf8O6Kr12Xw0jRcnPRD2TrDGdiEfxVr3KmwY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
yarnOfflineCacheTools = fetchYarnDeps {
|
yarnOfflineCacheTools = fetchYarnDeps {
|
||||||
|
@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
yarnOfflineCacheClient = fetchYarnDeps {
|
yarnOfflineCacheClient = fetchYarnDeps {
|
||||||
yarnLock = "${src}/client/yarn.lock";
|
yarnLock = "${src}/client/yarn.lock";
|
||||||
hash = "sha256-TAv8QAAfT3q28jUo26h0uCGsoqBzAn8lybIaqNAApU8=";
|
hash = "sha256-Ejzk/VEx7YtJpsrkHcXAZnJ+yRx1VhBJGpqquHYULNU=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ brotli fixup_yarn_lock jq nodejs which yarn ];
|
nativeBuildInputs = [ brotli fixup_yarn_lock jq nodejs which yarn ];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue