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.
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 🙂
Pingback:PeerTube - Videos auf extra Maschinen rendern (peertube-runner) - Hoerli.NET
Hallo Hoerli,
ich habe alle Schritte nachvollzogen und PeerTube auf einem lokalen Rechner installier(t wollen). Ich würde das gerne in die Medienbildung meiner Schule als lokale Instanz integrieren.
Ich bekomme dann aber Probleme beim root login: ‚invalid client‘. Beim Laden der Seite erscheint unten ein Fenster: „Cannot retrieve OAuth Client credentials“.
Auf einer Seite wurde vorgeschlagen, dass in oauth-clients.js die Zeilen mit req.get(‚host‘) auszukommentieren. Danach kann ich mich einloggen und alles fühlt sich richtig an. Ich kann Videos hochladen, leider kann ffmeg diese in PeerTube nicht abspielen. Wenn ich das in einer Shell mache, spielt es das Video aber ab?
Sind das zwei unabhängige Fehler? Was mache ich falsch? Ich habe es unter Ubuntu 22.04 sowie Debian 12 nun probiert, beides mal identisch.
Über Hilfe würde ich mich freuen.
Die Didaktik der Tutorials ist sehr gut!
Grüße, RReichle
Hi!
Den Fehler kenne ich nur, wenn du PeerTube mit einer Domain (z.B. peertube.domain.com) eingerichtet hast und nun per IP-Adresse versuchst dich einzuloggen.
PeerTube ist scheinbar so Programmieert, dass der Zugriff nur z.B. via Domain sauber läuft.
Bei mir läuft PeerTube ebenfalls mit Debian 12 und wurde vor 2 Monaten frisch installiert.
Fehler – auch in der Anleitung – konnte ich keine finden.