mirror of
https://github.com/YunoHost-Apps/peertube_ynh.git
synced 2024-09-03 19:56:29 +02:00
commit
7268e52558
10 changed files with 152 additions and 48 deletions
|
@ -22,7 +22,7 @@ Servers are run independently by different people and organizations. They can ap
|
|||
|
||||
By watching a video, you help the hosting provider to broadcast it by becoming a broadcaster of the video yourself. Each instance doesn’t need much money to broadcast the videos of its users.
|
||||
|
||||
**Shipped version:** 1.3.1
|
||||
**Shipped version:** 1.4.1
|
||||
|
||||
## Important points to read before installing
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
setup_private=1
|
||||
setup_public=1
|
||||
upgrade=1
|
||||
upgrade=1 from_commit=b8d44ebd8b85128398d9811a05e221ba01703970
|
||||
upgrade=1 from_commit=280ba0d4a9ebb9d8948e0db97200dbcb89b6c323
|
||||
backup_restore=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.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
SOURCE_URL=https://github.com/Chocobozzz/PeerTube/releases/download/v1.3.1/peertube-v1.3.1.tar.xz
|
||||
SOURCE_SUM=57737960c07122207f0126488750d675c64403f325aea5f094408e0140e2061c
|
||||
SOURCE_URL=https://github.com/Chocobozzz/PeerTube/releases/download/v1.4.1/peertube-v1.4.1.tar.xz
|
||||
SOURCE_SUM=49da83b9143ac4a6a486eff7b726830923022a97c6a692722bda20044fe6cd70
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FORMAT=tar.xz
|
||||
SOURCE_IN_SUBDIR=true
|
||||
|
|
2
conf/local-production.json
Normal file
2
conf/local-production.json
Normal file
|
@ -0,0 +1,2 @@
|
|||
{
|
||||
}
|
|
@ -5,14 +5,22 @@ listen:
|
|||
# Correspond to your reverse proxy server_name/listen configuration
|
||||
webserver:
|
||||
https: true
|
||||
hostname: '__domain__'
|
||||
hostname: '__DOMAIN__'
|
||||
port: 443
|
||||
|
||||
rates_limit:
|
||||
api:
|
||||
# 50 attempts in 10 seconds
|
||||
window: 10 seconds
|
||||
max: 50
|
||||
login:
|
||||
# 15 attempts in 5 min
|
||||
window: 5 minutes
|
||||
max: 15
|
||||
signup:
|
||||
# 2 attempts in 5 min (only succeeded attempts are taken into account)
|
||||
window: 5 minutes
|
||||
max: 2
|
||||
ask_send_email:
|
||||
# 3 attempts in 5 min
|
||||
window: 5 minutes
|
||||
|
@ -28,9 +36,9 @@ trust_proxy:
|
|||
database:
|
||||
hostname: 'localhost'
|
||||
port: 5432
|
||||
suffix: '___db_name__'
|
||||
username: '__db_name__'
|
||||
password: '__db_pwd__'
|
||||
suffix: '___DB_NAME__'
|
||||
username: '__DB_NAME__'
|
||||
password: '__DB_PWD__'
|
||||
pool:
|
||||
max: 5
|
||||
|
||||
|
@ -52,24 +60,33 @@ smtp:
|
|||
tls: false # If you use StartTLS: false
|
||||
disable_starttls: true
|
||||
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
|
||||
storage:
|
||||
tmp: '/home/yunohost.app/__app__/storage/tmp/' # Used to download data (imports etc), store uploaded files before processing...
|
||||
avatars: '/home/yunohost.app/__app__/storage/avatars/'
|
||||
videos: '/home/yunohost.app/__app__/storage/videos/'
|
||||
streaming_playlists: '/home/yunohost.app/__app__/storage/streaming-playlists/'
|
||||
redundancy: '/home/yunohost.app/__app__/storage/videos/'
|
||||
logs: '/home/yunohost.app/__app__/storage/logs/'
|
||||
previews: '/home/yunohost.app/__app__/storage/previews/'
|
||||
thumbnails: '/home/yunohost.app/__app__/storage/thumbnails/'
|
||||
torrents: '/home/yunohost.app/__app__/storage/torrents/'
|
||||
captions: '/home/yunohost.app/__app__/storage/captions/'
|
||||
cache: '/home/yunohost.app/__app__/storage/cache/'
|
||||
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/'
|
||||
videos: '/home/yunohost.app/__APP__/storage/videos/'
|
||||
streaming_playlists: '/home/yunohost.app/__APP__/storage/streaming-playlists/'
|
||||
redundancy: '/home/yunohost.app/__APP__/storage/videos/'
|
||||
logs: '/home/yunohost.app/__APP__/storage/logs/'
|
||||
previews: '/home/yunohost.app/__APP__/storage/previews/'
|
||||
thumbnails: '/home/yunohost.app/__APP__/storage/thumbnails/'
|
||||
torrents: '/home/yunohost.app/__APP__/storage/torrents/'
|
||||
captions: '/home/yunohost.app/__APP__/storage/captions/'
|
||||
cache: '/home/yunohost.app/__APP__/storage/cache/'
|
||||
plugins: '/home/yunohost.app/__APP__/storage/plugins/'
|
||||
|
||||
log:
|
||||
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:
|
||||
# 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
|
||||
redundancy:
|
||||
videos:
|
||||
check_interval: '6 hour' # How often you want to check new videos to cache
|
||||
strategies:
|
||||
check_interval: '1 hour' # How often you want to check new videos to cache
|
||||
strategies: # Just uncomment strategies you want
|
||||
# -
|
||||
# size: '10GB'
|
||||
# # 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:
|
||||
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:
|
||||
# Used to generate the root user at first startup
|
||||
# And to receive emails from the contact form
|
||||
email: '__email__'
|
||||
email: '__EMAIL__'
|
||||
|
||||
contact_form:
|
||||
enabled: true
|
||||
|
@ -197,6 +222,7 @@ transcoding:
|
|||
480p: false
|
||||
720p: false
|
||||
1080p: false
|
||||
2160p: false
|
||||
# /!\ EXPERIMENTAL /!\
|
||||
# /!\ Requires ffmpeg >= 4
|
||||
# Generate HLS playlists and fragmented MP4 files. Better playback than with WebTorrent:
|
||||
|
@ -225,9 +251,62 @@ auto_blacklist:
|
|||
instance:
|
||||
name: 'YunoHost PeerTube'
|
||||
short_description: 'PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.'
|
||||
description: '' # Support markdown
|
||||
terms: '' # Support markdown
|
||||
description: 'Welcome to this PeerTube instance!' # 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'
|
||||
|
||||
# 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
|
||||
# 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
|
||||
# Could be overridden per user with a setting
|
||||
default_nsfw_policy: 'do_not_list'
|
||||
|
||||
customizations:
|
||||
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
|
||||
|
@ -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:"
|
||||
|
||||
services:
|
||||
# You can provide a reporting endpoint for Content Security Policy violations
|
||||
csp-logger:
|
||||
# Cards configuration to format video in Twitter
|
||||
twitter:
|
||||
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 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
|
||||
|
||||
followers:
|
||||
|
@ -263,3 +341,21 @@ followers:
|
|||
enabled: true
|
||||
# Whether or not an administrator must manually validate a new follower
|
||||
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'
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"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é"
|
||||
},
|
||||
"version": "1.3.1~ynh1",
|
||||
"version": "1.4.1~ynh1",
|
||||
"url": "https://github.com/Chocobozzz/PeerTube",
|
||||
"license": "AGPL-3.0-only",
|
||||
"maintainer": [
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#=================================================
|
||||
|
||||
# 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
|
||||
|
|
|
@ -71,7 +71,7 @@ ynh_app_setting_set --app=$app --key=port --value=$port
|
|||
ynh_print_info --message="Installing dependencies..."
|
||||
|
||||
# Install nodejs
|
||||
ynh_install_nodejs --nodejs_version=8
|
||||
ynh_install_nodejs --nodejs_version=10
|
||||
|
||||
# Install dependencies
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
|
@ -148,15 +148,15 @@ chown -R "$app":"$app" "$datadir"
|
|||
#=================================================
|
||||
|
||||
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="__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="__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="__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="__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="__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"
|
||||
|
||||
#Create the admin settings file
|
||||
touch "$final_path/config/local-production.json"
|
||||
cp ../conf/local-production.json "$final_path/config/local-production.json"
|
||||
|
||||
#=================================================
|
||||
# FIX NGINX DOMAIN CONFIGURATION
|
||||
|
@ -170,7 +170,6 @@ ynh_replace_string --match_string="X-Frame-Options : SAMEORIGIN" --replace_strin
|
|||
|
||||
# Calculate and store the config file checksum into the app settings
|
||||
ynh_store_file_checksum --file="$final_path/config/production.yaml"
|
||||
ynh_store_file_checksum --file="$final_path/config/local-production.json"
|
||||
|
||||
#=================================================
|
||||
# BUILD YARN DEPENDENCIES
|
||||
|
|
|
@ -86,7 +86,7 @@ chown -R "$app":"$app" "/home/yunohost.app/${app}/storage"
|
|||
ynh_print_info --message="Reinstalling dependencies..."
|
||||
|
||||
# Install nodejs
|
||||
ynh_install_nodejs --nodejs_version=8
|
||||
ynh_install_nodejs --nodejs_version=10
|
||||
|
||||
# Install dependencies
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
|
|
|
@ -111,9 +111,15 @@ then
|
|||
# Download, check integrity, uncompress and patch the source from app.src
|
||||
ynh_setup_source --dest_dir="$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"
|
||||
#Copy the admin saved settings from tmp directory to final path
|
||||
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
|
||||
ynh_secure_remove --file="$tmpdir"
|
||||
|
@ -133,7 +139,8 @@ ynh_add_nginx_config
|
|||
ynh_print_info --message="Upgrading dependencies..."
|
||||
|
||||
# Install nodejs
|
||||
ynh_install_nodejs --nodejs_version=8
|
||||
ynh_remove_nodejs --nodejs_version=8
|
||||
ynh_install_nodejs --nodejs_version=10
|
||||
|
||||
# Install dependencies
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
|
@ -166,11 +173,11 @@ ynh_backup_if_checksum_is_different --file="$final_path/config/local-production.
|
|||
ynh_backup_if_checksum_is_different --file="$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="__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="__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="__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="__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="__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"
|
||||
|
||||
# Recalculate and store the checksum of the file for the next upgrade.
|
||||
|
|
Loading…
Reference in a new issue