Upgrade PeerTube : v5.2.0 => v6.0.1
All checks were successful
gitea/ansible-roles/pipeline/head This commit looks good

This commit is contained in:
Mathieu Gauthier-Pilote 2023-11-29 15:56:59 -05:00
parent b30013aa67
commit 6e97ce5066
4 changed files with 36 additions and 39 deletions

View file

@ -1,12 +1,12 @@
---
# defaults file for vars
system_dep: "['curl', 'python3-dev', 'python-is-python3', 'python3-psycopg2','certbot', 'nginx', 'ffmpeg', 'postgresql', 'postgresql-contrib', 'openssl', 'g++', 'make', 'redis-server', 'git', 'unzip', 'acl']"
version: 'v5.1.0'
version: 'v6.0.1'
download_url: "https://github.com/Chocobozzz/PeerTube/releases/download/{{ version }}/peertube-{{ version }}.zip"
domains: ['example.domain.org']
certbot_admin_email: 'mgauthier@evolix.ca'
certbot_admin_email: 'security@evolix.fr'
service_home: '/var/www/peertube'
db_host: 'localhost'
db_host: '127.0.0.1'
db_port: '5432'
db_name: "{{ service }}"
db_user: "{{ service }}"

View file

@ -6,6 +6,16 @@
name: "{{ service }}"
state: stopped
- name: stat videos
stat:
path: "{{ service_home }}/storage/videos/"
register: videos
- name: Move videos to web-videos (needed when upgrading to version 6)
command: "mv {{ service_home }}/storage/videos/ {{ service_home }}/storage/web-videos/"
when: videos.stat.exists
become_user: "{{ service }}"
- name: Dump database to a file with compression
postgresql_db:
name: "{{ db_name }}"
@ -20,6 +30,15 @@
remote_src: yes
become_user: "{{ service }}"
- name: Adjust permissions
file:
path: "{{ item }}"
mode: o+rx
loop:
- "~/versions/peertube-{{ version }}"
- "~/versions/peertube-{{ version }}/client"
become_user: "{{ service }}"
- name: Symbolic link to new version
file:
src: "~/versions/peertube-{{ version }}"
@ -52,6 +71,11 @@
daemon_reload: true
state: restarted
- name: Check if SSL certificate is present and register result
stat:
path: "/etc/letsencrypt/live/{{ domains |first }}/fullchain.pem"
register: ssl
- name: Retemplate conf file for nginx vhost
template:
src: "vhost.conf.j2"

View file

@ -122,12 +122,13 @@ storage:
tmp_persistent: '/var/www/peertube/storage/tmp-persistent/' # As tmp but the directory is not cleaned up between PeerTube restarts
bin: '/var/www/peertube/storage/bin/'
avatars: '/var/www/peertube/storage/avatars/'
videos: '/var/www/peertube/storage/videos/'
web_videos: '/var/www/peertube/storage/web-videos/'
streaming_playlists: '/var/www/peertube/storage/streaming-playlists/'
redundancy: '/var/www/peertube/storage/redundancy/'
logs: '/var/www/peertube/storage/logs/'
previews: '/var/www/peertube/storage/previews/'
thumbnails: '/var/www/peertube/storage/thumbnails/'
storyboards: '/var/www/peertube/storage/storyboards/'
torrents: '/var/www/peertube/storage/torrents/'
captions: '/var/www/peertube/storage/captions/'
cache: '/var/www/peertube/storage/cache/'
@ -193,7 +194,7 @@ object_storage:
base_url: '' # Example: 'https://mirror.example.com'
# Same settings but for webtorrent videos
videos:
web_videos:
bucket_name: 'videos'
prefix: ''
base_url: ''
@ -468,7 +469,7 @@ transcoding:
# Generate videos in a WebTorrent format (what we do since the first PeerTube release)
# If you also enabled the hls format, it will multiply videos storage by 2
# If disabled, breaks federation with PeerTube instances < 2.1
webtorrent:
web_videos:
enabled: false
# /!\ Requires ffmpeg >= 4.1

View file

@ -85,7 +85,7 @@ server {
try_files /dev/null @api;
}
location = /api/v1/videos/upload-resumable {
location ~ ^/api/v1/videos/(upload-resumable|([^/]+/source/replace-resumable))$ {
client_max_body_size 0;
proxy_request_buffering off;
@ -206,29 +206,7 @@ server {
alias {{ service_home }}/peertube-latest/client/dist/$1;
}
# Bypass PeerTube for performance reasons. Optional.
location ~ ^/static/(thumbnails|avatars)/ {
if ($request_method = 'OPTIONS') {
add_header Access-Control-Allow-Origin '*';
add_header Access-Control-Allow-Methods 'GET, OPTIONS';
add_header Access-Control-Allow-Headers 'Range,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
add_header Access-Control-Max-Age 1728000; # Preflight request can be cached 20 days
add_header Content-Type 'text/plain charset=UTF-8';
add_header Content-Length 0;
return 204;
}
add_header Access-Control-Allow-Origin '*';
add_header Access-Control-Allow-Methods 'GET, OPTIONS';
add_header Access-Control-Allow-Headers 'Range,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
add_header Cache-Control "public, max-age=7200"; # Cache response 2 hours
rewrite ^/static/(.*)$ /$1 break;
try_files $uri @api;
}
location ~ ^(/static/(webseed|streaming-playlists)/private/)|^/download {
location ~ ^(/static/(webseed|web-videos|streaming-playlists)/private/)|^/download {
# We can't rate limit a try_files directive, so we need to duplicate @api
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
@ -241,16 +219,10 @@ server {
}
# Bypass PeerTube for performance reasons. Optional.
location ~ ^/static/(webseed|redundancy|streaming-playlists)/ {
location ~ ^/static/(webseed|web-videos|redundancy|streaming-playlists)/ {
limit_rate_after 5M;
# Clients usually have 4 simultaneous webseed connections, so the real limit is 3MB/s per client
set $peertube_limit_rate 800k;
# Increase rate limit in HLS mode, because we don't have multiple simultaneous connections
if ($request_uri ~ -fragmented.mp4$) {
set $peertube_limit_rate 5M;
}
set $peertube_limit_rate 5M;
# Use this line with nginx >= 1.17.0
limit_rate $peertube_limit_rate;