Produktionshinweise#
Einige wichtige Punkte, wenn Sie Seurch für echte Benutzer betreiben.
Das Image#
- Stellt die App mit gunicorn (2 Worker) auf Port 8000 bereit.
- Stellt eigene statische Dateien über WhiteNoise bereit, komprimiert und gehasht, sodass Sie keinen separaten statischen Dateiserver oder CDN benötigen.
- Kompiliert Übersetzungskataloge und sammelt statische Dateien zur Build-Zeit.
- Führt Datenbank-Migrationen beim Start aus.
Reverse-Proxy und TLS#
Stellen Sie einen TLS-terminierenden Reverse-Proxy davor (Caddy, nginx, Traefik, …) und leiten Sie an Port 8000 weiter. Setzen Sie:
ALLOWED_HOSTSauf Ihre öffentlichen Hostnamen.DEBUG=False(der Standard); betreiben Sie nie eine öffentliche Instanz mit aktiviertem Debug.- Einen langen, zufälligen
SECRET_KEY.
Gesundheitsprüfung#
Die App antwortet auf eine Gesundheitsprüfung unter /up (gibt Erfolg zurück, wenn die App läuft). Zeigen Sie den Liveness/Readiness-Probe Ihres Orchestrators oder Ihren Load-Balancer dorthin.
GET /up → 200 OKDatenbank#
Verwenden Sie ein verwaltetes oder selbst gehostetes PostgreSQL und setzen Sie DATABASE_URL. Dies ist die einzige zustandsbehaftete Komponente; die Anwendung selbst ist zustandslos. Sichern Sie PostgreSQL und Sie haben die Instanz gesichert. Benutzereinstellungen, benutzerdefinierte Bangs, blockierte Websites, API-Schlüssel und Anbieter-Status-Zeilen leben alle dort.
E-Mail#
Konfigurieren Sie die EMAIL_*-Variablen, damit Passwort-Reset-E-Mails gesendet werden können; siehe Benutzer & Zugang. Wenn Sie kein SMTP betreiben, erstellen und setzen Sie Passwörter stattdessen mit Verwaltungsbefehlen zurück.
Rechtliches / Fußzeilen-Links#
Keine Datenschutzrichtlinie, Nutzungsbedingungen oder rechtliche Hinweise werden standardmäßig geliefert; ihr Inhalt hängt davon ab, wer die Instanz betreibt und der lokalen Rechtsordnung. Fügen Sie Ihre eigenen mit FOOTER_LINKS hinzu:
FOOTER_LINKS=Datenschutz=https://example.com/privacy,Impressum=https://example.com/impressumSiehe Konfiguration → Fußzeilen-Links.
Skalierung#
Seurch ist eine Standard-zustandslose Django-App, sodass Sie mehrere App-Container hinter Ihrem Proxy betreiben können, die alle auf dasselbe PostgreSQL zeigen. Führen Sie die geplanten Wartungsbefehle von einem einzigen Ort aus (einem Cron-Host oder einer geplanten Aufgabe), nicht auf jeder Instanz.
Bilder-Proxy und ausgehender Datenverkehr#
Wenn Benutzer das Bilder-Proxy aktivieren, werden Vorschaubilder über den Server abgerufen; berücksichtigen Sie diesen ausgehenden Datenverkehr. Alle Anbieteraufrufe sind ausgehendes HTTPS vom Server; wenn Sie hinter einer Zulassungsliste sind, sehen Sie die Anbieter-Hosts.