Der Passbox-Server wird über Umgebungsvariablen konfiguriert. Jede Einstellung gibt es auch als Kommandozeilenoption. In der Docker-Compose-Installation tragen Sie Variablen im Abschnitt environment des Dienstes passbox ein. Einige setzt die Compose-Datei schon aus .env.
Alle Einstellungen
Grundlagen und Datenbank
| Variable | Standard | Bedeutung |
|---|---|---|
PASSBOX_BIND | 0.0.0.0:8080 | Adresse und Port, auf denen der Server lauscht |
PASSBOX_DATABASE_URL | Pflicht | PostgreSQL-URL der Rolle passbox_app |
PASSBOX_MIGRATION_DATABASE_URL | wie PASSBOX_DATABASE_URL | URL der Rolle passbox_migrator für Migrationen |
PASSBOX_WORKER_DATABASE_URL | wie PASSBOX_DATABASE_URL | URL der Rolle passbox_worker für Hintergrundaufgaben |
PASSBOX_DATABASE_MAX_CONNECTIONS | 10 | Verbindungen pro Pool |
PASSBOX_AUTO_MIGRATE | true | Migrationen beim Start ausführen. false, wenn Sie passbox-server migrate vor dem Ausrollen selbst starten |
PASSBOX_PUBLIC_URL | leer | Adresse, unter der Ihre Nutzer Passbox öffnen. Nötig für Links in E-Mails und für Single Sign-on |
PASSBOX_WEB_DIR | leer | Ordner mit der Web-App. Das Docker-Image setzt ihn |
PASSBOX_TRUST_PROXY | false | Client-IP aus X-Forwarded-For lesen. Nur hinter einem Reverse Proxy einschalten, der den Header setzt |
PASSBOX_AUTH_RATE_LIMIT | 60 | Anfragen zur Anmeldung und Registrierung pro IP und Minute |
PASSBOX_METRICS_BIND | leer | Adresse für Prometheus-Metriken, etwa 127.0.0.1:9090. Nur im internen Netz |
PASSBOX_LOG_FORMAT | pretty | pretty oder json |
RUST_LOG | info | Umfang der Protokollausgabe, etwa debug |
E-Mail und Administration
| Variable | Standard | Bedeutung |
|---|---|---|
PASSBOX_SMTP_URL | leer | SMTP-Server für ausgehende E-Mails. Ohne ihn landen E-Mails nur im Protokoll |
PASSBOX_CAMELMAILER_API_KEY | leer | Statt SMTP: Versand über die API eines Camelmailer-Servers |
PASSBOX_CAMELMAILER_URL | https://app.camelmailer.com | Adresse einer eigenen Camelmailer-Installation |
PASSBOX_MAIL_FROM | leer | Absender, etwa Passbox <passbox@example.com>. Pflicht, sobald E-Mail eingerichtet ist |
PASSBOX_ADMIN_EMAILS | leer | E-Mail-Adressen mit Komma getrennt, deren Konten den Server immer verwalten dürfen |
Funktionen und Grenzen
| Variable | Standard | Bedeutung |
|---|---|---|
PASSBOX_ICONS | on | Website-Icons über den Server laden. off schaltet das ab |
PASSBOX_BREACH_PROXY | on | Leak-Prüfung der Passwörter über den Server leiten |
PASSBOX_BREACH_CATALOG | on | Öffentliche Liste der Datenlecks laden. off für Server ohne Internet |
PASSBOX_BREACH_CATALOG_HOURS | 6 | Stunden zwischen zwei Abrufen dieser Liste |
PASSBOX_HIBP_API_KEY | leer | API-Schlüssel von Have I Been Pwned. Schaltet die Leak-Überwachung für E-Mail-Adressen ein |
PASSBOX_HIBP_CHECK_HOURS | 24 | Stunden zwischen zwei Prüfungen jeder überwachten Adresse |
PASSBOX_HIBP_RPM | 10 | Anfragen pro Minute, die Ihr Abo bei Have I Been Pwned erlaubt |
PASSBOX_BLOB_DIR | blobs, im Image /data/blobs | Ordner für verschlüsselte Dateianhänge. Zusammen mit der Datenbank sichern |
PASSBOX_ATTACHMENT_MAX_MB | 100 | Größte Datei in MiB |
PASSBOX_ATTACHMENT_QUOTA_MB | 0 | Speicher für Anhänge pro Konto in MiB, 0 heißt unbegrenzt |
PASSBOX_ORG_ATTACHMENT_QUOTA_MB | 0 | Speicher für Anhänge pro Organisation in MiB, 0 heißt unbegrenzt |
PASSBOX_FAMILY_MEMBER_LIMIT | 0 | Höchstzahl an Personen pro Familie ohne Gäste, 0 heißt unbegrenzt |
PASSBOX_AGENT_LIMIT_PER_MEMBER | 0 | Aktive Dienstkonten pro Mitglied, 0 heißt unbegrenzt. In der Administration überschreibbar |
PASSBOX_WEBHOOK_ALLOW_PRIVATE | false | Webhooks von Organisationen auch an private Adressen und über http erlauben, etwa für ein SIEM im eigenen Netz |
PASSBOX_SSO_ALLOW_HTTP_LOOPBACK | leer | 1 erlaubt Identitätsanbieter über http auf localhost. Nur für Tests |
Eine ungültige SMTP-URL oder ein ungültiger Absender verhindern den Start. So fallen Tippfehler sofort auf.
Passbox verschickt Einladungen und Sicherheitshinweise: Anmeldung auf einem neuen Gerät, geändertes Master-Passwort, Änderungen an der Zwei-Faktor-Anmeldung, Wiederherstellungen, Notfallzugang und Leak-Warnungen. E-Mails gehen auf Deutsch oder Englisch hinaus, in der Sprache, die die Person in Passbox gewählt hat.
Den SMTP-Server geben Sie als URL an:
| Beispiel | Verbindung |
|---|---|
smtps://benutzer:passwort@mail.example.com:465 | TLS von Anfang an |
smtp://benutzer:passwort@mail.example.com:587?tls=required | STARTTLS, verpflichtend |
smtp://benutzer:passwort@mail.example.com:587?tls=opportunistic | STARTTLS, falls angeboten (nicht empfohlen) |
smtp://localhost:25 | Ohne Verschlüsselung, nur für ein Relay auf demselben Host |
Sonderzeichen in Benutzername und Passwort schreiben Sie prozentkodiert, etwa @ als %40:
PASSBOX_SMTP_URL='smtps://passbox%40example.com:app-passwort@smtp.example.com:465'
PASSBOX_MAIL_FROM='Passbox <passbox@example.com>'
PASSBOX_PUBLIC_URL='https://passbox.example.com'E-Mails laufen über eine Warteschlange in der Datenbank. Anfragen warten nie auf den Mailserver, und E-Mails überstehen Neustarts. Vorübergehende Fehler wiederholt Passbox etwa vier Stunden lang. In der Administration sehen Sie wartende und fehlgeschlagene E-Mails und senden mit Testmail senden eine Probe.
Statt SMTP können Sie mit PASSBOX_CAMELMAILER_API_KEY über die API eines Camelmailer-Servers ab Version 0.12 versenden.
Single Sign-on
Für Single Sign-on und SCIM setzen Sie PASSBOX_PUBLIC_URL auf die Adresse, unter der Ihre Nutzer Passbox öffnen. Der Identitätsanbieter schickt Nutzer an {PASSBOX_PUBLIC_URL}/api/v1/sso/callback zurück. SCIM liegt unter {PASSBOX_PUBLIC_URL}/api/v1/scim/v2. Der Server muss den Anbieter über https erreichen.
Die Einrichtung in Passbox und die Anleitungen für Entra ID, Google, Okta, Keycloak, authentik und ZITADEL stehen unter Single Sign-on und SCIM.
Website-Icons
Die Icons von rund 3.500 bekannten Websites sind in den Apps enthalten. Für alle anderen fragen die Apps Ihren Server, nie die Website selbst. Der Server holt das Icon einmal, speichert es für alle und prüft es nach 30 Tagen erneut.
- Speicher: etwa 10 KB pro Website, die nicht in den Apps enthalten ist. 10.000 verschiedene Websites belegen rund 100 MB.
- Datenschutz: Ihr Server erfährt die Domains, die nicht in den Apps enthalten sind. Der Speicher der Icons enthält kein Konto und keine Sitzung, und das Protokoll zeigt keine Domains. Die Websites sehen nur die IP-Adresse des Servers, einmal pro Website.
- Verbindungen: nur Port 443 öffentlicher Adressen, höchstens drei Weiterleitungen, drei Sekunden Zeitlimit, höchstens 200 KB.
Mit PASSBOX_ICONS=off schalten Sie das ab. Die Apps zeigen dann Anfangsbuchstaben.
Leak-Prüfung und Have I Been Pwned
- Geleakte Passwörter (
PASSBOX_BREACH_PROXY, an): Die Apps schicken die ersten fünf Zeichen eines Hashwerts an Ihren Server. Er fragt Have I Been Pwned und gibt die Antwort weiter. Have I Been Pwned sieht nur die IP-Adresse Ihres Servers. Kein Schlüssel nötig. - Websites mit Datenleck (
PASSBOX_BREACH_CATALOG, an): Der Server lädt alle sechs Stunden die öffentliche Liste der Datenlecks. Die Apps vergleichen sie auf dem Gerät. Ohne Internet setzen Sieoff, dann nutzen die Apps die mitgelieferte Liste. - Leak-Überwachung für E-Mail-Adressen (
PASSBOX_HIBP_API_KEY): braucht ein Abo bei Have I Been Pwned und eingerichtete E-Mail. Nutzer bestätigen ihre Adressen per Code, der Server prüft sie regelmäßig und schreibt bei neuen Lecks.
Dateianhänge
Anhänge liegen verschlüsselt im Ordner PASSBOX_BLOB_DIR, in Docker im Volume passbox-blobs. Sichern Sie diesen Ordner zusammen mit der Datenbank. Ein Speicher über S3 ist nicht eingebaut. Wenn Sie Objektspeicher brauchen, binden Sie ihn als Dateisystem ein.
Zugriff von anderen Adressen
Die API beantwortet Anfragen von jedem Ursprung (CORS). Das braucht die Desktop-App. Es ist sicher, weil Passbox jede Anfrage mit einem Token im Header prüft und keine Cookies nutzt. Setzt Ihr Reverse Proxy eigene CORS-Header, entfernen Sie diese.