So hosten Sie Ihr eigenes Youtube mit Peertube

So hosten Sie Ihr eigenes Youtube mit Peertube

Peertube ist eine föderierte Open-Source-Video-Hosting-Plattform, die Sie von Ihrem eigenen Computer aus ausführen können. Damit können Sie alle Inhalte, die Sie hosten und von Ihrer Website aus teilen, vollständig kontrollieren. Dieses Tutorial zeigt Ihnen, wie Sie Peertube auf Ubuntu installieren und hosten.

Warum Peertube hosten und verwenden?

Eine der attraktivsten Funktionen von Peertube ist die Möglichkeit, Videos von anderen Instanzen zu laden, wodurch es möglich wird, Inhalte von außerhalb Ihrer Website anzuzeigen, aber dennoch die Kontrolle über Ihre Daten zu behalten.

Ein Screenshot eines Webbrowsers, der eine Peertube-Seite zeigt, auf der ein Remote-Video abgespielt wird.

Ein weiterer Vorteil von Peertube gegenüber Youtube ist, dass es vollständig Open Source ist. (Erfahren Sie hier alles über Open-Source-Lizenzen.) Dies erleichtert es jedem, die Codebasis des Programms zu überprüfen, was für Benutzer hilfreich sein kann, die sich Sorgen um ihre Datensicherheit machen.

Peertube installieren

Bevor Sie Peertube installieren können, müssen Sie sicherstellen, dass Sie einen Server bereit haben. Dies kann Ihr persönlicher PC oder ein gemieteter Server eines Webhosters sein. Dieses Tutorial wurde auf einem Ubuntu VPS von Digitalocean durchgeführt.

Ein Abschnitt einer Digitalocean-Seite, der das Peertube-Tröpfchen zeigt.
  • Erstellen Sie ein neues Benutzerkonto für Peertube. Auf diese Weise können Sie einfach steuern, was das Programm in Ihrem System tun kann:

sudo useradd -b /bin/bash -m -d /var/www/peertube -G sudo peertube
sudo passwd peertube

Ein Terminalfenster, das den Benutzererstellungsprozess für Peertube zeigt.

Beim Erstellen eines neuen Benutzerkontos können Sie die $HOMEVariable auch unter „/var/www/“ setzen. Dies ist wichtig, da das Web-Backend für Peertube die standardmäßige „/home“-Hierarchie nicht durchqueren kann.

  • Wechseln Sie zu Ihrem neuen Benutzerkonto mit dem Befehl:

su peertube

  • Installieren Sie die Abhängigkeiten für Peertube:

sudo apt install cron wget curl unzip python3-dev python-is-python3 certbot nginx python3-certbot-nginx ffmpeg postgresql postgresql-contrib openssl g++ make redis-server git

Ein Terminalfenster, das den Installationsprozess für die Abhängigkeiten von Peertube zeigt.
  • Installieren Sie NodeJS auf Ihrem Computer:

curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt updatesudo apt install nodejs

Ein Terminalfenster, das den Installationsprozess für NodeJS zeigt.
  • Garn installieren. Dies ist eine leistungsstarke und dennoch leichte Paketverwaltung für NodeJS:

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main"| sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt updatesudo apt install yarn

Ein Terminalfenster, das den Installationsvorgang für Yarn zeigt.
  • Nachdem Sie alle Abhängigkeiten für Peertube installiert haben, konfigurieren Sie Ihr System, um das Programm zu installieren. Aktivieren Sie zunächst das Datenbank-Backend des Programms:

sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo systemctl enable redis-server
sudo systemctl start redis-server

Ein Terminalfenster mit SystemD-Befehlen zum Aktivieren von PostgreSQL.
  • Fügen Sie Ihren Peertube-Benutzer zu PostgreSQL hinzu, indem Sie die folgenden Befehle ausführen:

cd $HOMEsudo usermod -aG peertube postgres
sudo -u postgres createuser -P peertube

  • Erstellen Sie die Datenbank für das Programm, indem Sie die folgenden Befehle ausführen:

sudo -u postgres createdb -O peertube -E UTF8 -T template0 peertube_run
sudo -u postgres psql -c "CREATE EXTENSION pg_trgm;"peertube_run
sudo -u postgres psql -c "CREATE EXTENSION unaccent;"peertube_run

Ein Terminalfenster, das die Datenbankerstellung in PostgreSQL zeigt.
  • Erstellen Sie die Verzeichnisstruktur des Programms in Ihrem Home-Verzeichnis:

mkdir config storage versions
chmod 750. /config

Installieren Sie Peertube Linux 12 Erstellen Sie eine Peertube-Verzeichnisstruktur
  • Laden Sie die Peertube-Binärdateien herunter:

cd. /versions
wget https://github.com/Chocobozzz/PeerTube/releases/download/v5.0.1/peertube-v5.0.1.zip
unzip peertube-v5.0.1.zip
cd. /..

Ein Terminalfenster, das den Entpackvorgang für Peertube zeigt.
  • Erstellen Sie einen symbolischen Link zwischen Ihrer Installation und Ihrem Home-Verzeichnis:

ln -s /var/www/peertube/versions/peertube-v5.0.1 /var/www/peertube/peertube-latest

Ein Terminalfenster, das die Erstellung symbolischer Links für Peertube zeigt.
  • Installieren Sie Peertube mit dem folgenden Yarn-Befehl:

cd. /peertube-latest
yarn install --production --pure-lockfile

Ein Terminalfenster, das die Peertube-Installation über Yarn zeigt.

Konfiguration von Nginx und SSL

Standardmäßig öffnet Peertube seinen Internetdienst auf Port 9000. Während Sie von dort aus auf das Programm zugreifen können, empfiehlt es sich, einen Reverse-Proxy zwischen dem Programm und einem bekannten Port zu erstellen.

Die Entwickler des Programms haben eine Vorlagendatei erstellt, mit der Sie Ihren eigenen Reverse-Proxy erstellen können, indem Sie den folgenden Befehl ausführen:

sudo cp /var/www/peertube/peertube-latest/support/nginx/peertube /etc/nginx/sites-available/peertube
sudo rm /etc/nginx/sites-enabled/default

Ein Terminalfenster, das einen Kopierbefehl von Peertube nach Nginx zeigt.

Konfigurieren Sie Ihre neue Vorlagendatei, indem Sie sie mit einem Texteditor öffnen:

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

Ein Terminalfenster mit der Vorlagendatei für Peertube.

Ändern Sie darin jede Instanz dieser beiden Variablen: ${WEBSERVER_HOST}und ${PEERTUBE_HOST}.

  • Ersetzen Sie für die ${WEBSERVER_HOST}durch den FQDN Ihres Computers.
  • Ersetzen Sie in der Zwischenzeit ${PEERTUBE_HOST}durch „127.0.0.1:9000“.
Ein Terminalfenster mit einer geänderten Vorlagendatei.

Drücken Sie Ctrl+ Ound dann Ctrl+ X, um Ihre Datei auf der Festplatte zu speichern und den Texteditor zu verlassen.

Aktivieren Sie die Peertube Nginx-Konfigurationsdatei und starten Sie Nginx neu.

sudo ln -s /etc/nginx/sites-available/peertube /etc/nginx/sites-enabled/
sudo systemctl reload nginx

Erstellen Ihres SSL-Zertifikats

Wir erhalten ein neues SSL-Zertifikat mit dem kostenlosen Dienstprogramm Certbot von Let’s Encrypt. (Sie können auch ein Wildcard-SSL-Zertifikat erstellen, wenn Sie beabsichtigen, es auf mehreren (Sub-)Domains zu verwenden.)

sudo certbot

Certbot scannt Ihre Nginx-Konfiguration und zeigt die Liste der auf Ihrem Server gehosteten Domänen an. Geben Sie die Nummer neben der Domain ein, für die Sie ein neues SSL-Zertifikat erhalten möchten.

Sobald das SSL-Zertifikat ausgestellt ist, aktualisiert certbot Ihre Nginx-Konfigurationsdatei automatisch mit dem richtigen Eintrag. Sie müssen nur Ihre Nginx-Konfiguration neu laden, um sicherzustellen, dass alles gut läuft.

sudo systemctl reload nginx

Konfigurieren und Ausführen von Peertube

  • Wenn sowohl Ihr Nginx-Server als auch Ihr SSL-Zertifikat fertig sind, können Sie jetzt Ihre Peertube-Instanz konfigurieren. Sie können eine Vorlage verwenden, die die Entwickler erstellt haben, um diesen Prozess zu optimieren. Führen Sie die folgenden Befehle aus:

cd $HOMEcp /var/www/peertube/peertube-latest/config/default.yaml /var/www/peertube/config/default.yaml
cp /var/www/peertube/peertube-latest/config/production.yaml.example /var/www/peertube/config/production.yaml

Ein Terminalfenster, das sowohl die Standard- als auch die Produktionskonfigurationsdateien anzeigt.
  • Öffnen Sie die Datei „production.yaml“ in einem Texteditor:

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

  • Ändern Sie die hostname:Variable in den FQDN Ihres Computers:
Ein Abschnitt eines Terminalfensters, der eine geänderte Hostnamenvariable zeigt.
  • Generieren Sie mit dem folgenden Befehl ein zufälliges Geheimnis für Ihre Instanz:

openssl rand -hex 32

Ein Terminalfenster, das eine zufällig generierte Zeichenkette zeigt.

Gehen Sie zurück zu Ihrer Datei „production.yaml“ und fügen Sie Ihr zufälliges Geheimnis neben der peertube:Variablen ein.

Ein Abschnitt eines Terminalfensters, der das Geheimnis in der Konfigurationsdatei anzeigt.
  • Suchen Sie nach dem database:Block. Ändern Sie den suffix:Block in „_run“.
Ein Abschnitt eines Terminalfensters, der eine modifizierte Suffix-Variable zeigt.
  • Ändern Sie die password:Variable in das Passwort Ihres Datenbankkontos.
Ein Terminalabschnitt, der eine modifizierte Passwortvariable zeigt.
  • Gehen Sie zum smtp:Block und suchen Sie die hostname:Variable. Ändern Sie das in den Hostnamen Ihres Mailservers. Ändern Sie auch die Variablen username:und password:in die Anmeldeinformationen Ihres E-Mail-Kontos.
Ein Abschnitt eines Terminals, der die Anmeldeinformationen für mein Peertube-E-Mail-Konto anzeigt.
  • Ersetzen Sie die from_address:Variable durch die E-Mail-Adresse Ihres E-Mail-Kontos.
Ein Abschnitt eines Terminalfensters, der eine geänderte Von-Adresse anzeigt.

Wenn Sie mit den Änderungen fertig sind, drücken Sie Ctrl+ o, um die Datei zu speichern, und Ctrl+ x, um die Datei zu verlassen.

Erstellen einer Peertube-Dienstdatei

Damit Peertube beim Start automatisch ausgeführt wird, erstellen wir eine systemd-Dienstdatei für Peertube.

  • Führen Sie den folgenden Befehl aus, um die systemd-Vorlagendatei auf das System zu kopieren:

sudo cp /var/www/peertube/peertube-latest/support/systemd/peertube.service /etc/systemd/system/

Ein Terminalfenster, in dem die Vorlagendienstdatei angezeigt wird, die auf das System kopiert wird.
  • Laden Sie systemd neu, um Ihre neue Servicedatei anzuwenden.

sudo systemctl daemon-reload
sudo systemctl enable peertube
sudo systemctl start peertube

Ein Terminalfenster, das anzeigt, dass Peertube gerade läuft.

Mit Peertube

Wenn alles richtig konfiguriert ist, sollten Sie von Ihrem eigenen Domainnamen aus auf Peertube zugreifen können.

Ein Browser-Screenshot, der den ersten Lauf einer Peertube-Instanz zeigt.

Standardmäßig erstellt jede neue Peertube-Instanz ein Root-Konto, das Sie als Administrator der Site verwenden können. Führen Sie dazu den folgenden Befehl aus:

sudo journalctl -u peertube | grep "User password:"

Ein Terminalfenster, das das zufällig generierte Passwort für diese Instanz anzeigt.

Gehen Sie zurück zu Ihrer Peertube-Website und klicken Sie auf die Schaltfläche „Anmelden“ in der oberen linken Ecke der Seite. Schreiben Sie „root“ als Ihren Benutzernamen und fügen Sie sein Passwort ein.

Ein Screenshot eines Webbrowsers, der die Anmeldeseite für Peertube zeigt.

Peertube begrüßt Sie mit einer kurzen Nachricht, die Links zur Dokumentation des Programms enthält.

Ein Screenshot eines Webbrowsers, der die anfängliche Anmeldenachricht für Peertube zeigt.

Nachdem Sie den Inhalt der Nachricht überprüft haben, drücken Sie X in der oberen rechten Ecke des Fensters, um mit der Verwendung Ihrer Peertube-Website zu beginnen.

Ein Screenshot eines Webbrowsers, der das Peertube-Dashboard zeigt.

Häufig gestellte Fragen

Kann man Peertube ohne Domainnamen nutzen?

Nein. Peertube erfordert, dass Sie ein gültiges SSL-Zertifikat in Ihrer Instanz haben. Es ist zwar möglich, ein eigenes SSL-Zertifikat ohne Domainnamen zu erstellen, aber dadurch wird Ihre Website für andere Benutzer unsicher.

Kann ich die default.yaml-Datei kopieren, während ich Peertube konfiguriere?

Peertube ist für einige seiner Kerneinstellungen von der Datei „default.yaml“ abhängig. Ohne die „default.yaml“-Datei wird Ihre Instanz höchstwahrscheinlich unzugänglich machen.

Warum erhalte ich eine leere Seite, wenn ich meine Peertube-Website öffne?

Dieses Problem ist höchstwahrscheinlich auf ein Berechtigungsproblem mit Ihrem Root-Peertube-Verzeichnis zurückzuführen. Standardmäßig erfordert Nginx, dass jeder Webordner sowie sein Stammverzeichnis weltweit lesbar sind.

Sie können dieses Problem beheben, indem Sie den folgenden Befehl ausführen: sudo chmod 755 /var/www/peertube.

Bildnachweis: Unsplash . Alle Änderungen und Screenshots von Ramces Red.

Schreibe einen Kommentar

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