diff --git a/conf/production.yaml b/conf/production.yaml
index 2f55b18..c21d20f 100644
--- a/conf/production.yaml
+++ b/conf/production.yaml
@@ -69,9 +69,9 @@ smtp:
email:
body:
- signature: "PeerTube"
+ signature: 'PeerTube'
subject:
- prefix: "[PeerTube]"
+ prefix: '[PeerTube]'
# PeerTube client/interface configuration
client:
@@ -295,7 +295,7 @@ contact_form:
signup:
enabled: false
limit: 10 # When the limit is reached, registrations are disabled. -1 == unlimited
- minimum_age: 16
+ minimum_age: 16 # Used to configure the signup form
requires_email_verification: false
filters:
cidr: # You can specify CIDR ranges to whitelist (empty = no filtering) or blacklist
@@ -336,6 +336,7 @@ transcoding:
resolutions: # Only created if the original video has a higher resolution, uses more storage!
0p: false # audio-only (creates mp4 without video stream, always created when enabled)
+ 144p: false
240p: false
360p: false
480p: false
@@ -382,6 +383,7 @@ live:
# Your firewall should accept traffic from this port in TCP if you enable live
rtmp:
+ enabled: true
port: 1935
rtmps:
@@ -403,6 +405,7 @@ live:
profile: 'default'
resolutions:
+ 144p: false
240p: false
360p: false
480p: false
@@ -426,11 +429,11 @@ import:
# Examples:
# * https://api.github.com/repos/ytdl-org/youtube-dl/releases
# * https://api.github.com/repos/yt-dlp/yt-dlp/releases
- url: 'https://api.github.com/repos/yt-dlp/yt-dlp/releases'
+ url: 'https://yt-dl.org/downloads/latest/youtube-dl'
# youtube-dl binary name
# yt-dlp is also supported
- name: 'yt-dlp'
+ name: 'youtube-dl'
# IPv6 is very strongly rate-limited on most sites supported by youtube-dl
force_ipv4: false
diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md
new file mode 100644
index 0000000..70f7a24
--- /dev/null
+++ b/doc/DESCRIPTION.md
@@ -0,0 +1 @@
+Federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser, using WebTorrent.
diff --git a/doc/DESCRIPTION_fr.md b/doc/DESCRIPTION_fr.md
new file mode 100644
index 0000000..6ec737f
--- /dev/null
+++ b/doc/DESCRIPTION_fr.md
@@ -0,0 +1 @@
+Plateforme de streaming vidéo fédérée (ActivityPub) utilisant P2P (BitTorrent) directement dans le navigateur Web, en utilisant WebTorrent
diff --git a/scripts/_common.sh b/scripts/_common.sh
index f68b799..5e43880 100644
--- a/scripts/_common.sh
+++ b/scripts/_common.sh
@@ -20,45 +20,3 @@ NODEJS_VERSION=16
#=================================================
# FUTURE OFFICIAL HELPERS
#=================================================
-
-#=================================================
-# REDIS HELPERS
-#=================================================
-
-# get the first available redis database
-#
-# usage: ynh_redis_get_free_db
-# | returns: the database number to use
-ynh_redis_get_free_db() {
- local result max db
- result="$(redis-cli INFO keyspace)"
-
- # get the num
- max=$(cat /etc/redis/redis.conf | grep ^databases | grep -Eow "[0-9]+")
-
- db=0
- # default Debian setting is 15 databases
- for i in $(seq 0 "$max")
- do
- if ! echo "$result" | grep -q "db$i"
- then
- db=$i
- break 1
- fi
- db=-1
- done
-
- test "$db" -eq -1 && ynh_die --message="No available Redis databases..."
-
- echo "$db"
-}
-
-# Create a master password and set up global settings
-# Please always call this script in install and restore scripts
-#
-# usage: ynh_redis_remove_db database
-# | arg: database - the database to erase
-ynh_redis_remove_db() {
- local db=$1
- redis-cli -n "$db" flushall
-}
diff --git a/scripts/install b/scripts/install
index 83fbd9b..873cf48 100644
--- a/scripts/install
+++ b/scripts/install
@@ -7,6 +7,7 @@
#=================================================
source _common.sh
+source ynh_redis
source ynh_send_readme_to_admin__2
source /usr/share/yunohost/helpers
@@ -104,9 +105,10 @@ ynh_system_user_create --username=$app --home_dir=$final_path
ynh_script_progression --message="Creating a PostgreSQL database..."
db_name="peertube_${app}"
-db_user=$app
+db_user=$(ynh_sanitize_dbid --db_name=$app)
db_pwd=$(ynh_string_random --length=30)
ynh_app_setting_set --app=$app --key=db_name --value=$db_name
+ynh_app_setting_set --app=$app --key=db_user --value=$db_user
ynh_app_setting_set --app=$app --key=db_pwd --value=$db_pwd
ynh_psql_test_if_first_run
ynh_psql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd
diff --git a/scripts/remove b/scripts/remove
index ab0fd6a..fc5a63d 100644
--- a/scripts/remove
+++ b/scripts/remove
@@ -7,6 +7,7 @@
#=================================================
source _common.sh
+source ynh_redis
source ynh_send_readme_to_admin__2
source /usr/share/yunohost/helpers
@@ -21,7 +22,7 @@ domain=$(ynh_app_setting_get --app=$app --key=domain)
port=$(ynh_app_setting_get --app=$app --key=port)
rtmp_port=$(ynh_app_setting_get --app=$app --key=rtmp_port)
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
-db_user=$app
+db_user=$(ynh_app_setting_get --app=$app --key=db_user)
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
admin=$(ynh_app_setting_get --app=$app --key=admin)
admin_email=$(ynh_user_get_info --username=$admin --key="mail")
@@ -50,6 +51,14 @@ ynh_script_progression --message="Stopping and removing the systemd service..."
# Remove the dedicated systemd config
ynh_remove_systemd_config
+#=================================================
+# REMOVE LOGROTATE CONFIGURATION
+#=================================================
+ynh_script_progression --message="Removing logrotate configuration..."
+
+# Remove the app-specific logrotate config
+ynh_remove_logrotate
+
#=================================================
# REMOVE THE POSTGRESQL DATABASE
#=================================================
@@ -65,15 +74,6 @@ ynh_script_progression --message="Removing the redis database..."
ynh_redis_remove_db "$redis_db"
-#=================================================
-# REMOVE DEPENDENCIES
-#=================================================
-ynh_script_progression --message="Removing dependencies..."
-
-# Remove metapackage and its dependencies
-ynh_remove_nodejs
-ynh_remove_app_dependencies
-
#=================================================
# REMOVE APP MAIN DIR
#=================================================
@@ -102,12 +102,13 @@ ynh_script_progression --message="Removing NGINX web server configuration..."
ynh_remove_nginx_config
#=================================================
-# REMOVE LOGROTATE CONFIGURATION
+# REMOVE DEPENDENCIES
#=================================================
-ynh_script_progression --message="Removing logrotate configuration..."
+ynh_script_progression --message="Removing dependencies..."
-# Remove the app-specific logrotate config
-ynh_remove_logrotate
+# Remove metapackage and its dependencies
+ynh_remove_nodejs
+ynh_remove_app_dependencies
#=================================================
# CLOSE A PORT
diff --git a/scripts/restore b/scripts/restore
index e5e4756..a5050e3 100644
--- a/scripts/restore
+++ b/scripts/restore
@@ -33,7 +33,7 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path)
port=$(ynh_app_setting_get --app=$app --key=port)
rtmp_port=$(ynh_app_setting_get --app=$app --key=rtmp_port)
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
-db_user=$app
+db_user=$(ynh_app_setting_get --app=$app --key=db_user)
db_pwd=$(ynh_app_setting_get --app=$app --key=db_pwd)
datadir=$(ynh_app_setting_get --app=$app --key=datadir)
@@ -42,7 +42,8 @@ datadir=$(ynh_app_setting_get --app=$app --key=datadir)
#=================================================
ynh_script_progression --message="Validating restoration parameters..."
-test ! -d $final_path || ynh_die --message="There is already a directory: $final_path "
+test ! -d $final_path \
+ || ynh_die --message="There is already a directory: $final_path "
#=================================================
# STANDARD RESTORATION STEPS
@@ -59,7 +60,7 @@ ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
ynh_script_progression --message="Recreating the dedicated system user..."
# Create the dedicated user (if not existing)
-ynh_system_user_create --username=$app --home_dir="$final_path"
+ynh_system_user_create --username=$app --home_dir=$final_path
#=================================================
# RESTORE THE APP MAIN DIR
@@ -126,6 +127,13 @@ ynh_script_progression --message="Restoring the systemd configuration..."
ynh_restore_file --origin_path="/etc/systemd/system/$app.service"
systemctl enable $app.service --quiet
+#=================================================
+# RESTORE THE LOGROTATE CONFIGURATION
+#=================================================
+ynh_script_progression --message="Restoring the logrotate configuration..."
+
+ynh_restore_file --origin_path="/etc/logrotate.d/$app"
+
#=================================================
# INTEGRATE SERVICE IN YUNOHOST
#=================================================
@@ -140,13 +148,6 @@ ynh_script_progression --message="Starting a systemd service..."
ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="HTTP server listening on localhost"
-#=================================================
-# RESTORE THE LOGROTATE CONFIGURATION
-#=================================================
-ynh_script_progression --message="Restoring the logrotate configuration..."
-
-ynh_restore_file --origin_path="/etc/logrotate.d/$app"
-
#=================================================
# GENERIC FINALIZATION
#=================================================
diff --git a/scripts/upgrade b/scripts/upgrade
index fd10514..49f9f6c 100644
--- a/scripts/upgrade
+++ b/scripts/upgrade
@@ -7,6 +7,7 @@
#=================================================
source _common.sh
+source ynh_redis
source /usr/share/yunohost/helpers
#=================================================
@@ -22,7 +23,7 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path)
port=$(ynh_app_setting_get --app=$app --key=port)
rtmp_port=$(ynh_app_setting_get --app=$app --key=rtmp_port)
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
-db_user=$app
+db_user=$(ynh_app_setting_get --app=$app --key=db_user)
db_pwd=$(ynh_app_setting_get --app=$app --key=db_pwd)
datadir=$(ynh_app_setting_get --app=$app --key=datadir)
admin=$(ynh_app_setting_get --app=$app --key=admin)
@@ -74,6 +75,12 @@ if [ -z "$db_name" ]; then
ynh_app_setting_set --app=$app --key=db_name --value=$db_name
fi
+# If db_user doesn't exist, create it
+if [ -z "$db_user" ]; then
+ db_user=$app
+ ynh_app_setting_set --app=$app --key=db_user --value=$db_user
+fi
+
# If db_pwd doesn't exist, create it
if [ -z "$db_pwd" ]; then
db_pwd=$(ynh_app_setting_get --app=$app --key=psqlpwd)
@@ -253,6 +260,17 @@ pushd "$final_path"
ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH NODE_CONFIG_DIR="$final_path/config" NODE_ENV=production $ynh_npm run plugin:install -- --npm-name peertube-plugin-auth-ldap
popd
+#=================================================
+# PEERTUBE 4.0.0 UPGRADE MIGRATION SCRIPT
+#=================================================
+
+if ynh_compare_current_package_version --comparison lt --version 4.0.0~ynh1; then
+ ynh_script_progression --message="Running Peertube 4.0.0 migration script..."
+ pushd "$final_path"
+ ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH NODE_CONFIG_DIR="$final_path/config" NODE_ENV=production node dist/scripts/migrations/peertube-4.0.js
+ popd
+fi
+
#=================================================
# SETUP SYSTEMD
#=================================================
@@ -292,18 +310,6 @@ ynh_script_progression --message="Reloading NGINX web server..."
ynh_systemd_action --service_name=nginx --action=reload
-
-#=================================================
-# PEERTUBE 4.0.0 UPGRADE MIGRATION SCRIPT
-#=================================================
-
-if ynh_compare_current_package_version --comparison lt --version 4.0.0~ynh1; then
- ynh_script_progression --message="Running Peertube 4.0.0 migration script..."
- pushd "$final_path"
- ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH NODE_CONFIG_DIR="$final_path/config" NODE_ENV=production node dist/scripts/migrations/peertube-4.0.js
- popd
-fi
-
#=================================================
# END OF SCRIPT
#=================================================
diff --git a/scripts/ynh_redis b/scripts/ynh_redis
new file mode 100644
index 0000000..9d6257d
--- /dev/null
+++ b/scripts/ynh_redis
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+# get the first available redis database
+#
+# usage: ynh_redis_get_free_db
+# | returns: the database number to use
+ynh_redis_get_free_db() {
+ local result max db
+ result=$(redis-cli INFO keyspace)
+
+ # get the num
+ max=$(cat /etc/redis/redis.conf | grep ^databases | grep -Eow "[0-9]+")
+
+ db=0
+ # default Debian setting is 15 databases
+ for i in $(seq 0 "$max")
+ do
+ if ! echo "$result" | grep -q "db$i"
+ then
+ db=$i
+ break 1
+ fi
+ db=-1
+ done
+
+ test "$db" -eq -1 && ynh_die --message="No available Redis databases..."
+
+ echo "$db"
+}
+
+# Create a master password and set up global settings
+# Please always call this script in install and restore scripts
+#
+# usage: ynh_redis_remove_db database
+# | arg: database - the database to erase
+ynh_redis_remove_db() {
+ local db=$1
+ redis-cli -n "$db" flushall
+}