From 59c48d49c5f06a46c342b4e7f86fbd1ed9894bd6 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 23 Jan 2018 09:00:23 +0100 Subject: [PATCH] Peertube home in /var/www instead of /home --- config/production.yaml.example | 14 +++++------ server/middlewares/oauth.ts | 1 - support/doc/production.md | 43 +++++++++++++++++--------------- support/nginx/peertube | 6 ++--- support/systemd/peertube.service | 4 +-- 5 files changed, 35 insertions(+), 33 deletions(-) diff --git a/config/production.yaml.example b/config/production.yaml.example index 69052fb26..1288eeaa2 100644 --- a/config/production.yaml.example +++ b/config/production.yaml.example @@ -17,13 +17,13 @@ database: # From the project root directory storage: - avatars: '/home/peertube/storage/avatars/' - videos: '/home/peertube/storage/videos/' - logs: '/home/peertube/storage/logs/' - previews: '/home/peertube/storage/previews/' - thumbnails: '/home/peertube/storage/thumbnails/' - torrents: '/home/peertube/storage/torrents/' - cache: '/home/peertube/storage/cache/' + avatars: '/var/www/peertube/storage/avatars/' + videos: '/var/www/peertube/storage/videos/' + logs: '/var/www/peertube/storage/logs/' + previews: '/var/www/peertube/storage/previews/' + thumbnails: '/var/www/peertube/storage/thumbnails/' + torrents: '/var/www/peertube/storage/torrents/' + cache: '/var/www/peertube/storage/cache/' log: level: 'debug' # debug/info/warning/error diff --git a/server/middlewares/oauth.ts b/server/middlewares/oauth.ts index 3cda41e5c..41a3fb718 100644 --- a/server/middlewares/oauth.ts +++ b/server/middlewares/oauth.ts @@ -1,7 +1,6 @@ import * as express from 'express' import * as OAuthServer from 'express-oauth-server' import 'express-validator' -import { logger } from '../helpers/logger' import { OAUTH_LIFETIME } from '../initializers' const oAuthServer = new OAuthServer({ diff --git a/support/doc/production.md b/support/doc/production.md index ee8bf2647..606f13c9b 100644 --- a/support/doc/production.md +++ b/support/doc/production.md @@ -8,10 +8,10 @@ Follow the steps of the [dependencies guide](dependencies.md). ### PeerTube user -Create a `peertube` user with `/home/peertube` home: +Create a `peertube` user with `/var/www/peertube` home: ``` -$ sudo useradd -m -d /home/peertube -s /bin/bash -p peertube peertube +$ sudo useradd -m -d /var/www/peertube -s /bin/bash -p peertube peertube ``` Set its password: @@ -34,19 +34,22 @@ Fetch the latest tagged version of Peertube ``` $ VERSION=$(curl -s https://api.github.com/repos/chocobozzz/peertube/releases/latest | grep tag_name | cut -d '"' -f 4) && echo "Latest Peertube version is $VERSION" ``` + Open the peertube directory, create a few required directories ``` - cd /home/peertube && sudo -u peertube mkdir config storage versions && cd versions +cd /var/www/peertube && sudo -u peertube mkdir config storage versions && cd versions ``` + Download the latest version of the Peertube client, unzip it and remove the zip ``` - sudo -u peertube wget -q "https://github.com/Chocobozzz/PeerTube/releases/download/${VERSION}/peertube-${VERSION}.zip" && \ - sudo -u peertube unzip peertube-${VERSION}.zip && sudo -u peertube rm peertube-${VERSION}.zip +sudo -u peertube wget -q "https://github.com/Chocobozzz/PeerTube/releases/download/${VERSION}/peertube-${VERSION}.zip" && \ +sudo -u peertube unzip peertube-${VERSION}.zip && sudo -u peertube rm peertube-${VERSION}.zip ``` + Install Peertube ``` - cd ../ && sudo -u peertube ln -s versions/peertube-${VERSION} ./peertube-latest && \ - cd ./peertube-latest && sudo -u peertube yarn install --production --pure-lockfile +cd ../ && sudo -u peertube ln -s versions/peertube-${VERSION} ./peertube-latest && \ +cd ./peertube-latest && sudo -u peertube yarn install --production --pure-lockfile ``` ### PeerTube configuration @@ -54,7 +57,7 @@ Install Peertube Copy example configuration: ``` -$ cd /home/peertube && sudo -u peertube cp peertube-latest/config/production.yaml.example config/production.yaml +$ cd /var/www/peertube && sudo -u peertube cp peertube-latest/config/production.yaml.example config/production.yaml ``` Then edit the `config/production.yaml` file according to your webserver @@ -65,7 +68,7 @@ configuration. Copy the nginx configuration template: ``` -$ sudo cp /home/peertube/peertube-latest/support/nginx/peertube /etc/nginx/sites-available/peertube +$ sudo cp /var/www/peertube/peertube-latest/support/nginx/peertube /etc/nginx/sites-available/peertube ``` Then modify the webserver configuration file. Please pay attention to the `alias` keys of the static locations. @@ -112,13 +115,13 @@ server { location ~ ^/client/(.*\.(js|css|woff2|otf|ttf|woff|eot))$ { add_header Cache-Control "public, max-age=31536000, immutable"; - alias /home/peertube/peertube-latest/client/dist/$1; + alias /var/www/peertube/peertube-latest/client/dist/$1; } location ~ ^/static/(thumbnails|avatars)/(.*)$ { add_header Cache-Control "public, max-age=31536000, immutable"; - alias /home/peertube/storage/$1/$2; + alias /var/www/peertube/storage/$1/$2; } location / { @@ -156,7 +159,7 @@ server { access_log off; } - alias /home/peertube/storage/videos; + alias /var/www/peertube/storage/videos; } # Websocket tracker @@ -187,7 +190,7 @@ $ sudo systemctl reload nginx Copy the nginx configuration template: ``` -$ sudo cp /home/peertube/peertube-latest/support/systemd/peertube.service /etc/systemd/system/ +$ sudo cp /var/www/peertube/peertube-latest/support/systemd/peertube.service /etc/systemd/system/ ``` Update the service file: @@ -206,11 +209,11 @@ After=network.target [Service] Type=simple Environment=NODE_ENV=production -Environment=NODE_CONFIG_DIR=/home/peertube/config +Environment=NODE_CONFIG_DIR=/var/www/peertube/config User=peertube Group=peertube ExecStart=/usr/bin/npm start -WorkingDirectory=/home/peertube/peertube-latest +WorkingDirectory=/var/www/peertube/peertube-latest StandardOutput=syslog StandardError=syslog SyslogIdentifier=peertube @@ -246,7 +249,7 @@ The administrator password is automatically generated and can be found in the logs. You can set another password with: ``` -$ cd /home/peertube/peertube-latest && NODE_CONFIG_DIR=/home/peertube/config NODE_ENV=production npm run reset-password -- -u root +$ cd /var/www/peertube/peertube-latest && NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run reset-password -- -u root ``` ## Upgrade @@ -255,21 +258,21 @@ Make a SQL backup: ``` $ SQL_BACKUP_PATH="backup/sql-peertube_prod-$(date -Im).bak" && \ - cd /home/peertube && sudo -u peertube mkdir -p backup && \ + cd /var/www/peertube && sudo -u peertube mkdir -p backup && \ sudo pg_dump -U peertube -W -h localhost -F c peertube_prod -f "$SQL_BACKUP_PATH" ``` Update your configuration file. **If some keys are missing, your upgraded PeerTube won't start!** ``` -$ diff <(curl -s https://raw.githubusercontent.com/Chocobozzz/PeerTube/develop/config/production.yaml.example) /home/peertube/config/production.yaml +$ diff <(curl -s https://raw.githubusercontent.com/Chocobozzz/PeerTube/develop/config/production.yaml.example) /var/www/peertube/config/production.yaml ``` Upgrade PeerTube: ``` $ VERSION=$(curl -s https://api.github.com/repos/chocobozzz/peertube/releases/latest | grep tag_name | cut -d '"' -f 4) && \ - cd /home/peertube/versions && \ + cd /var/www/peertube/versions && \ sudo -u peertube wget -q "https://github.com/Chocobozzz/PeerTube/releases/download/${VERSION}/peertube-${VERSION}.zip" && \ sudo -u peertube unzip -o peertube-${VERSION}.zip && sudo -u peertube rm peertube-${VERSION}.zip && \ cd ../ && sudo rm ./peertube-latest && sudo -u peertube ln -s versions/peertube-${VERSION} ./peertube-latest && \ @@ -281,7 +284,7 @@ Things went wrong? Change `peertube-latest` destination to the previous version ``` $ OLD_VERSION="v0.42.42" && SQL_BACKUP_PATH="backup/sql-peertube_prod-2018-01-19T10:18+01:00.bak" && \ - cd /home/peertube && rm ./peertube-latest && \ + cd /var/www/peertube && rm ./peertube-latest && \ sudo -u peertube ln -s "versions/peertube-$OLD_VERSION" peertube-latest && \ pg_restore -U peertube -c -d peertube_prod "$SQL_BACKUP_PATH" sudo systemctl restart peertube diff --git a/support/nginx/peertube b/support/nginx/peertube index 098818e57..5261cddb4 100644 --- a/support/nginx/peertube +++ b/support/nginx/peertube @@ -26,13 +26,13 @@ server { location ~ ^/client/(.*\.(js|css|woff2|otf|ttf|woff|eot))$ { add_header Cache-Control "public, max-age=31536000, immutable"; - alias /home/peertube/peertube-latest/client/dist/$1; + alias /var/www/peertube/peertube-latest/client/dist/$1; } location ~ ^/static/(thumbnails|avatars)/(.*)$ { add_header Cache-Control "public, max-age=31536000, immutable"; - alias /home/peertube/storage/$1/$2; + alias /var/www/peertube/storage/$1/$2; } location / { @@ -72,7 +72,7 @@ server { access_log off; } - alias /home/peertube/storage/videos; + alias /var/www/peertube/storage/videos; } # Websocket tracker diff --git a/support/systemd/peertube.service b/support/systemd/peertube.service index 03ead9fbd..047ce7e56 100644 --- a/support/systemd/peertube.service +++ b/support/systemd/peertube.service @@ -5,11 +5,11 @@ After=network.target [Service] Type=simple Environment=NODE_ENV=production -Environment=NODE_CONFIG_DIR=/home/peertube/config +Environment=NODE_CONFIG_DIR=/var/www/peertube/config User=peertube Group=peertube ExecStart=/usr/bin/npm start -WorkingDirectory=/home/peertube/peertube-latest +WorkingDirectory=/var/www/peertube/peertube-latest StandardOutput=syslog StandardError=syslog SyslogIdentifier=peertube -- 2.25.1