From 81cdf382ffab82357320b575533c784878d4b4c1 Mon Sep 17 00:00:00 2001 From: Rigel Kent Date: Sat, 22 Sep 2018 15:48:27 +0200 Subject: specify to run services before running PeerTube --- support/doc/dependencies.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/support/doc/dependencies.md b/support/doc/dependencies.md index 35812aa8b..94fabe11c 100644 --- a/support/doc/dependencies.md +++ b/support/doc/dependencies.md @@ -31,6 +31,11 @@ $ sudo apt-get update $ sudo apt install ffmpeg ``` +Now that dependencies are installed, before running PeerTube you should start PostgreSQL and Redis: +``` +$ sudo systemctl start redis postgresql +``` + ## Arch Linux 1. Run: @@ -39,6 +44,11 @@ $ sudo apt install ffmpeg $ sudo pacman -S nodejs yarn ffmpeg postgresql openssl redis git wget unzip python2 base-devel npm nginx ``` +Now that dependencies are installed, before running PeerTube you should start PostgreSQL and Redis: +``` +$ sudo systemctl start redis postgresql +``` + ## CentOS 7 1. Install NodeJS 8.x (current LTS): @@ -68,6 +78,12 @@ Later when you invoke any node command, please prefix them with `CC=/opt/rh/devt $ sudo -H -u peertube CC=/opt/rh/devtoolset-7/root/usr/bin/gcc CXX=/opt/rh/devtoolset-7/root/usr/bin/g++ yarn install --production --pure-lockfile ``` +Now that dependencies are installed, before running PeerTube you should start PostgreSQL and Redis: +``` +$ sudo service redis start +$ sudo service postgresql start +``` + ## FreeBSD On a fresh install of [FreeBSD](https://www.freebsd.org), new system or new jail: -- cgit v1.2.3 From 52b1ba03f401d062d8fe417dd82b4ecbc7dc58cb Mon Sep 17 00:00:00 2001 From: Rigel Kent Date: Sat, 22 Sep 2018 19:01:59 +0200 Subject: add chevron hotkeys to change playback rate --- client/src/assets/player/peertube-player.ts | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/client/src/assets/player/peertube-player.ts b/client/src/assets/player/peertube-player.ts index eca2ce6c3..5cea69eb8 100644 --- a/client/src/assets/player/peertube-player.ts +++ b/client/src/assets/player/peertube-player.ts @@ -69,7 +69,27 @@ function getVideojsOptions (options: { Object.assign(videojsOptions.plugins, { hotkeys: { enableVolumeScroll: false, - enableModifiersForNumbers: false + enableModifiersForNumbers: false, + customKeys: { + increasePlaybackRateKey: { + key: function (event) { + // use '>' + return event.which === 51 + }, + handler: function (player, options, event) { + player.playbackRate(player.playbackRate() + 0.1) + } + }, + decreasePlaybackRateKey: { + key: function (event) { + // use '<' + return event.which === 50 + }, + handler: function (player, options, event) { + player.playbackRate(player.playbackRate() - 0.1) + } + } + } } }) } -- cgit v1.2.3 From a43e21820da3ec9ece00dab9f1574c3f5f8d4d10 Mon Sep 17 00:00:00 2001 From: am97 Date: Sun, 23 Sep 2018 14:50:24 +0200 Subject: add warning about RAM to contributing guide (#1112) --- .github/CONTRIBUTING.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 6d095cc47..4b352922e 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -44,7 +44,9 @@ before you start working on them :). ### Prerequisites -First, make sure that you have followed +First, you should use a server or PC with at least 4GB of RAM. Less RAM may lead to crashes. + +Make sure that you have followed [the steps](/support/doc/dependencies.md) to install the dependencies. @@ -173,4 +175,4 @@ $ npm run mocha -- --exit --require ts-node/register/type-check --bail server/te ``` Instance configurations are in `config/test-{1,2,3,4,5,6}.yaml`. -Note that only instance 2 has transcoding enabled. \ No newline at end of file +Note that only instance 2 has transcoding enabled. -- cgit v1.2.3 From 0a314a99874716a0723fbc37b44dbdf2be59e589 Mon Sep 17 00:00:00 2001 From: am97 Date: Sun, 23 Sep 2018 15:14:15 +0200 Subject: add dependencies for Fedora (#1111) --- support/doc/dependencies.md | 68 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/support/doc/dependencies.md b/support/doc/dependencies.md index 94fabe11c..74a8b117e 100644 --- a/support/doc/dependencies.md +++ b/support/doc/dependencies.md @@ -84,6 +84,74 @@ $ sudo service redis start $ sudo service postgresql start ``` +## Fedora + +0. Upgrade your packages: +``` +dnf upgrade +``` +1. Add a user with sudoers group access: +``` +useradd my-peertube-user +passwd my-peertube-user +usermod my-peertube-user -a -G wheel # Add my-peertube-user to sudoers +su my-peertube-user +``` +2. (Optional) Install certbot (choose instructions for nginx and your distribution) : +[https://certbot.eff.org/all-instructions](https://certbot.eff.org/all-instructions) +3. Install NodeJS 8.x (current LTS): +[https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora](https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora) +4. Install yarn: +[https://yarnpkg.com/en/docs/install](https://yarnpkg.com/en/docs/install) +5. Enable [RPM Fusion](https://rpmfusion.org) for Fedora (available for x86, x86_64, armhfp) +``` +sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm +``` +This is necessary because `ffmpeg` is not in the Fedora repos. + +6. Run: +``` +sudo dnf install nginx ffmpeg postgresql-server postgresql-contrib openssl gcc-c++ make redis git +ffmpeg -version # Should be >= 3.x +g++ -v # Should be >= 5.x +``` +7. Post-installation + +_from [PostgreSQL documentation](https://www.postgresql.org/download/linux/redhat/):_ +> Due to policies for Red Hat family distributions, the PostgreSQL installation will not be enabled for automatic start or have the database initialized automatically. +``` +# PostgreSQL +sudo postgresql-setup initdb +sudo systemctl enable postgresql.service +sudo systemctl start postgresql.service +# Nginx +sudo systemctl enable nginx.service +sudo systemctl start nginx.service +# Redis +sudo systemctl enable redis.service +sudo systemctl start redis.service +``` +8. Firewall + +By default, you cannot acces your server via public IP. To do so, you must configure firewall: +``` +# Ports used by peertube dev setup +sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp +sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp +# Optional +sudo firewall-cmd --permanent --zone=public --add-service=http +sudo firewall-cmd --permanent --zone=public --add-service=https +# Reload firewall +sudo firewall-cmd --reload +``` +9. Configure max ports + +This is necessary if you are running dev setup, otherwise you will have errors with `nodemon` +``` +echo fs.inotify.max_user_watches=582222 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p +``` +[More info](https://stackoverflow.com/questions/34662574/node-js-getting-error-nodemon-internal-watch-failed-watch-enospc#34664097) + ## FreeBSD On a fresh install of [FreeBSD](https://www.freebsd.org), new system or new jail: -- cgit v1.2.3 From 923406990334d133a49a283629322d1bbb521ecc Mon Sep 17 00:00:00 2001 From: Rigel Kent Date: Sun, 23 Sep 2018 15:18:02 +0200 Subject: add TOC to dependencies guide --- support/doc/dependencies.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/support/doc/dependencies.md b/support/doc/dependencies.md index 74a8b117e..d98d71020 100644 --- a/support/doc/dependencies.md +++ b/support/doc/dependencies.md @@ -1,5 +1,20 @@ # Dependencies + + + + +- [Debian / Ubuntu and derivatives](#debian--ubuntu-and-derivatives) +- [Arch Linux](#arch-linux) +- [CentOS 7](#centos-7) +- [Fedora](#fedora) +- [FreeBSD](#freebsd) +- [macOS](#macos) +- [Gentoo](#gentoo) +- [Other distributions](#other-distributions) + + + ## Debian / Ubuntu and derivatives 1. On a fresh Debian/Ubuntu, as root user, install basic utility programs needed for the installation -- cgit v1.2.3 From ec769c89fdcbcaf2d15de8d211d3ede3b6f69c1a Mon Sep 17 00:00:00 2001 From: BO41 Date: Sun, 23 Sep 2018 16:37:48 +0200 Subject: add redirect after login (#1110) --- client/src/app/core/auth/auth.service.ts | 3 +++ client/src/app/core/routing/login-guard.service.ts | 2 ++ client/src/app/login/login.component.ts | 13 ++++++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/client/src/app/core/auth/auth.service.ts b/client/src/app/core/auth/auth.service.ts index 88ea89639..8ff5713a1 100644 --- a/client/src/app/core/auth/auth.service.ts +++ b/client/src/app/core/auth/auth.service.ts @@ -38,6 +38,7 @@ export class AuthService { loginChangedSource: Observable userInformationLoaded = new ReplaySubject(1) hotkeys: Hotkey[] + redirectUrl: string private clientId: string = peertubeLocalStorage.getItem(AuthService.LOCAL_STORAGE_OAUTH_CLIENT_KEYS.CLIENT_ID) private clientSecret: string = peertubeLocalStorage.getItem(AuthService.LOCAL_STORAGE_OAUTH_CLIENT_KEYS.CLIENT_SECRET) @@ -177,6 +178,8 @@ export class AuthService { this.setStatus(AuthStatus.LoggedOut) this.hotkeysService.remove(this.hotkeys) + + this.redirectUrl = null } refreshAccessToken () { diff --git a/client/src/app/core/routing/login-guard.service.ts b/client/src/app/core/routing/login-guard.service.ts index 18bc41ca6..40ff8f505 100644 --- a/client/src/app/core/routing/login-guard.service.ts +++ b/client/src/app/core/routing/login-guard.service.ts @@ -20,6 +20,8 @@ export class LoginGuard implements CanActivate, CanActivateChild { canActivate (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { if (this.auth.isLoggedIn() === true) return true + this.auth.redirectUrl = state.url + this.router.navigate([ '/login' ]) return false } diff --git a/client/src/app/login/login.component.ts b/client/src/app/login/login.component.ts index 4bae3ae5c..7553e6456 100644 --- a/client/src/app/login/login.component.ts +++ b/client/src/app/login/login.component.ts @@ -8,6 +8,7 @@ import { I18n } from '@ngx-translate/i18n-polyfill' import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service' import { LoginValidatorsService } from '@app/shared/forms/form-validators/login-validators.service' import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap' +import { Router } from '@angular/router' @Component({ selector: 'my-login', @@ -26,6 +27,7 @@ export class LoginComponent extends FormReactive implements OnInit { private openedForgotPasswordModal: NgbModalRef constructor ( + public router: Router, protected formValidatorService: FormValidatorService, private modalService: NgbModal, private loginValidatorsService: LoginValidatorsService, @@ -59,7 +61,7 @@ export class LoginComponent extends FormReactive implements OnInit { this.authService.login(username, password) .subscribe( - () => this.redirectService.redirectToHomepage(), + () => this.redirect(), err => { if (err.message.indexOf('credentials are invalid') !== -1) this.error = this.i18n('Incorrect username or password.') @@ -69,6 +71,15 @@ export class LoginComponent extends FormReactive implements OnInit { ) } + redirect () { + const redirect = this.authService.redirectUrl + if (redirect) { + this.router.navigate([ redirect ]) + } else { + this.redirectService.redirectToHomepage() + } + } + askResetPassword () { this.userService.askResetPassword(this.forgotPasswordEmail) .subscribe( -- cgit v1.2.3 From bc144e16ce5924e2f840e4df4099d8ea7b56edc4 Mon Sep 17 00:00:00 2001 From: Rigel Kent Date: Sun, 23 Sep 2018 18:33:53 +0200 Subject: append my-help popover to body instead of parent object --- client/src/app/shared/misc/help.component.html | 1 + 1 file changed, 1 insertion(+) diff --git a/client/src/app/shared/misc/help.component.html b/client/src/app/shared/misc/help.component.html index 5b3ddde1d..28ccb1e26 100644 --- a/client/src/app/shared/misc/help.component.html +++ b/client/src/app/shared/misc/help.component.html @@ -15,6 +15,7 @@ Date: Sun, 23 Sep 2018 19:43:41 +0200 Subject: add url field to download modal --- .../modal/video-download.component.html | 18 ++++++++++++++---- .../modal/video-download.component.scss | 8 +++++++- .../+video-watch/modal/video-download.component.ts | 21 +++++++++++++++++---- 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/client/src/app/videos/+video-watch/modal/video-download.component.html b/client/src/app/videos/+video-watch/modal/video-download.component.html index edd054123..f46f92a17 100644 --- a/client/src/app/videos/+video-watch/modal/video-download.component.html +++ b/client/src/app/videos/+video-watch/modal/video-download.component.html @@ -5,10 +5,20 @@