Versuchsdurchführung
Versuch 1 - Plex
Vorbereitung
- System: Debian GNU/Linux auf universitätsinterner VM
- Software: Plex Media Server
- Ziel: Aufsetzen eines Plex Media Servers für Filme und Serien, der im universitätsinternen Netzwerk verfügbar ist
- Voraussetzungen: SSH-Zugang zur VM, Root- oder sudo-Rechte
Durchführung
1. Repository hinzufügen und Plex installieren
# Benötigte Pakete installierensudo apt updatesudo apt install apt-transport-https ca-certificates curl gnupg
# Plex Repository-Schlüssel hinzufügencurl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add -
# Plex Repository hinzufügenecho "deb https://downloads.plex.tv/repo/deb public main" | sudo tee /etc/apt/sources.list.d/plexmediaserver.list
# Plex Media Server installierensudo apt updatesudo apt install plexmediaserver
2. Firewall konfigurieren
# Standard Plex-Port (32400) freigebensudo ufw allow 32400/tcp
3. Medienverzeichnis einrichten
# Verzeichnis für Medien erstellensudo mkdir -p /opt/plexmedia/{movies,series}sudo chown -R plex:plex /opt/plexmedia
4. Plex-Server Status prüfen
sudo systemctl status plexmediaserver
5. Erstzugriff und Konfiguration
- Im Browser aufrufen:
http://<VM-IP-Adresse>:32400/web
- Anmeldung mit Plex-Account
- Medienbibliotheken einrichten:
- ”+” Symbol klicken
- Bibliothekstyp wählen (Filme/Serien)
- Verzeichnisse hinzufügen (/opt/plexmedia/movies bzw. /opt/plexmedia/series)
Ergebnisse
- Plex Media Server läuft erfolgreich auf der VM
- Server ist im Universitätsnetzwerk über Port 32400 erreichbar
- Medienbibliotheken für Filme und Serien wurden eingerichtet
- Streaming funktioniert im internen Netzwerk
Probleme
- Zugriffsbeschränkung: Der Server ist nur im Universitätsnetzwerk erreichbar, was aber dem gewünschten Verhalten entspricht. Um auch von außen darauf zuzugreifen, kann z. B. PiVPN eingesetzt werden. Voraussetzung: statische IP-Adresse oder DynDNS.
- Speicherplatz: Je nach zugewiesenem VM-Speicherplatz muss die Medienbibliothek entsprechend organisiert werden
- Metadaten-Downloads: Initial kann das Laden von Metadaten (Poster, Beschreibungen etc.) einige Zeit in Anspruch nehmen
Hinweise zur Nutzung:
- Regelmäßige Updates über
sudo apt update && sudo apt upgrade
durchführen - Medien in die entsprechenden Verzeichnisse mit korrekter Namenskonvention ablegen
- Regelmäßige Überprüfung des Speicherplatzes mit
df -h
Hinzufügen eigener Medien
Eigene Medien können auf zwei Arten zum Plex-Server hinzugefügt werden:
-
Direktes Kopieren in die Medienverzeichnisse:
Terminal window # Für Filmescp meinfilm.mp4 user@<server-ip>:/opt/plexmedia/movies/# Für Serienscp meineserie-s01e01.mp4 user@<server-ip>:/opt/plexmedia/series/ -
Über SFTP/FTP-Client (z.B. FileZilla):
- Verbindung zum Server herstellen
- Dateien in die entsprechenden Verzeichnisse
/opt/plexmedia/movies
oder/opt/plexmedia/series
hochladen
Wichtige Hinweise zur Medienbibliothek:
- Filme sollten eindeutige Namen haben, idealerweise im Format:
Filmtitel (Jahr).mp4
- Serien sollten in einer klaren Struktur organisiert sein:
/opt/plexmedia/series/Serienname/└── Season 01/├── SerienName - s01e01.mp4├── SerienName - s01e02.mp4└── ...
- Unterstützte Videoformate: MP4, MKV, AVI, etc.
- Nach dem Hinzufügen neuer Medien: “Bibliothek scannen” in der Plex-Weboberfläche ausführen
- Ausreichend Speicherplatz auf dem Server sicherstellen (
df -h
zur Überprüfung)
Versuch 2 - Forgejo
Vorbereitung
- Verwendete Hardware: Raspberry Pi 3B, Netzteil, LAN-Kabel
- Betriebssystem: Raspberry Pi OS Lite (64-bit)
- Vorinstalliert:
git
,git-lfs
- Ziel: Self-Hosting von Forgejo auf einem Raspberry PI.
Durchführung
1. Forgejo-Binary herunterladen
Forgejo-Binary für entsprechende Architektur herunterladen (prüfbar mit uname -m
). Beim Raspberry Pi handelt es sich typischerweise um arm64. Beispiel für Version 11.0.0 für arm64:
wget https://codeberg.org/forgejo/forgejo/releases/download/v11.0.0/forgejo-11.0.0-linux-arm64chmod +x forgejo-11.0.0-linux-arm64
Die Binary nach /usr/local/bin/
verschieben und ausführbar machen:
sudo cp forgejo-x.y.z-linux-amd64 /usr/local/bin/forgejosudo chmod 755 /usr/local/bin/forgejo
2. Git user erstellen
Git Benutzer erstellen, welcher von Forgejo genutzt wird:
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' \ --group --disabled-password --home /home/git git
3. Verzeichnisse erstellen
Datenverzeichnis: Hier speichert Forgejo u.a. Git-Repositories:
sudo mkdir /var/lib/forgejosudo chown git:git /var/lib/forgejo && sudo chmod 750 /var/lib/forgejo
Konfigurationsverzeichnis: Enthält z. B. app.ini
. Dieses Verzeichnis muss nur beim ersten Start beschreibbar für Forgejo sein.
sudo mkdir /etc/forgejosudo chown root:git /etc/forgejo && sudo chmod 770 /etc/forgejo
4. Systemd Service für Forgejo installieren
Forgejo Service-Datei herunterladen:
sudo wget -O /etc/systemd/system/forgejo.service https://codeberg.org/forgejo/forgejo/raw/branch/forgejo/contrib/systemd/forgejo.service
Service aktivieren und starten:
sudo systemctl enable forgejo.servicesudo systemctl start forgejo.service
Ergebnisse
Forgejo sollte nun im lokalen Netzwerk über Port 3000 erreichbar sein:
http://<rpi-ip>:3000
Beim ersten Aufruf erscheint die Initialkonfiguration, die dich durch die wichtigsten Einstellungen führt, darunter:
- Datenbanktyp (SQLite, MySQL, PostgreSQL)
- Administrator-Zugangsdaten
- Server Domain
Danach ist Forgejo einsatzbereit.
Probleme
-
Nur im lokalen Netzwerk erreichbar: Um auch von außen darauf zuzugreifen, kann z. B. PiVPN eingesetzt werden. Voraussetzung: statische IP-Adresse oder DynDNS.
-
SQLite als Datenbank: Die Standardinstallation verwendet SQLite, was bei vielen Nutzern oder hoher Last schnell an Grenzen stoßen kann. Lösung: Einsatz einer robusteren Datenbank wie MySQL/MariaDB oder PostgreSQL.
-
Server-Claiming Probleme: Der Claiming-Prozess kann fehlschlagen, wenn die Preferences.xml nicht korrekt konfiguriert ist. Lösung:
- Claim-Token über curl-Befehl abrufen:
curl -X POST -H "X-Plex-Client-Identifier: {MACHINE-ID}" \"https://plex.tv/api/claim/exchange?token={CLAIM-TOKEN}"
- Aus der XML-Antwort den
authenticationToken
extrahieren - Preferences.xml manuell aktualisieren mit:
- PlexOnlineMail
- PlexOnlineUsername
- PlexOnlineToken (= authenticationToken)
- Korrekte IP-Adresse in allowedNetworks und customConnections
- Berechtigungen korrigieren und Plex neustarten:
sudo chown plex:plex /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Preferences.xmlsudo systemctl restart plexmediaserver
Versuch 3 - Pi-hole
Vorbereitung

Ziel dieses Versuchs ist die Einrichtung und Analyse von Pi-hole als DNS-basiertes Werbeblockiersystem im lokalen Netzwerk. Pi-hole soll auf einem Raspberry Pi installiert und anschließend über das Webinterface konfiguriert und ausgewertet werden. Der Fokus liegt auf der Integration von Blocklisten sowie der Beobachtung und Analyse der DNS-Abfragen im Netzwerk.
Zur Durchführung wurde ein Raspberry Pi 3B+ mit Raspberry Pi OS Lite verwendet. Die Netzwerkverbindung erfolgte per Ethernet. Der Zugriff auf das System erfolgte über SSH.
Durchführung
Zunächst wurde das Betriebssystem Raspberry Pi OS Lite mithilfe des Raspberry Pi Imagers auf eine microSD-Karte übertragen. Um den SSH-Zugriff beim ersten Start zu ermöglichen, wurde eine leere Datei mit dem Namen „ssh“ in die Boot-Partition der microSD-Karte gelegt. Nach dem Start des Raspberry Pi wurde per SSH über die IP-Adresse des Geräts zugegriffen. Anschließend wurde das System mit dem Befehl sudo apt update && sudo apt upgrade -y
aktualisiert.
Die Installation von Pi-hole erfolgte über das offizielle Installationsscript mit dem Befehl curl -sSL https://install.pi-hole.net | bash
. Während der Installation wurden die Ethernet-Verbindung als Netzwerkadapter und die vorgeschlagene statische IP-Adresse übernommen. Als Upstream-DNS-Server wurde Quad9 ausgewählt. Die Weboberfläche wurde aktiviert, die Telemetrie deaktiviert und nach Abschluss der Installation ein Zugangspasswort für das Webinterface erstellt.
Der Zugriff auf das Webinterface erfolgte anschließend über http://<IP-Adresse-des-RaspberryPi>/admin
.

Zur Einrichtung der Filterfunktionen wurden im Menüpunkt „Groups > Adlists“ zwei Blocklisten hinzugefügt: die bekannte StevenBlack-Hosts-Datei (https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts) sowie eine zusätzliche Liste von r0xd4n3t (https://raw.githubusercontent.com/r0xd4n3t/pihole-adblock-lists/main/pihole_adlists.txt). Die Liste von StevenBlack basiert auf einer Zusammenführung mehrerer seriöser Quellen und ist auf GitHub frei verfügbar, wo sie regelmäßig gepflegt und aktualisiert wird. Beide Listen wurden aktiviert und der Kategorie „Ads“ zugewiesen. Nach dem Aktualisieren der Listen zeigte die Statusanzeige insgesamt 1.684.842 eingetragene Domains.

Im nächsten Schritt wurde das Query Log geöffnet, um den DNS-Verkehr im Netzwerk zu analysieren. Dabei wurde deutlich, dass DNS-Anfragen erfolgreich durch Pi-hole verarbeitet wurden. Ein Großteil der Anfragen wurde über den internen Cache beantwortet. Zum Zeitpunkt der Analyse war das Blockieren von Domains deaktiviert, wodurch keine Anfragen blockiert wurden. Erst nach manueller Aktivierung des Blockings werden Anfragen an bekannte Werbe- und Tracking-Domains unterbunden.
Ergebnisse
Pi-hole wurde erfolgreich auf dem Raspberry Pi installiert und über das Webinterface konfiguriert. Nach manueller Aktivierung der Blockfunktion zeigte das System eine funktionierende Filterung an. Im Dashboard wurden bereits nach kürzester Zeit 74 DNS-Anfragen registriert, von denen 17 blockiert wurden. Dies entspricht einer Blockrate von 23 %. Insgesamt waren zum Zeitpunkt der Analyse 1.684.842 Domains über die aktivierten Blocklisten erfasst.

Die Weboberfläche lieferte eine übersichtliche grafische Darstellung der Gesamtanfragen, der Blockrate, der verwendeten Upstream-DNS-Server sowie der aufgeteilten Anfragetypen. Die Filterung durch die hinterlegten Listen funktionierte wie vorgesehen.
Probleme
Pi-hole war nach der Installation betriebsbereit, jedoch war die Blockfunktion standardmäßig deaktiviert. Ohne manuelle Aktivierung findet keine Filterung statt, was im Webinterface nicht besonders hervorgehoben wird. Bei einem unbeaufsichtigten Betrieb kann dies dazu führen, dass Pi-hole zwar Anfragen verarbeitet, aber keine Schutzwirkung entfaltet. Weitere potenzielle Probleme können durch eine fehlerhafte Konfiguration der statischen IP-Adresse oder die Auswahl eines ungeeigneten Upstream-DNS-Servers entstehen. Diese können die Funktionalität einschränken oder eine Umgehung der Filterlogik ermöglichen.
Versuch 4 - Rallly
Rally ist eine Open-Source Webanwendung, mit der man ganz einfach Termine ausmachen kann.
Vorbereitung
- Docker auf VPS installieren
- docker-compose.yml ziehen mit
git clone https://github.com/lukevella/rallly-selfhosted.git
Durchführung
- Die Umgebungsvariablen in
config.env
bearbeiten docker compose up
ausführen
Ergebnisse
Nun können ganz einfach Umfragen erstellt werden um Termine mit mehreren Personen auszumachen :)