Zum Inhalt

Fernzugriff und HTTPS

Zu Hause ist Evey unter einer Adresse wie http://192.168.1.20:9091 erreichbar. Um von unterwegs zu schauen, brauchen Sie zwei weitere Dinge:

  • Eine öffentliche Adresse, zum Beispiel https://evey.example.org: einen Domainnamen, der zu Ihnen nach Hause führt.
  • HTTPS, damit Passwörter und Videos verschlüsselt durch das Internet gehen. Evey macht HTTPS nicht selbst. Das übernimmt ein Reverse Proxy: ein kleines Programm vor Evey, das die sichere Verbindung herstellt und jede Anfrage an Evey weiterreicht.

Diese Seite zeigt, wie Sie den Server veröffentlichen, und danach, was jede Einstellung bewirkt.

Den Server in drei Schritten veröffentlichen

  1. Richten Sie einen Reverse Proxy ein, der HTTPS übernimmt und alles an Eveys Port 9091 weiterleitet. Sie können die Caddy-Einrichtung nehmen, die mit Evey kommt, oder einen Proxy, den Sie schon betreiben. Fertige Einrichtungen: Reverse-Proxy-Konfigurationen.
  2. Teilen Sie es Evey mit, unter Verwaltung → Fernzugriff:
    • Externe URL: Ihre öffentliche https://-Adresse.
    • Vertrauenswürdige Proxys (IP oder CIDR, kommagetrennt): nur wenn der Proxy in einem anderen Container läuft. Tragen Sie dort sein Netz ein, zum Beispiel 172.16.0.0/12 für die Standardnetze von Docker.
  3. Das ist alles. Sobald der Server eine öffentliche Adresse hat, öffnet er den Fernzugriff von selbst.

Zur Kontrolle führen Sie docker exec evey-server evey admin doctor aus. Der Befehl zeigt die verwendeten vertrauenswürdigen Proxys und warnt, wenn ein veröffentlichter Server Leute von außen abweist.

Der Fernzugriff ergibt sich aus der öffentlichen Adresse

Solange Sie nicht selbst entscheiden, entscheidet Evey beim Start:

  • Der Server hat eine öffentliche Adresse (Externe URL oder die Variablen EVEY_SERVER_BASE_URL oder EVEY_REMOTE_ACCESS_EXTERNAL_URL): Der Fernzugriff ist an.
  • Er hat keine: Der Fernzugriff ist aus. Nur Geräte in Ihrem Heimnetz können sich verbinden.

Sobald Sie Fernzugriff aktivieren selbst umschalten, behält Evey Ihre Wahl und entscheidet nicht mehr für Sie. Ein veröffentlichter Server kann also auf Wunsch nur zu Hause erreichbar bleiben.

Der Fernzugriff entscheidet nur, wer den Server erreichen kann. Er ist für sich allein kein Schutz: Jede Seite verlangt trotzdem eine Anmeldung.

Ist der Fernzugriff aus, wird jemand außerhalb Ihres Zuhauses auf jeder Seite abgewiesen (ein Fehler 403). Die Apps zeigen dann Fernzugriff deaktiviert statt eines unklaren Fehlers. Ist der Server aus dem Internet erreichbar, während der Fernzugriff aus ist, warnt Evey Sie an mehreren Stellen:

  • Verwaltung → Fernzugriff zeigt Alle entfernten Nutzer sind ausgesperrt;
  • das Serverprotokoll meldet es beim Start und protokolliert danach jede Abweisung mit der Adresse, von der sie kam;
  • evey admin doctor meldet es als Fehler.

Einstellungen

Alle unter Verwaltung → Fernzugriff. Jede Einstellung gilt ohne Neustart: Netzwerkeinstellungen ab der nächsten Anfrage, die Bitrate ab der nächsten Wiedergabe.

Verwaltung → Fernzugriff mit einer HTTPS-Adresse als Externe URL und einem vertrauenswürdigen Proxy
Ein Server, veröffentlicht unter einer https://-Adresse hinter einem Proxy im Docker-Netz (Oberfläche auf Englisch).
Einstellung Was sie bewirkt
Fernzugriff aktivieren An: Leute außerhalb Ihres Heimnetzes können sich wie alle anderen verbinden. Aus: Sie werden abgewiesen (403).
Externe URL Ihre öffentliche Adresse. Links in E-Mails, Single Sign-on und das Streamen auf andere Geräte (Casting) nutzen sie. Eine https://-Adresse schaltet außerdem den HTTPS-Modus ein (siehe unten).
Vertrauenswürdige Proxys (IP oder CIDR, kommagetrennt) Die Reverse Proxys, deren Angabe zum tatsächlichen Besucher Evey übernimmt. Der Rechner selbst (Loopback) ist immer vertrauenswürdig. Leer: Die Liste kommt aus EVEY_TRUSTED_PROXIES.
LAN-Netzwerke (CIDR, kommagetrennt) Die Adressbereiche, die Evey als „zu Hause“ behandelt. Private Bereiche sind standardmäßig eingetragen. Nutzen Sie ein VPN (Tailscale, WireGuard) und sollen dessen Nutzer als zu Hause gelten, tragen Sie seinen Bereich hier ein.
Max. Remote-Bitrate (Kbps, 0 = unbegrenzt) Eine Qualitätsgrenze für Leute außerhalb Ihres Heimnetzes. Eine private Adresse wird nie begrenzt. Legt Verwaltung → Transkodierung ebenfalls eine Grenze für entfernte Zuschauer fest, gilt die niedrigere. Siehe Wie über die Wiedergabe entschieden wird.

Was Evey über den Proxy wissen muss

Evey antwortet mit einfachem HTTP auf Port 9091. Der Reverse Proxy übernimmt HTTPS. Evey muss zwei Dinge über ihn wissen, beide unter Verwaltung → Fernzugriff:

  • Externe URL mit https://. Daran erkennt Evey, dass ein Proxy HTTPS übernimmt. Evey schützt dann seine Anmelde-Cookies (Flag Secure), sagt Browsern, immer HTTPS zu benutzen (HSTS), und übernimmt den Header X-Forwarded-Proto eines vertrauenswürdigen Proxys.
  • Die vertrauenswürdigen Proxys, wenn der Proxy nicht auf demselben Rechner wie Evey läuft. Für einen Proxy in einem anderen Container gehört hier sein Netz hin, zum Beispiel 172.16.0.0/12 für die Standardnetze von Docker.

Ein Bereich, der alle Adressen abdeckt, wird abgelehnt

0.0.0.0/0 oder ::/0 als vertrauenswürdiger Proxy würde jedem Besucher erlauben, eine beliebige Herkunftsadresse vorzutäuschen. Der Verwaltungsbereich und evey admin doctor lehnen das beide ab. Tragen Sie stattdessen die eigene Adresse oder das Netz des Proxys ein.

Stattdessen in der Umgebung einstellen

Die Variablen EVEY_SERVER_BASE_URL und EVEY_TRUSTED_PROXIES tun dasselbe aus der Compose-Datei heraus. Das passt zu einer Einrichtung, die ganz in Dateien geschrieben ist, oder zu einem Server, der schon beim allerersten Start über HTTPS antworten muss.

Ist beides gesetzt, hat der Verwaltungsbereich Vorrang. Eine https://-Adresse als Externe URL schaltet den HTTPS-Modus ein, auch wenn die Basis-URL einfaches HTTP ist, und eine gespeicherte Proxy-Liste ersetzt die Variable. Leeren Sie das Feld, um die Entscheidung wieder der Variable zu überlassen. Siehe Server und Netzwerk.

Die echte Adresse des Clients

Damit der Fernzugriff und die Qualitätsgrenze für unterwegs funktionieren, muss Evey die echte Adresse jedes Besuchers sehen. Zwei Einstellungen arbeiten zusammen:

  1. Die vertrauenswürdigen Proxys legen fest, von wem Evey die Angabe zur echten Adresse des Besuchers übernimmt.
  2. Die LAN-Netzwerke entscheiden dann, ob diese Adresse „zu Hause“ oder „unterwegs“ ist.

Gibt der Proxy die echte Adresse nicht weiter, oder vertraut Evey ihm nicht, scheint jede Anfrage von der eigenen privaten Adresse des Proxys zu kommen. Dann gelten alle als zu Hause: Die Einstellung für den Fernzugriff hat keine Wirkung, und keine Grenze für unterwegs greift.

Wer den Proxy korrigiert, ändert, wer als unterwegs gilt

War der Fernzugriff aus, werden Leute von außen abgewiesen, sobald der Proxy ihre echte Adresse weitergibt. Führen Sie nach jeder Änderung an den Proxy-Einstellungen evey admin doctor aus: Der Befehl zeigt die verwendete Liste und woher sie kommt, warnt vor einem öffentlichen Bereich und schlägt bei einem Bereich fehl, der alle Adressen abdeckt.