PeerTube installieren (Linux-Server)

Dies ist eine Anleitung, um PeerTube auf deinem Linux Server zu installieren.
Diese Anleitung wurde für Linux Ubuntu 16.04 ausgelegt und funktioniert auch mit den üblichen Debian-Distributionen.
Es sind in der Regel alle Befehle und Pakete enthalten, damit auch bei der kleinsten Distribution alles installiert wird, was benötigt wird.

Empfehlung: Installiere PeerTube auf einem neuen System, damit alles problemlos läuft. Solltest du PeerTube auf einem schon laufenden Server mit diversen Diensten installieren möchten, musst du ggf. einige Konfigurationen ändern.

HINWEIS: PeerTube ist noch in der Entwicklung und es kann sich immer etwas ändern. So kann auch die Installationsroutine verändert werden und damit die Anleitung ungültig machen!
Diese Anleitung ist sehr Rudimentär. Es wird nicht genauer auf diverse Schritte oder Konfigurationsmöglichkeiten eingegangen.

Benötigt wird:
– CPU: Minimum 2 CPU-Kerne (mehr ist immer besser und wer Qualitätsoptionen zur Verfügung stellen möchte, braucht definitiv mehr!)
– RAM: 4GB RAM, besser sind 8GB oder 16GB
– Speicher: Ganz viel Speicher 🙂 (Ich empfehle SSD’s für die Plattform selbst und Cache-Verzeichnisse. Videos können auf eine HDD)
– Eine gute Netzwerkanbindung
– Ein Linux-Server (Debian oder Ubuntu empfohlen)
– Ein schon existierenden Mailserver (Ein Mailprovider wie Google, GMX, Web.de, Telekom, … geht auch.)
– Etwas Verständis für ein Linux-System (Basis-Wissen für die Bedienung deines Systems)
– Optional aber Empfohlen: Eine Firewall, welche alle Ports bis auf 80 und 443 blockt (nginx)

Hinweis: Bei einem Proxmox LXC muss “Nesting” aktiv sein, ansonsten lässt sich PeerTube nicht korrekt starten, weil redis nicht läuft!

Was werden wir machen?
– Wir legen ein Benutzer namens “PeerTube” an und legen sein Homeverzeichnis nach /var/www/peertube
– Wir installieren einen Webserver mit nginx
– Wir installieren peertube mit allen benötigten Erweiterungen mit der notwendigsten Konfiguration
– Die Registration auf deiner PeerTube-Instanz bleibt vorerst deaktiviert (Kann im Webinterface geändert werden)


Los gehts!






1. Server aktualisieren:

 

# apt update && apt upgrade

2. Benötigte Software Installieren:

 

# apt install screen mc vim htop curl sudo unzip nano iftop apt-transport-https build-essential nginx ffmpeg postgresql openssl g++ make redis-server git npm
# sudo apt-get install software-properties-common
# sudo add-apt-repository ppa:certbot/certbot
# sudo apt-get update
# sudo apt-get install python-certbot-nginx 

3. NodeJS installieren

# curl -sL https://deb.nodesource.com/setup_20.x | bash -
# apt-get install -y nodejs

4. Yarn installieren

# curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
# echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
# apt-get update && sudo apt-get install yarn

5. PeerTube als Nutzer anlegen

# useradd -m -d /var/www/peertube -s /bin/bash -p peertube peertube
# passwd peertube

6. PostgreSQL Nutzer anlegen und Passwort vergeben

# sudo -u postgres createuser -P peertube
# sudo -u postgres createdb -O peertube peertube_prod
# sudo -u postgres psql -c "CREATE EXTENSION pg_trgm;" peertube_prod
# sudo -u postgres psql -c "CREATE EXTENSION unaccent;" peertube_prod

7. PeerTube installieren

# 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"
# cd /var/www/peertube && sudo -u peertube mkdir config storage versions && cd versions
# 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
# cd ../ && sudo -u peertube ln -s versions/peertube-${VERSION} ./peertube-latest
# cd ./peertube-latest && sudo -H -u peertube yarn install --production –pure-lockfile
# cd /var/www/peertube && sudo -u peertube cp peertube-latest/config/production.yaml.example config/production.yaml

8. PeerTube konfigurieren

# nano /var/www/peertube/config/production.yaml

>> Bei “listen” und dort “hostname”, localhost durch 127.0.0.1 oder 0.0.0.0 ersetzen (ansonsten endet es in 502 bei nginx)
>> Bei “webserver” den hostname: auf die Domain abändern (z.B. peertube.hoerli.net)
>> Bei password: ‘PasswortAusPostgreSqlInstallation’ das Kennwort anpassen
>> Es muss ein gültiger Mailserver angegeben werden und auf die Verschlüsselung geachtet werden.

BEISPIEL:

  hostname: dein.mailserver.com
port: 465 # If you use StartTLS: 587
username: [email protected]
password: SuperSicheresPasswort
tls: true # If you use StartTLS: false
disable_starttls: false
ca_file: null # Used for self signed certificates
from_address: '[email protected]'

Transcoding einstellen (kann später im Webinterface geändert werden):

transcoding:
enabled: true
threads: 2
resolutions: # Only created if the original video has a higher resolution, uses mo$
240p: false
360p: false
480p: false
720p: false
1080p: false

Um so mehr CPU-Kerne beim Parameter “threads” angegeben werden, umso schneller werden Transcoding-Jobs ausgeführt, bremmst aber den Server etwas mehr aus.

9. Nginx anpassen

# sudo cp /var/www/peertube/peertube-latest/support/nginx/peertube /etc/nginx/sites-available/peertube
# sudo ln -s /etc/nginx/sites-available/peertube /etc/nginx/sites-enabled/peertube
# sudo systemctl stop nginx
# nano /etc/nginx/sites-available/peertube

>> SSL-Zertifikat auskommentieren
>> hostname anpassen
>> Log-Pfade anpassen

10. Lets Encrypt Zertifikat erstellen

# sudo certbot --authenticator standalone --installer nginx --post-hook "systemctl start nginx"

11. Zertifikat in Nginx anpassen

# nano /etc/nginx/sites-available/peertube

>> Zertifikat entweder mit rein nehmen und die neu erstellten Zeilen löschen, oder es so belassen. Dieser Schritt ist optional.

# sudo systemctl start nginx

12. SystemD einstellen

# sudo cp /var/www/peertube/peertube-latest/support/systemd/peertube.service /etc/systemd/system/
# sudo systemctl daemon-reload

13. PeerTube starten

# sudo systemctl start peertube
# sudo journalctl -feu peertube

14. Im Log nach dem Root-Login suchen

# nano /var/www/peertube/storage/logs/peertube.log

Nutzername: Username: root
Passwort: User password:

Nun kann getestet werden, ob dein PeerTube funktioniert!
Rufe dazu einfach die eingestellte Domain auf und logge dich mit den Zugangsdaten aus dem Log ein.
Sollten Fehler auftreten, können diese aus dem Log angeschaut werden.

13. Firewall nutzen

Ich empfehle eine Firewall zu nutzen, damit nur Notwendige Ports nach außen freigegeben sind.
Für unseren Fall sind nur zwei Ports notwendig. Wer Livestreams nutzen möchte, braucht noch einen mehr.
Port 80 = Für alle die per HTTP anfragen und dann automatisch auf HTTPS weitergeleitet werden.
Port 443 = Für den allgemeinen HTTPS-Zugriff
Port 1935 = Für die Livestream-Funktion. Darüber ist der Server für z.B. OBS Studio erreichbar.
Alles andere wird intern verarbeitet und muss / sollte von außen nicht erreichbar sein.

Der schnellste Weg ist alles mit ufw dich zu machen.

# sudo apt install ufw -y

Wir setzen nun noch folgende Befehle ab, die die notwendigsten Ports freigeben und ufw aktivieren:

#ufw allow 22/any comment 'SSH'
# ufw allow 80/any comment 'HTTP'
# ufw allow 443/any comment 'HTTPS'
# ufw allow 1935/any comment 'RTMP'
# ufw enable

 

Diese Anleitung wurde anhand zweier Anleitungen erstellt.
– Original Anleitung von Chocobozzz
– Anleitung von RockstarNinja

 


Updates installieren

Updates können sehr einfach installiert werden. Dazu gibts fertige Scripte.

1. Lege ein Backup deiner aktuellen Installation an! (Kein Backup, kein Mitleid!)
2. Führe das Update-Script aus:

# cd /var/www/peertube/peertube-latest/scripts && sudo -H -u peertube ./upgrade.sh

3. Starte PeerTube neu:

# sudo systemctl restart peertube

Fertig 🙂

Hinweis: Hast du Modifikationen an PeerTube selbst vorgenommen, musst du diese ggf. erneut durchführen oder aktualisieren.


10.10.2019 Befehle aktualisiert
20.12.2021 Befehle und diverse Links aktualisiert und mit Debian 10 erfolgreich getestet
03.10.2023 Informationen zu Updates ergänzt.
09.03.2024 Befehle aktualisiert und Hinweis ergänzt.

3 Kommentare

  1. Hallo,

    ich laufe bei dem Schritt auf Fehler. sudo apt-get install python-certbot-nginx
    Das kommt die Meldung AttributeError: ‘NoneType’ object has no attribute ‘people’
    Somit klappt der Rest auch nicht.

    Kannst Du helfen?

    Danke

    • Ich habe keine Ahnung welche Distribution du verwendest, aber es sollte das python-Modul für den Certbot in der Regel in den offiziellen Paketquellen zur verfügung stehen.
      Tut es das nicht, musst du dich leider selbst darum kümmern, die korrekten Paketquellen hinzuzufügen.
      Eine einfache Internetsuche hilft da weiter 🙂

  2. Pingback:PeerTube - Videos auf extra Maschinen rendern (peertube-runner) - Hoerli.NET

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.