Compare commits

...

32 commits

Author SHA1 Message Date
Simon Vieille f19d361d38 Mise à jour de 'scripts/install' 2019-04-26 17:05:06 +02:00
anmol26s cc324108b4
Merge pull request #78 from liberodark/patch-2
Update manifest.json
2019-03-08 13:09:05 +05:30
anmol26s f883c1a80e
Merge pull request #79 from liberodark/patch-3
Update app.src
2019-03-08 13:03:44 +05:30
anmol26s 9aab2b2bd0
Merge pull request #77 from liberodark/patch-1
Update README.md
2019-03-08 13:03:11 +05:30
liberodark 8d23f589d2
Update app.src 2019-02-18 19:08:09 +01:00
liberodark 32cb571814
Update manifest.json 2019-02-18 19:07:04 +01:00
liberodark cc6baaaaaf
Update README.md 2019-02-18 19:06:43 +01:00
anmol26s dae9ba7965
Merge pull request #73 from Taekiro/patch-1
Typo in the installing guide
2019-02-13 00:27:55 +05:30
anmol ee111f67a5 Fixed nginx config 2019-02-08 01:00:42 +05:30
anmol 33a4eabbfd Updated to version 1.2.0 2019-02-08 00:48:54 +05:30
Taekiro 222a1076a2
Typo in the installing guide 2019-02-03 13:51:40 +01:00
anmol 7dc5b679ca Updated to version 1.1.0 2019-01-09 11:38:29 +05:30
anmol26s d083cb7dc6 Fix:local videos not playing https://github.com/YunoHost-Apps/peertube_ynh/issues/65 2018-12-23 21:31:11 +05:30
anmol26s 1b31e5c42a Updated to version 1.1.0 2018-12-11 03:05:24 +05:30
anmol fa0cafeb98 Create data directory if it do not exits while restore 2018-11-22 01:52:42 +05:30
anmol 0c6e247773 Security:Do not open port for the app 2018-11-19 15:19:49 +05:30
anmol 07bdd9d791 Updated to version 1.0.1 2018-10-25 21:41:27 +05:30
liberodark 4e82c4dd55 Updated to version 1.0.0
* Update README.md

* Update manifest.json

* Update app.src

* Update app.src
2018-10-11 22:02:22 +05:30
anmol26s 9de70fe32a Merge branch 'master' into testing 2018-10-10 09:33:20 +05:30
anmol26s 93636c227d
Testing 1.0.0-rc.2 (#49)
* Updated dependencies and typos

* [add] French description

Description is missing in French apps list.

* Updated to version 1.0.0-beta.15

* Fix systemd and redundancy (#46)

* fixed env in systemd

* changed path while creating password

* changed path while creating password

* changed path while creating password

* changed path while creating password

* Path in systemd

* Fixed yarn in upgrade

* Updated to version 1.0.0-beta.16

* Removed reduency from producton.yaml

* Updated to version 1.0.0-rc.2
2018-10-04 05:03:26 +05:30
anmol26s 934475e592
Merge branch 'master' into testing 2018-10-04 05:02:59 +05:30
anmol26s 8c7183befe Updated to version 1.0.0-rc.2 2018-10-04 04:36:09 +05:30
anmol26s 6fc4efb845
Updated to version 1.0.0-beta.16 (#48)
* Updated dependencies and typos

* [add] French description

Description is missing in French apps list.

* Updated to version 1.0.0-beta.15

* Fix systemd and redundancy (#46)

* fixed env in systemd

* changed path while creating password

* changed path while creating password

* changed path while creating password

* changed path while creating password

* Path in systemd

* Fixed yarn in upgrade

* Updated to version 1.0.0-beta.16

* Removed reduency from producton.yaml
2018-10-03 17:07:41 +05:30
anmol26s 52fb7cc948
Merge branch 'master' into testing 2018-10-03 17:07:00 +05:30
anmol26s 64427abbea Removed reduency from producton.yaml 2018-10-03 14:25:36 +05:30
anmol26s 23972243cc Updated to version 1.0.0-beta.16 2018-10-03 14:07:23 +05:30
anmol26s 1bab3c1248
Upgraded to version 1.0.0-beta.15, systemd fix (#47)
* Updated dependencies and typos

* [add] French description

Description is missing in French apps list.

* Updated to version 1.0.0-beta.15

* Fix systemd and redundancy (#46)

* fixed env in systemd

* changed path while creating password

* changed path while creating password

* changed path while creating password

* changed path while creating password

* Path in systemd

* Fixed yarn in upgrade
2018-10-01 04:57:20 +05:30
anmol26s c3221e6128
Fix systemd and redundancy (#46)
* fixed env in systemd

* changed path while creating password

* changed path while creating password

* changed path while creating password

* changed path while creating password

* Path in systemd

* Fixed yarn in upgrade
2018-10-01 03:50:48 +05:30
anmol26s 33755ac53e Updated to version 1.0.0-beta.15 2018-09-26 20:04:26 +05:30
anmol26s 36816b56f1
Merge pull request #43 from tituspijean/patch-1
[add] French description
2018-09-25 03:19:12 +05:30
tituspijean 8452a57ffe
[add] French description
Description is missing in French apps list.
2018-09-24 19:34:40 +02:00
anmol26s 9bf976d04e Updated dependencies and typos 2018-09-21 21:44:49 +05:30
10 changed files with 150 additions and 56 deletions

View file

@ -4,8 +4,7 @@
[![Install Peertube with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=peertube)<br><br>
=======
Shipped Version: **1.0.0-beta.13**
Shipped Version: **1.2.1**
## What is Peertube ?
PeerTube is a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser, using <a href="https://github.com/feross/webtorrent">WebTorrent</a>.
@ -35,28 +34,28 @@ Want to see in action?
### Guidelines
1. Require dedicated domain like **peertube.domain.tld**.
1. No LDAP support (blocked until upstream implements it)
1. URL can not be changed once selected.
1. Require **dedicated domain** like **peertube.domain.tld**.
1. **No LDAP** support (blocked until Peertube core upstream implements it)
1. URL can not be changed once selected. Choose the domain wisely.
1. You need more then **1GB** of ram. If you don't have it, please create a **swap memory**.
$ dd if=/dev/zero of=/swapfile bs=1024 count=1048576
$ mkswap /swapfile
$ swapon /swapfile
$ echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
1. This app is multi-instance (you can have more then one Peertube instance running on a YunoHost server)
1. This app is **multi-instance** (you can have more then one Peertube instance running on a YunoHost server)
### Install
### Installing guide
1. **App can be installed by YunoHost admin interface or by the following command:**
1. App can be installed by YunoHost **admin web-interface** or by **running following command**:
$ sudo yunohost app install https://github.com/YunoHost-Apps/peertube_ynh
1. **root** is the admin username.
1. **root Password** will be sent to the email address given at the time of the installation.
1. **TLS** and **starttls** are disabled for the outgoing mails. If you intent to use email address not hosted on your local server,it's advised to have a proper SMTP configured with tls and starttls settings by editing **/var/www/peertube/config/porduction.yml**.
1. Admin username is : **root**.
1. **Admin password** will be sent to the email address given at the time of the installation.
1. **TLS** and **starttls** are disabled for the outgoing mails. If you intent to use email address not hosted on your local server,it's advised to have a proper SMTP configured with tls and starttls settings by editing **/var/www/peertube/config/production.yml**.
### Updation
1. **App can be updated by YunoHost admin interface or with the following command:**
### Update Guide
1. App can be updated by YunoHost **admin web-interface** or with the following command**:
$ sudo yunohost app upgrade -u https://github.com/YunoHost-Apps/peertube_ynh peertube

View file

@ -1,5 +1,5 @@
SOURCE_URL=https://github.com/Chocobozzz/PeerTube/releases/download/v1.0.0-beta.13/peertube-v1.0.0-beta.13.tar.xz
SOURCE_SUM=d23ebad3d1348a8fdf6ccaff81c16849045574578656ab7e676d4580c2da7383
SOURCE_URL=https://github.com/Chocobozzz/PeerTube/releases/download/v1.2.1/peertube-v1.2.1.tar.xz
SOURCE_SUM=77517c06133704e36b755bdae4f68838221e657ca70a1a40d5c8652655978ed5
SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=tar.xz
SOURCE_IN_SUBDIR=true

View file

@ -1,9 +1,10 @@
# Bypass PeerTube for performance reasons. Could be removed
location ~ ^/client/(.*\.(js|css|woff2|otf|ttf|woff|eot))$ {
add_header Cache-Control "public, max-age=31536000, immutable";
alias __FINALPATH__/client/dist/$1;
}
# Bypass PeerTube for performance reasons. Could be removed
location ~ ^/static/(thumbnails|avatars)/ {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
@ -36,8 +37,17 @@
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# Hard limit, PeerTube does not support videos > 8GB
# This is the maximum upload size, which roughly matches the maximum size of a video file
# you can send via the API or the web interface. By default this is 8GB, but administrators
# can increase or decrease the limit. Currently there's no way to communicate this limit
# to users automatically, so you may want to leave a note in your instance 'about' page if
# you change this.
#
# Note that temporary space is needed equal to the total size of all concurrent uploads.
# This data gets stored in /var/lib/nginx by default, so you may want to put this directory
# on a dedicated filesystem.
#
client_max_body_size 8G;
proxy_connect_timeout 600;
proxy_send_timeout 600;
@ -45,8 +55,8 @@
send_timeout 600;
}
# Bypass PeerTube webseed route for better performances
location /static/webseed {
# Bypass PeerTube for performance reasons. Could be removed
location ~ ^/static/(webseed|redundancy)/ {
# Clients usually have 4 simultaneous webseed connections, so the real limit is 3MB/s per client
limit_rate 800k;
@ -69,7 +79,14 @@
access_log off;
}
alias /home/yunohost.app/__NAME__/storage/videos;
root /home/yunohost.app/__NAME__/storage;
rewrite ^/static/webseed/(.*)$ /videos/$1 break;
rewrite ^/static/redundancy/(.*)$ /redundancy/$1 break;
try_files $uri /;
}
# Websocket tracker
@ -84,3 +101,18 @@
proxy_set_header Host $host;
proxy_pass http://localhost:__PORT__;
}
location /socket.io {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://localhost:__PORT__;
# enable WebSockets
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

View file

@ -2,7 +2,7 @@ listen:
hostname: 'localhost'
port: __PORT__
# Correspond to your reverse proxy "listen" configuration
# Correspond to your reverse proxy server_name/listen configuration
webserver:
https: true
hostname: '__domain__'
@ -47,8 +47,10 @@ smtp:
# 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/'
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/'
@ -60,14 +62,36 @@ log:
level: 'info' # debug/info/warning/error
search:
remote_uri: # Add ability to search remote videos/actors by 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
# If enabled, the associated group will be able to "escape" from the instance follows
# That means they will be able to follow channels, watch videos, list videos of non followed instances
remote_uri:
users: true
anonymous: false
trending:
videos:
interval_days: 7 # Compute trending videos for the last x days
# Cache remote videos on your server, to help other instances to broadcast the video
# You can define multiple caches using different sizes/strategies
# 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:
# -
# size: '10GB'
# strategy: 'most-views' # Cache videos that have the most views
# -
# size: '10GB'
# strategy: 'trending' # Cache trending videos
# -
# size: '1GB'
# # Minimum time the video must remain in the cache. Only accept values > 10 hours (to not overload remote instances)
# min_lifetime: '48 hours'
# strategy: 'recently-added' # Cache recently added videos
# min_views: 10 # Having at least x views
###############################################################################
#
@ -89,11 +113,17 @@ cache:
admin:
# Used to generate the root user at first startup
# And to receive emails from the contact form
email: '__email__'
contact_form:
enabled: true
signup:
enabled: false
limit: 10 # When the limit is reached, registrations are disabled. -1 == unlimited
requires_email_verification: false
filters:
cidr: # You can specify CIDR ranges to whitelist (empty = no filtering) or blacklist
whitelist: []
@ -110,6 +140,8 @@ user:
# Please, do not disable transcoding since many uploaded videos will not work
transcoding:
enabled: true
# Allow your users to upload .mkv, .mov, .avi, .flv videos
allow_additional_extensions: true
threads: 1
resolutions: # Only created if the original video has a higher resolution, uses more storage!
240p: false
@ -142,12 +174,14 @@ instance:
# Robot.txt rules. To disallow robots to crawl your instance and disallow indexation of your site, add '/' to "Disallow:'
robots: |
User-agent: *
Disallow: ''
Disallow:
# Security.txt rules. To discourage researchers from testing your instance and disable security.txt integration, set this to an empty string.
securitytxt:
"# 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

View file

@ -8,12 +8,32 @@ Environment=NODE_ENV=production
Environment=NODE_CONFIG_DIR=__FINALPATH__/config
User=__APP__
Group=__APP__
ExecStart=/bin/sh -c 'PATH=/opt/node_n/bin:$PATH exec npm start'
Environment="PATH=__ENV_PATH__"
ExecStart=/bin/sh -c ' npm start'
WorkingDirectory=__FINALPATH__/
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=__APP__
Restart=always
; Some security directives.
; Use private /tmp and /var/tmp folders inside a new file system namespace,
; which are discarded after the process stops.
PrivateTmp=true
; Mount /usr, /boot, and /etc as read-only for processes invoked by this service.
ProtectSystem=full
; Sets up a new /dev mount for the process and only adds API pseudo devices
; like /dev/null, /dev/zero or /dev/random but not physical devices. Disabled
; by default because it may not work on devices like the Raspberry Pi.
PrivateDevices=false
; Ensures that the service process and all its children can never gain new
; privileges through execve().
NoNewPrivileges=true
; This makes /home, /root, and /run/user inaccessible and empty for processes invoked
; by this unit. Make sure that you do not depend on data inside these folders.
ProtectHome=false
; Drops the sys admin capability from the daemon.
CapabilityBoundingSet=~CAP_SYS_ADMIN
[Install]
WantedBy=multi-user.target

View file

@ -3,9 +3,10 @@
"id": "peertube",
"packaging_format": 1,
"description": {
"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é"
},
"version": "1.0.0-beta.13",
"version": "1.2.1",
"url": "https://github.com/Chocobozzz/PeerTube",
"license": "AGPL-3.0-only",
"maintainer": {

View file

@ -22,7 +22,7 @@ ynh_abort_if_errors
#=================================================
domain=$YNH_APP_ARG_DOMAIN
path_url="/"
path_url="/peertube"
admin_email=$YNH_APP_ARG_EMAIL
admin_pass=$(ynh_string_random 24)
is_public=$YNH_APP_ARG_IS_PUBLIC
@ -56,10 +56,10 @@ ynh_webpath_register "$app" "$domain" "$path_url"
# STORE SETTINGS FROM MANIFEST
#=================================================
ynh_app_setting_set "$app" domain "$domain"
ynh_app_setting_set "$app" domain "$domain"
ynh_app_setting_set "$app" admin_email "$admin_email"
ynh_app_setting_set "$app" admin_pass "$admin_pass"
ynh_app_setting_set "$app" is_public "$is_public"
ynh_app_setting_set "$app" admin_pass "$admin_pass"
ynh_app_setting_set "$app" is_public "$is_public"
#=================================================
# STANDARD MODIFICATIONS
@ -69,9 +69,6 @@ ynh_app_setting_set "$app" is_public "$is_public"
# Find a free port
port=$(ynh_find_port 9000)
# Open this port
yunohost firewall allow Both "$port" 2>&1
ynh_app_setting_set "$app" port "$port"
#=================================================
@ -90,18 +87,18 @@ mkdir -p "$datadir"
# install nodejs
ynh_install_nodejs 8
# add backports for Debian Jessie (required to install ffmpeg)
# Add backports for Debian Jessie (required to install ffmpeg)
if [ "$(lsb_release --codename --short)" == "jessie" ]; then
echo "deb http://httpredir.debian.org/debian jessie-backports main" | tee /etc/apt/sources.list.d/jessie-backports.list
fi
# add yarn repo for Debian
# Add yarn repo for Debian
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
ynh_package_update
# install postgresql, ffmpeg, redis
ynh_install_app_dependencies postgresql ffmpeg redis-server redis-tools mailutils yarn
# install dependencies
ynh_install_app_dependencies postgresql postgresql-contrib openssl g++ ffmpeg redis-server redis-tools mailutils yarn apt-transport-https
#=================================================
# DATABASE SETUP
@ -151,11 +148,11 @@ touch "$final_path/config/local-production.json"
#=================================================
# Create a dedicated nginx config
mkdir -p "/etc/nginx/conf.d/${domain}.d"
mkdir -p "/etc/nginx/conf.d/${domain}.d" # ( I don't remember why this is here, I think can be removed)
ynh_add_nginx_config
# Set right permissions for curl install
# Set right permissions for the app
chown -R "$app":"$app" "$datadir"
# Reload Nginx
@ -214,10 +211,13 @@ chown -R "$app":"$app" "$final_path" "$datadir"
systemctl reload nginx
#=================================================
# SETUP SYSTEMD
#=================================================
ynh_replace_string "__ENV_PATH__" "$PATH" "../conf/systemd.service"
# Create a dedicated systemd config
ynh_add_systemd_config
systemctl enable "$app"
@ -231,7 +231,7 @@ systemctl start "$app"
(
cd "$final_path"
sleep 30
echo $admin_pass | NODE_CONFIG_DIR="$final_path/config" NODE_ENV=production PATH="/opt/node_n/bin:$PATH" npm run reset-password -- -u root
echo $admin_pass | NODE_CONFIG_DIR="$final_path/config" NODE_ENV=production npm run reset-password -- -u root
)
#=================================================
@ -240,11 +240,11 @@ systemctl start "$app"
message=" $app was successfully installed :)
Please open https://$domain$path_url
Please open your $app domain: https://$domain$path_url
The admin username is: root
Here is the admin password: $admin_pass
The admin password is: $admin_pass
If you facing an issue or want to improve this app, please open a new issue in this project: https://github.com/YunoHost-Apps/peertube_ynh"
If you are facing any problem or want to improve this app, please open a new issue here: https://github.com/YunoHost-Apps/peertube_ynh"
ynh_send_readme_to_admin "$message"

View file

@ -109,7 +109,8 @@ message="$app was successfully removed :)
$app was successfully removed. The domain https://$domain$path_url is free for other apps to be installed on it.
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.
But a futher action is required from your side to completely remove the $app data folder. If you have backup and plan to restore this app in the future DON'T RUN THIS COMMAND.
And if you are going to migrate 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) :
@ -117,6 +118,6 @@ You need to run this command to remove the data (warning all your videos will be
rm -R /home/yunohost.app/$app -f
If you facing an issue or want to improve this app, please open a new issue in this project: https://github.com/YunoHost-Apps/peertube_ynh"
If you facing any problem or want to improve this app, please open a new issue here: https://github.com/YunoHost-Apps/peertube_ynh"
ynh_send_readme_to_admin "$message"

View file

@ -62,9 +62,6 @@ ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf"
ynh_restore_file "$final_path"
# Open this port
yunohost firewall allow Both "$port" 2>&1
#=================================================
# RECREATE THE DEDICATED USER
#=================================================
@ -77,6 +74,9 @@ ynh_system_user_create "$app"
#=================================================
# Set right permissions
if [ ! -d "/home/yunohost.app/$app" ]; then
mkdir -p "/home/yunohost.app/${app}/storage"
fi
chown -R "$app":"$app" "/home/yunohost.app/${app}/storage"
#=================================================
@ -99,7 +99,7 @@ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.lis
ynh_package_update
# install postgresql, ffmpeg, redis
ynh_install_app_dependencies postgresql ffmpeg redis-server redis-tools mailutils yarn
ynh_install_app_dependencies postgresql postgresql-contrib openssl g++ ffmpeg redis-server redis-tools mailutils yarn apt-transport-https
#=================================================
# RESTORE THE PostgreSQL DATABASE

View file

@ -77,8 +77,15 @@ datadir="/home/yunohost.app/${app}/storage"
# Create app folders
mkdir -p "$datadir"
# Open this port
yunohost firewall allow Both "$port" 2>&1
#=================================================
# CLOSE A PORT
#=================================================
if yunohost firewall list | grep -q "\- $port$"
then
echo "Close port $port"
yunohost firewall disallow Both "$port" 2>&1
fi
#=================================================
# CREATE DEDICATED USER
@ -105,7 +112,7 @@ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.lis
ynh_package_update
# install postgresql, ffmpeg, redis
ynh_install_app_dependencies postgresql ffmpeg redis-server redis-tools mailutils yarn
ynh_install_app_dependencies postgresql postgresql-contrib openssl g++ ffmpeg redis-server redis-tools mailutils yarn apt-transport-https
#=================================================
# CHECK THE PATH
@ -130,7 +137,7 @@ ynh_secure_remove "$tmpdir"
(
cd "$final_path"
yarn install --production --pure-lockfile --silent --cache-folder /var/cache/yarn/
yarn install --production --pure-lockfile
)
@ -172,7 +179,7 @@ ynh_use_logrotate --non-append
#=================================================
# SETUP SYSTEMD
#=================================================
ynh_replace_string "__ENV_PATH__" "$PATH" "../conf/systemd.service"
# Create a dedicated systemd config
ynh_add_systemd_config