1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/peertube_ynh.git synced 2024-09-03 19:56:29 +02:00

Upgrade to 1.4.1

This commit is contained in:
yalh76 2019-10-16 23:12:18 +02:00
parent a0cf63dfd8
commit 8c9d636374
10 changed files with 150 additions and 46 deletions

View file

@ -8,7 +8,7 @@ If installing on an ovh virtual machine or having `gyp ERR! configure error` ple
1. Install nodejs 1. Install nodejs
``` ```
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - $ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt-get install -y nodejs $ sudo apt-get install -y nodejs
``` ```

View file

@ -17,7 +17,7 @@
setup_private=1 setup_private=1
setup_public=1 setup_public=1
upgrade=1 upgrade=1
upgrade=1 from_commit=b8d44ebd8b85128398d9811a05e221ba01703970 upgrade=1 from_commit=280ba0d4a9ebb9d8948e0db97200dbcb89b6c323
backup_restore=1 backup_restore=1
multi_instance=1 multi_instance=1
# This test is no longer necessary since the version 2.7 (PR: https://github.com/YunoHost/yunohost/pull/304), you can still do it if your app could be installed with this version. # This test is no longer necessary since the version 2.7 (PR: https://github.com/YunoHost/yunohost/pull/304), you can still do it if your app could be installed with this version.

View file

@ -1,5 +1,5 @@
SOURCE_URL=https://github.com/Chocobozzz/PeerTube/releases/download/v1.3.1/peertube-v1.3.1.tar.xz SOURCE_URL=https://github.com/Chocobozzz/PeerTube/releases/download/v1.4.1/peertube-v1.4.1.tar.xz
SOURCE_SUM=57737960c07122207f0126488750d675c64403f325aea5f094408e0140e2061c SOURCE_SUM=49da83b9143ac4a6a486eff7b726830923022a97c6a692722bda20044fe6cd70
SOURCE_SUM_PRG=sha256sum SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=tar.xz SOURCE_FORMAT=tar.xz
SOURCE_IN_SUBDIR=true SOURCE_IN_SUBDIR=true

View file

@ -0,0 +1,2 @@
{
}

View file

@ -5,14 +5,22 @@ listen:
# Correspond to your reverse proxy server_name/listen configuration # Correspond to your reverse proxy server_name/listen configuration
webserver: webserver:
https: true https: true
hostname: '__domain__' hostname: '__DOMAIN__'
port: 443 port: 443
rates_limit: rates_limit:
api:
# 50 attempts in 10 seconds
window: 10 seconds
max: 50
login: login:
# 15 attempts in 5 min # 15 attempts in 5 min
window: 5 minutes window: 5 minutes
max: 15 max: 15
signup:
# 2 attempts in 5 min (only succeeded attempts are taken into account)
window: 5 minutes
max: 2
ask_send_email: ask_send_email:
# 3 attempts in 5 min # 3 attempts in 5 min
window: 5 minutes window: 5 minutes
@ -28,9 +36,9 @@ trust_proxy:
database: database:
hostname: 'localhost' hostname: 'localhost'
port: 5432 port: 5432
suffix: '___db_name__' suffix: '___DB_NAME__'
username: '__db_name__' username: '__DB_NAME__'
password: '__db_pwd__' password: '__DB_PWD__'
pool: pool:
max: 5 max: 5
@ -52,24 +60,33 @@ smtp:
tls: false # If you use StartTLS: false tls: false # If you use StartTLS: false
disable_starttls: true disable_starttls: true
ca_file: null # Used for self signed certificates ca_file: null # Used for self signed certificates
from_address: 'webmaster@__domain__' from_address: 'webmaster@__DOMAIN__'
email:
body:
signature: "PeerTube"
subject:
prefix: "[PeerTube]"
# From the project root directory # From the project root directory
storage: storage:
tmp: '/home/yunohost.app/__app__/storage/tmp/' # Used to download data (imports etc), store uploaded files before processing... tmp: '/home/yunohost.app/__APP__/storage/tmp/' # Use to download data (imports etc), store uploaded files before processing...
avatars: '/home/yunohost.app/__app__/storage/avatars/' avatars: '/home/yunohost.app/__APP__/storage/avatars/'
videos: '/home/yunohost.app/__app__/storage/videos/' videos: '/home/yunohost.app/__APP__/storage/videos/'
streaming_playlists: '/home/yunohost.app/__app__/storage/streaming-playlists/' streaming_playlists: '/home/yunohost.app/__APP__/storage/streaming-playlists/'
redundancy: '/home/yunohost.app/__app__/storage/videos/' redundancy: '/home/yunohost.app/__APP__/storage/videos/'
logs: '/home/yunohost.app/__app__/storage/logs/' logs: '/home/yunohost.app/__APP__/storage/logs/'
previews: '/home/yunohost.app/__app__/storage/previews/' previews: '/home/yunohost.app/__APP__/storage/previews/'
thumbnails: '/home/yunohost.app/__app__/storage/thumbnails/' thumbnails: '/home/yunohost.app/__APP__/storage/thumbnails/'
torrents: '/home/yunohost.app/__app__/storage/torrents/' torrents: '/home/yunohost.app/__APP__/storage/torrents/'
captions: '/home/yunohost.app/__app__/storage/captions/' captions: '/home/yunohost.app/__APP__/storage/captions/'
cache: '/home/yunohost.app/__app__/storage/cache/' cache: '/home/yunohost.app/__APP__/storage/cache/'
plugins: '/home/yunohost.app/__APP__/storage/plugins/'
log: log:
level: 'info' # debug/info/warning/error level: 'info' # debug/info/warning/error
rotation:
enabled : true # Enabled by default, if disabled make sure that 'storage.logs' is pointing to a folder handled by logrotate
search: search:
# Add ability to fetch remote videos/actors by their URI, that may not be federated with your instance # Add ability to fetch remote videos/actors by their URI, that may not be federated with your instance
@ -88,8 +105,8 @@ trending:
# Once you have defined your strategies, choose which instances you want to cache in admin -> manage follows -> following # Once you have defined your strategies, choose which instances you want to cache in admin -> manage follows -> following
redundancy: redundancy:
videos: videos:
check_interval: '6 hour' # How often you want to check new videos to cache check_interval: '1 hour' # How often you want to check new videos to cache
strategies: strategies: # Just uncomment strategies you want
# - # -
# size: '10GB' # size: '10GB'
# # Minimum time the video must remain in the cache. Only accept values > 10 hours (to not overload remote instances) # # Minimum time the video must remain in the cache. Only accept values > 10 hours (to not overload remote instances)
@ -139,6 +156,14 @@ views:
remote: remote:
max_age: -1 max_age: -1
plugins:
# The website PeerTube will ask for available PeerTube plugins and themes
# This is an unmoderated plugin index, so only install plugins/themes you trust
index:
enabled: true
check_latest_versions_interval: '12 hours' # How often you want to check new plugins/themes versions
url: 'https://packages.joinpeertube.org'
############################################################################### ###############################################################################
# #
@ -161,7 +186,7 @@ cache:
admin: admin:
# Used to generate the root user at first startup # Used to generate the root user at first startup
# And to receive emails from the contact form # And to receive emails from the contact form
email: '__email__' email: '__EMAIL__'
contact_form: contact_form:
enabled: true enabled: true
@ -197,6 +222,7 @@ transcoding:
480p: false 480p: false
720p: false 720p: false
1080p: false 1080p: false
2160p: false
# /!\ EXPERIMENTAL /!\ # /!\ EXPERIMENTAL /!\
# /!\ Requires ffmpeg >= 4 # /!\ Requires ffmpeg >= 4
# Generate HLS playlists and fragmented MP4 files. Better playback than with WebTorrent: # Generate HLS playlists and fragmented MP4 files. Better playback than with WebTorrent:
@ -225,9 +251,62 @@ auto_blacklist:
instance: instance:
name: 'YunoHost PeerTube' name: 'YunoHost PeerTube'
short_description: 'PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.' short_description: 'PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.'
description: '' # Support markdown description: 'Welcome to this PeerTube instance!' # Support markdown
terms: '' # Support markdown terms: 'No terms for now.' # Support markdown
code_of_conduct: '' # Supports markdown
# Who moderates the instance? What is the policy regarding NSFW videos? Political videos? etc
moderation_information: '' # Supports markdown
# Why did you create this instance?
creation_reason: ''
# Who is behind the instance? A single person? A non profit?
administrator: ''
# How long do you plan to maintain this instance?
maintenance_lifetime: ''
# How will you pay the PeerTube instance server? With you own funds? With users donations? Advertising?
business_model: ''
# If you want to explain on what type of hardware your PeerTube instance runs
# Example: "2 vCore, 2GB RAM..."
hardware_information: '' # Supports Markdown
# What are the main languages of your instance? To interact with your users for example
# Uncomment or add the languages you want
# List of supported languages: https://peertube.cpy.re/api/v1/videos/languages
languages:
# - en
# - es
# - fr
# You can specify the main categories of your instance (dedicated to music, gaming or politics etc)
# Uncomment or add the category ids you want
# List of supported categories: https://peertube.cpy.re/api/v1/videos/categories
categories:
# - 1 # Music
# - 2 # Films
# - 3 # Vehicles
# - 4 # Art
# - 5 # Sports
# - 6 # Travels
# - 7 # Gaming
# - 8 # People
# - 9 # Comedy
# - 10 # Entertainment
# - 11 # News & Politics
# - 12 # How To
# - 13 # Education
# - 14 # Activism
# - 15 # Science & Technology
# - 16 # Animals
# - 17 # Kids
# - 18 # Food
default_client_route: '/videos/trending' default_client_route: '/videos/trending'
# Whether or not the instance is dedicated to NSFW content # Whether or not the instance is dedicated to NSFW content
# Enabling it will allow other administrators to know that you are mainly federating sensitive content # Enabling it will allow other administrators to know that you are mainly federating sensitive content
# Moreover, the NSFW checkbox on video upload will be automatically checked by default # Moreover, the NSFW checkbox on video upload will be automatically checked by default
@ -235,6 +314,7 @@ instance:
# By default, "do_not_list" or "blur" or "display" NSFW videos # By default, "do_not_list" or "blur" or "display" NSFW videos
# Could be overridden per user with a setting # Could be overridden per user with a setting
default_nsfw_policy: 'do_not_list' default_nsfw_policy: 'do_not_list'
customizations: customizations:
javascript: '' # Directly your JavaScript code (without <script> tags). Will be eval at runtime javascript: '' # Directly your JavaScript code (without <script> tags). Will be eval at runtime
css: '' # Directly your CSS code (without <style> tags). Will be injected at runtime css: '' # Directly your CSS code (without <style> tags). Will be injected at runtime
@ -247,14 +327,12 @@ instance:
"# If you would like to report a security issue\n# you may report it to:\nContact: https://github.com/Chocobozzz/PeerTube/blob/develop/SECURITY.md\nContact: mailto:" "# If you would like to report a security issue\n# you may report it to:\nContact: https://github.com/Chocobozzz/PeerTube/blob/develop/SECURITY.md\nContact: mailto:"
services: services:
# You can provide a reporting endpoint for Content Security Policy violations
csp-logger:
# Cards configuration to format video in Twitter # Cards configuration to format video in Twitter
twitter: twitter:
username: '@yunohost' # Indicates the Twitter account for the website or platform on which the content was published username: '@yunohost' # Indicates the Twitter account for the website or platform on which the content was published
# If true, a video player will be embedded in the Twitter feed on PeerTube video share # If true, a video player will be embedded in the Twitter feed on PeerTube video share
# If false, we use an image link card that will redirect on your PeerTube instance # If false, we use an image link card that will redirect on your PeerTube instance
# Test on https://cards-dev.twitter.com/validator to see if you are whitelisted # Change it to "true", and then test on https://cards-dev.twitter.com/validator to see if you are whitelisted
whitelisted: false whitelisted: false
followers: followers:
@ -263,3 +341,21 @@ followers:
enabled: true enabled: true
# Whether or not an administrator must manually validate a new follower # Whether or not an administrator must manually validate a new follower
manual_approval: false manual_approval: false
followings:
instance:
# If you want to automatically follow back new instance followers
# If this option is enabled, use the mute feature instead of deleting followings
# /!\ Don't enable this if you don't have a reactive moderation team /!\
auto_follow_back:
enabled: false
# If you want to automatically follow instances of the public index
# If this option is enabled, use the mute feature instead of deleting followings
# /!\ Don't enable this if you don't have a reactive moderation team /!\
auto_follow_index:
enabled: false
index_url: 'https://instances.joinpeertube.org'
theme:
default: 'default'

View file

@ -6,7 +6,7 @@
"en": "Video streaming platform using P2P directly in the web browser, connected to a federated network", "en": "Video streaming platform using P2P directly in the web browser, connected to a federated network",
"fr": "Plateforme de diffusion vidéo par P2P directement dans le navigateur, et connectée à un réseau fédéralisé" "fr": "Plateforme de diffusion vidéo par P2P directement dans le navigateur, et connectée à un réseau fédéralisé"
}, },
"version": "1.3.1~ynh1", "version": "1.4.1~ynh1",
"url": "https://github.com/Chocobozzz/PeerTube", "url": "https://github.com/Chocobozzz/PeerTube",
"license": "AGPL-3.0-only", "license": "AGPL-3.0-only",
"maintainer": [ "maintainer": [

View file

@ -5,7 +5,7 @@
#================================================= #=================================================
# dependencies used by the app # dependencies used by the app
pkg_dependencies="postgresql postgresql-contrib openssl g++ redis-server redis-tools mailutils apt-transport-https" pkg_dependencies="ffmpeg postgresql postgresql-contrib openssl g++ redis-server redis-tools mailutils apt-transport-https"
#================================================= #=================================================
# PERSONAL HELPERS # PERSONAL HELPERS

View file

@ -71,7 +71,7 @@ ynh_app_setting_set --app=$app --key=port --value=$port
ynh_print_info --message="Installing dependencies..." ynh_print_info --message="Installing dependencies..."
# Install nodejs # Install nodejs
#ynh_install_nodejs --nodejs_version=8 #ynh_install_nodejs --nodejs_version=10
# Install dependencies # Install dependencies
ynh_install_app_dependencies $pkg_dependencies ynh_install_app_dependencies $pkg_dependencies
@ -148,11 +148,11 @@ chown -R "$app":"$app" "$datadir"
#================================================= #=================================================
cp ../conf/production.yaml "$final_path/config/production.yaml" cp ../conf/production.yaml "$final_path/config/production.yaml"
ynh_replace_string --match_string="__domain__" --replace_string="$domain" --target_file="$final_path/config/production.yaml" ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file="$final_path/config/production.yaml"
ynh_replace_string --match_string="__db_name__" --replace_string="$app" --target_file="$final_path/config/production.yaml" ynh_replace_string --match_string="__DB_NAME__" --replace_string="$app" --target_file="$final_path/config/production.yaml"
ynh_replace_string --match_string="__app__" --replace_string="$app" --target_file="$final_path/config/production.yaml" ynh_replace_string --match_string="__APP__" --replace_string="$app" --target_file="$final_path/config/production.yaml"
ynh_replace_string --match_string="__db_pwd__" --replace_string="$db_pwd" --target_file="$final_path/config/production.yaml" ynh_replace_string --match_string="__DB_PWD__" --replace_string="$db_pwd" --target_file="$final_path/config/production.yaml"
ynh_replace_string --match_string="__email__" --replace_string="$admin_email" --target_file="$final_path/config/production.yaml" ynh_replace_string --match_string="__EMAIL__" --replace_string="$admin_email" --target_file="$final_path/config/production.yaml"
ynh_replace_string --match_string="__PORT__" --replace_string="$port" --target_file="$final_path/config/production.yaml" ynh_replace_string --match_string="__PORT__" --replace_string="$port" --target_file="$final_path/config/production.yaml"
#Create the admin settings file #Create the admin settings file

View file

@ -86,7 +86,7 @@ chown -R "$app":"$app" "/home/yunohost.app/${app}/storage"
ynh_print_info --message="Reinstalling dependencies..." ynh_print_info --message="Reinstalling dependencies..."
# Install nodejs # Install nodejs
ynh_install_nodejs --nodejs_version=8 ynh_install_nodejs --nodejs_version=10
# Install dependencies # Install dependencies
ynh_install_app_dependencies $pkg_dependencies ynh_install_app_dependencies $pkg_dependencies

View file

@ -112,9 +112,15 @@ then
ynh_setup_source --dest_dir="$final_path" ynh_setup_source --dest_dir="$final_path"
#Copy the admin saved settings from tmp directory to final path #Copy the admin saved settings from tmp directory to final path
cp -a "$tmpdir/local-production.json" "$final_path/config/local-production.json"
cp -a "$tmpdir/production.yaml" "$final_path/config/production.yaml" cp -a "$tmpdir/production.yaml" "$final_path/config/production.yaml"
if [ -s "$tmpdir/local-production.json" ]
then
cp -a "$tmpdir/local-production.json" "$final_path/config/local-production.json"
else
cp ../conf/local-production.json "$final_path/config/local-production.json"
fi
# Remove the tmp directory securely # Remove the tmp directory securely
ynh_secure_remove --file="$tmpdir" ynh_secure_remove --file="$tmpdir"
fi fi
@ -133,7 +139,7 @@ ynh_add_nginx_config
ynh_print_info --message="Upgrading dependencies..." ynh_print_info --message="Upgrading dependencies..."
# Install nodejs # Install nodejs
#ynh_install_nodejs --nodejs_version=8 #ynh_install_nodejs --nodejs_version=10
# Install dependencies # Install dependencies
ynh_install_app_dependencies $pkg_dependencies ynh_install_app_dependencies $pkg_dependencies
@ -166,16 +172,16 @@ ynh_backup_if_checksum_is_different --file="$final_path/config/local-production.
ynh_backup_if_checksum_is_different --file="$final_path/config/production.yaml" ynh_backup_if_checksum_is_different --file="$final_path/config/production.yaml"
cp ../conf/production.yaml "$final_path/config/production.yaml" cp ../conf/production.yaml "$final_path/config/production.yaml"
ynh_replace_string --match_string="__domain__" --replace_string="$domain" --target_file="$final_path/config/production.yaml" ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file="$final_path/config/production.yaml"
ynh_replace_string --match_string="__db_name__" --replace_string="$app" --target_file="$final_path/config/production.yaml" ynh_replace_string --match_string="__DB_NAME__" --replace_string="$app" --target_file="$final_path/config/production.yaml"
ynh_replace_string --match_string="__app__" --replace_string="$app" --target_file="$final_path/config/production.yaml" ynh_replace_string --match_string="__APP__" --replace_string="$app" --target_file="$final_path/config/production.yaml"
ynh_replace_string --match_string="__db_pwd__" --replace_string="$db_pwd" --target_file="$final_path/config/production.yaml" ynh_replace_string --match_string="__DB_PWD__" --replace_string="$db_pwd" --target_file="$final_path/config/production.yaml"
ynh_replace_string --match_string="__email__" --replace_string="$admin_email" --target_file="$final_path/config/production.yaml" ynh_replace_string --match_string="__EMAIL__" --replace_string="$admin_email" --target_file="$final_path/config/production.yaml"
ynh_replace_string --match_string="__PORT__" --replace_string="$port" --target_file="$final_path/config/production.yaml" ynh_replace_string --match_string="__PORT__" --replace_string="$port" --target_file="$final_path/config/production.yaml"
# Recalculate and store the checksum of the file for the next upgrade. # Recalculate and store the checksum of the file for the next upgrade.
ynh_store_file_checksum "$final_path/config/local-production.json" ynh_store_file_checksum --file="$final_path/config/local-production.json"
ynh_store_file_checksum "$final_path/config/production.yaml" ynh_store_file_checksum --file="$final_path/config/production.yaml"
#================================================= #=================================================
# FIX NGINX DOMAIN CONFIGURATION # FIX NGINX DOMAIN CONFIGURATION