From da0c0889366ca4fa57703b8651f89494b9c94764 Mon Sep 17 00:00:00 2001 From: anmol26s Date: Sun, 29 Jul 2018 20:48:55 +0530 Subject: [PATCH] Updated to version v1.0.0-beta.10.pre.2 --- README.md | 7 +- conf/nginx.conf | 28 ++++++-- conf/production.yaml | 6 +- conf/systemd.service | 3 +- manifest.json | 2 +- scripts/_common.sh | 2 +- scripts/nodejs.sh | 166 ------------------------------------------- scripts/remove | 4 +- scripts/upgrade | 9 +++ 9 files changed, 44 insertions(+), 183 deletions(-) delete mode 100644 scripts/nodejs.sh diff --git a/README.md b/README.md index ea7ce25..bc1e561 100644 --- a/README.md +++ b/README.md @@ -4,17 +4,12 @@ [![Install Peertube with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=peertube)

======= -Shipped Version: **v1.0.0-beta.9** +Shipped Version: **v1.0.0-beta.10.pre.2** ## What is Peertube ? PeerTube is a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser, using WebTorrent. - -

-Peertube is running a crowdfunding campaign to pave the road to version 1.0 of PeerTube! If you liked the app, please donate. -

- ## Why Peertube ? We can't build a FOSS video streaming alternatives to YouTube, Dailymotion, Vimeo... with a centralized software. One organization alone cannot have enough money to pay bandwidth and video storage of its server. diff --git a/conf/nginx.conf b/conf/nginx.conf index b7fe0bc..57fc53a 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -3,11 +3,29 @@ alias __FINALPATH__/client/dist/$1; } + + 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; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } - location ~ ^/static/(thumbnails|avatars)/(.*)$ { - add_header Cache-Control "public, max-age=31536000, immutable"; + 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'; - alias /home/yunohost.app/__NAME__/storage/$1/$2; + # Cache 2 hours + add_header Cache-Control "public, max-age=7200"; + + root /home/yunohost.app/__NAME__/storage; + + rewrite ^/static/(thumbnails|avatars)/(.*)$ /$1/$2 break; + try_files $uri /; } location / { @@ -19,8 +37,8 @@ proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - # Hard limit, PeerTube does not support videos > 4GB - client_max_body_size 4G; + # Hard limit, PeerTube does not support videos > 8GB + client_max_body_size 8G; proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; diff --git a/conf/production.yaml b/conf/production.yaml index 6f72bdf..7e89902 100644 --- a/conf/production.yaml +++ b/conf/production.yaml @@ -49,6 +49,7 @@ storage: 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/' log: @@ -68,7 +69,10 @@ log: cache: previews: - size: 100 # Max number of previews you want to cache + size: 500 # Max number of previews you want to cache + captions: + size: 500 # Max number of video captions/subtitles you want to cache + admin: email: '__email__' diff --git a/conf/systemd.service b/conf/systemd.service index 2ded102..0fc291b 100644 --- a/conf/systemd.service +++ b/conf/systemd.service @@ -1,5 +1,6 @@ [Unit] -Description=PeerTube daemon +Description=__APP__ daemon +After=network.target postgresql.service redis-server.service [Service] Type=simple diff --git a/manifest.json b/manifest.json index cecad5d..8a7a396 100644 --- a/manifest.json +++ b/manifest.json @@ -5,7 +5,7 @@ "description": { "en": "Video streaming platform using P2P directly in the web browser, connected to a federated network" }, - "version": "1.0.0-beta.9", + "version": "v1.0.0-beta.10.pre.2", "url": "https://github.com/Chocobozzz/PeerTube", "license": "AGPL-3.0-only", "maintainer": { diff --git a/scripts/_common.sh b/scripts/_common.sh index 5cea137..c726850 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -48,7 +48,7 @@ ynh_send_readme_to_admin() { } recipients=$(find_mails "$recipients") - local mail_subject="☁️🆈🅽🅷☁️: \`$app\` was just installed!" + local mail_subject="☁️🆈🅽🅷☁️: \`$app\` has important message for you" local mail_message="This is an automated message from your beloved YunoHost server. Specific information for the application $app. diff --git a/scripts/nodejs.sh b/scripts/nodejs.sh deleted file mode 100644 index c7e475c..0000000 --- a/scripts/nodejs.sh +++ /dev/null @@ -1,166 +0,0 @@ -#!/bin/bash - -# INFOS -# n (Node version management) utilise la variable PATH pour stocker le path de la version de node à utiliser. -# C'est ainsi qu'il change de version -# ynh_install_nodejs installe la version de nodejs demandée en argument, avec n -# ynh_use_nodejs active une version de nodejs dans le script courant -# 3 variables sont mises à disposition, et 2 sont stockées dans la config de l'app -# - nodejs_path: Le chemin absolu de cette version de node -# Utilisé pour des appels directs à node. -# - nodejs_version: Simplement le numéro de version de nodejs pour cette application -# - nodejs_use_version: Un alias pour charger une version de node dans le shell courant. -# Utilisé pour démarrer un service ou un script qui utilise node ou npm -# Dans ce cas, c'est $PATH qui contient le chemin de la version de node. Il doit être propagé sur les autres shell si nécessaire. - -n_install_dir="/opt/node_n" -node_version_path="/opt/node_n/n/versions/node" -# N_PREFIX est le dossier de n, il doit être chargé dans les variables d'environnement pour n. -export N_PREFIX="$n_install_dir" - -ynh_install_n () { - echo "Installation of N - Node.js version management" >&2 - # Build an app.src for n - mkdir -p "../conf" - echo "SOURCE_URL=https://github.com/tj/n/archive/v2.1.7.tar.gz -SOURCE_SUM=2ba3c9d4dd3c7e38885b37e02337906a1ee91febe6d5c9159d89a9050f2eea8f" > "../conf/n.src" - # Download and extract n - ynh_setup_source "$n_install_dir/git" n - # Install n - (cd "$n_install_dir/git" - PREFIX=$N_PREFIX make install 2>&1) -} - -ynh_use_nodejs () { - nodejs_version=$(ynh_app_setting_get $app nodejs_version) - - load_n_path="[[ :$PATH: == *\":$n_install_dir/bin:\"* ]] || PATH=\"$n_install_dir/bin:$PATH\"; N_PREFIX="$n_install_dir"" - - nodejs_use_version="$n_install_dir/bin/n -q $nodejs_version" - - # "Load" a version of node - eval $load_n_path; $nodejs_use_version - - # Get the absolute path of this version of node - nodejs_path="$(n bin $nodejs_version)" - - # Make an alias for node use - ynh_node_exec="eval $load_n_path; n use $nodejs_version" -} - -ynh_install_nodejs () { - # Use n, https://github.com/tj/n to manage the nodejs versions - nodejs_version="$1" - local n_install_script="https://git.io/n-install" - - # Create $n_install_dir - mkdir -p "$n_install_dir" - - # Load n path in PATH - CLEAR_PATH="$n_install_dir/bin:$PATH" - # Remove /usr/local/bin in PATH in case of node has already setup. - PATH=$(echo $CLEAR_PATH | sed 's@/usr/local/bin:@@') - - # Move an existing node binary, to avoid to block n. - test -x /usr/bin/node && mv /usr/bin/node /usr/bin/node_n - test -x /usr/bin/npm && mv /usr/bin/npm /usr/bin/npm_n - - # If n is not previously setup, install it - if ! test n --version > /dev/null 2>&1 - then - ynh_install_n - fi - - # Modify the default N_PREFIX in n script - ynh_replace_string "^N_PREFIX=\${N_PREFIX-.*}$" "N_PREFIX=\${N_PREFIX-$N_PREFIX}" "$n_install_dir/bin/n" - - # Restore /usr/local/bin in PATH - PATH=$CLEAR_PATH - - # And replace the old node binary. - test -x /usr/bin/node_n && mv /usr/bin/node_n /usr/bin/node - test -x /usr/bin/npm_n && mv /usr/bin/npm_n /usr/bin/npm - - # Install the requested version of nodejs - n $nodejs_version - - # Find the last "real" version for this major version of node. - real_nodejs_version=$(find $node_version_path/$nodejs_version* -maxdepth 0 | sort --version-sort | tail --lines=1) - real_nodejs_version=$(basename $real_nodejs_version) - - # Create a symbolic link for this major version. If the file doesn't already exist - if [ ! -e "$node_version_path/$nodejs_version" ] - then - ln --symbolic --force --no-target-directory $node_version_path/$real_nodejs_version $node_version_path/$nodejs_version - fi - - # Store the ID of this app and the version of node requested for it - echo "$YNH_APP_ID:$nodejs_version" | tee --append "$n_install_dir/ynh_app_version" - - # Store nodejs_version into the config of this app - ynh_app_setting_set $app nodejs_version $nodejs_version - - # Build the update script and set the cronjob - ynh_cron_upgrade_node - - ynh_use_nodejs -} - -ynh_remove_nodejs () { - ynh_use_nodejs - - # Remove the line for this app - sed --in-place "/$YNH_APP_ID:$nodejs_version/d" "$n_install_dir/ynh_app_version" - - # If none another app uses this version of nodejs, remove it. - if ! grep --quiet "$nodejs_version" "$n_install_dir/ynh_app_version" - then - n rm $nodejs_version - fi - - # If none another app uses n, remove n - if [ ! -s "$n_install_dir/ynh_app_version" ] - then - ynh_secure_remove "$n_install_dir" - ynh_secure_remove "/usr/local/n" - sed --in-place "/N_PREFIX/d" /root/.bashrc - fi -} - -ynh_cron_upgrade_node () { - # Build the update script - cat > "$n_install_dir/node_update.sh" << EOF -#!/bin/bash -version_path="$node_version_path" -n_install_dir="$n_install_dir" -# Log the date -date -# List all real installed version of node -all_real_version="\$(find \$version_path/* -maxdepth 0 -type d | sed "s@\$version_path/@@g")" -# Keep only the major version number of each line -all_real_version=\$(echo "\$all_real_version" | sed 's/\..*\$//') -# Remove double entries -all_real_version=\$(echo "\$all_real_version" | sort --unique) -# Read each major version -while read version -do - echo "Update of the version \$version" - sudo \$n_install_dir/bin/n \$version - # Find the last "real" version for this major version of node. - real_nodejs_version=\$(find \$version_path/\$version* -maxdepth 0 | sort --version-sort | tail --lines=1) - real_nodejs_version=\$(basename \$real_nodejs_version) - # Update the symbolic link for this version - sudo ln --symbolic --force --no-target-directory \$version_path/\$real_nodejs_version \$version_path/\$version -done <<< "\$(echo "\$all_real_version")" -EOF - - chmod +x "$n_install_dir/node_update.sh" - - # Build the cronjob - cat > "/etc/cron.daily/node_update" << EOF -#!/bin/bash -$n_install_dir/node_update.sh >> $n_install_dir/node_update.log -EOF - - chmod +x "/etc/cron.daily/node_update" -} diff --git a/scripts/remove b/scripts/remove index b4d419d..734a5d9 100644 --- a/scripts/remove +++ b/scripts/remove @@ -107,9 +107,9 @@ ynh_system_user_delete "$app" message="$app was successfully removed :) -$app was successfully removed and domain https://$domain$path_url is free for other apps now. +$app was successfully removed. The domain https://$domain$path_url is free for other apps to be installed on it. -But there is futher action needed from your side to completely remove the $app data. If you are planing to restore the app in the future don't run the command given below. If you are going to switch to othe server don't forget to copy /home/yunohost.app/$app to your new server. +But a futher action is required from your side to completely remove the $app data folder. If you are planing to restore the app in the future don't run the command given below. And if you are going to switch to othe server you will have to move /home/yunohost.app/$app to your new server. You need to run this command to remove the data (warning all your videos will be removed) : diff --git a/scripts/upgrade b/scripts/upgrade index 358b520..1867942 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -54,6 +54,15 @@ ynh_abort_if_errors # Stop Peertube for upgrade systemctl stop "$app" +#=================================================== +# Add PostgreSQL extension for v1.0.0-beta.10.pre.1 +#=================================================== + +ynh_psql_execute_as_root \ +"CREATE EXTENSION IF NOT EXISTS unaccent;" "$db_name" +ynh_psql_execute_as_root \ +"CREATE EXTENSION IF NOT EXISTS pg_trgm;" "$db_name" + #================================================= # REMOVE APP MAIN DIR #=================================================