Konto und Sicherheit
Roastgate steuert deinen Webserver, und sein Container ist privilegiert mit pid: host: Wer Roastgate kontrolliert, ist in der Praxis root auf dem Host. Schütze es entsprechend.
Passwort
Verwende ein langes, einzigartiges Passwort. Es wird unter Settings → Change the password geändert (das aktuelle Passwort ist erforderlich).
Eine Passwortänderung beendet alle offenen Sitzungen auf allen Geräten innerhalb von 30 Sekunden. Das ist auch die Antwort auf eine gestohlene Sitzung.
Vergessen? Siehe Passwort vergessen.
Zwei-Faktor-Authentifizierung
Klicke unter Settings → Two-factor authentication auf Set up two-factor authentication.

- Scanne den QR-Code mit einer Authenticator-App (Aegis, Google Authenticator, 1Password, Bitwarden …). Scannen nicht möglich? Gib den darunter angezeigten Schlüssel ein.
- Gib den 6-stelligen Code aus der App ein und klicke auf Turn on two-factor authentication.
- Speichere jetzt die zehn Wiederherstellungscodes: Sie werden nur einmal angezeigt. Jeder davon meldet dich einmal an, falls du dein Handy verlierst.

Die Anmeldung hat dann zwei Schritte: Der Code wird erst nach einem korrekten Passwort abgefragt.
- Ein Code kann nur einmal verwendet werden, und eine Zeitabweichung von einem Schritt (30 s) wird toleriert.
- Fünf falsche Codes beenden den Versuch, und die Client-Adresse wird nach fünf Fehlversuchen gesperrt.
- Get new recovery codes ersetzt die alten Codes (mit einem Code aus der App bestätigen).
- Turn it off erfordert dein Passwort und einen Code (oder einen Wiederherstellungscode).
Das Ein- oder Ausschalten der Zwei-Faktor-Authentifizierung beendet alle Sitzungen, auch die aktuelle: Du meldest dich mit dem neuen Schritt erneut an.
Passkeys
Ein Passkey meldet dich per Fingerabdruck, Gesicht, Geräte-PIN oder Sicherheitsschlüssel an. Klicke unter Settings → Passkeys auf Add a passkey, gib ihm einen Namen (laptop, phone …), bestätige mit deinem Passwort und folge deinem Browser.

Ein Passkey funktioniert auf zwei Arten:
- Allein: Klicke auf der Anmeldeseite auf Sign in with a passkey, ganz ohne Passwort.
- Als zweiter Schritt nach dem Passwort, anstelle des Authentifizierungscodes.
Nach dem Passwort fragt Roastgate immer nach einem Passkey (oder einem Code, wenn die Zwei-Faktor-Authentifizierung aktiv ist).
- Ein Passkey funktioniert nur auf der Adresse, auf der er erstellt wurde:
127.0.0.1oder die Domain deines HTTPS-Server-Blocks. Browser erlauben Passkeys nur auflocalhost/127.0.0.1oder über HTTPS, eine reinehttp://-Domain funktioniert also nicht. - Die Liste zeigt, wann jeder Passkey hinzugefügt und zuletzt verwendet wurde.
- Remove fragt nach deinem Passwort und beendet alle offenen Sitzungen.
Handy, Wiederherstellungscodes und Passkeys verloren? Siehe Durch Zwei-Faktor-Authentifizierung ausgesperrt.
Zugriff auf Roastgate über nginx
Standardmäßig ist Roastgate nur über einen SSH-Tunnel erreichbar. Um es ohne Tunnel im Browser zu öffnen, stelle es hinter dein nginx, mit Roastgate selbst:
- Erstelle eine Whitelist mit deinen eigenen Adressen.
- Erstelle einen Reverse Proxy, zum Beispiel
roastgate.example.com:- Forward to:
http://127.0.0.1:8181 - Support WebSockets: an (die Oberfläche braucht sie)
- Access: deine Whitelist ankreuzen
- Let the Let's Encrypt validation through: an
- Forward to:
- Beziehe ein Zertifikat für die Domain, öffne dann den Proxy erneut und schalte HTTPS und Redirect HTTP to HTTPS ein.
- Aktiviere in
docker-compose.ymlbeide Variablen und starte mitdocker compose up -dneu:
environment:
ROASTGATE_SECURE_COOKIES: "true"
ROASTGATE_TRUST_FORWARDED_HEADERS: "true"
Lass das Port-Mapping auf 127.0.0.1:8181: Dann kann nur dein nginx die Forwarded-Header senden, und die Anmeldebegrenzung sowie die Whitelists sehen deine echte Adresse.
Aktiviere ROASTGATE_TRUST_FORWARDED_HEADERS niemals, wenn Port 8181 direkt von anderen erreichbar ist: Sie könnten ihre Adresse fälschen.
Sitzungen und Daten
- Das Sitzungscookie ist
HttpOnlyundSameSite=Strict, und mitROASTGATE_SECURE_COOKIES=trueauchSecure. - Offene Browser-Tabs werden alle 30 Sekunden erneut geprüft, sodass eine beendete Sitzung schnell endet.
- Das Volume
/dataenthält die Datenbank und die Schlüssel, die die Sitzungscookies verschlüsseln. Unter Linux werden diese Schlüssel unverschlüsselt gespeichert: Mach das Volume nur für root lesbar.
Eine Sicherheitslücke melden
Eröffne kein öffentliches Issue. Melde sie vertraulich über GitHubs private Meldung von Sicherheitslücken, wie in der Sicherheitsrichtlinie beschrieben.