Schnellstart#
Der schnellste Weg zu einer laufenden Instanz ist das Docker-Image. Sie benötigen eine PostgreSQL-Datenbank und mindestens einen Brave Search API-Schlüssel.
Mit Docker#
docker run -p 8000:8000 \
-e SECRET_KEY=ihr-langer-zufaelliger-schluessel \
-e DATABASE_URL=postgres://benutzer:passwort@db-host:5432/seurch \
-e ALLOWED_HOSTS=search.example.com \
-e BRAVE_API_KEY=ihr-brave-schluessel \
-e BRAVE_SUGGEST_API_KEY=ihr-brave-suggest-schluessel \
-e MARGINALIA_API_KEY=public \
seurchBeim Start:
- Wendet Datenbank-Migrationen an (kein Vorgang, wenn das Schema aktuell ist).
- Stellt die App mit gunicorn (2 Worker) auf Port 8000 bereit.
- Stellt eigene statische Dateien über WhiteNoise bereit (komprimiert und gehasht), kein separater Webserver oder CDN erforderlich.
- Antwortet auf eine Gesundheitsprüfung unter
/up.
Die Übersetzungskataloge und statischen Dateien werden beim Build kompiliert, sodass nichts weiteres gestartet werden muss.
Stellen Sie einen TLS-terminierenden Reverse-Proxy (Caddy, nginx, Traefik, …) vor Port 8000 und setzen Sie ALLOWED_HOSTS auf Ihre Domain. Siehe Produktionshinweise.
Ersten Benutzer erstellen#
Die App hat keine öffentliche Registrierung, erstellen Sie also ein Konto, bevor Sie sich anmelden können:
docker exec -it <container> python manage.py createsuperuserWeitere Informationen unter Benutzer & Zugang.
Mit Docker Compose#
Ein minimales compose.yaml mit der Datenbank neben der App:
services:
db:
image: postgres:16
environment:
POSTGRES_DB: seurch
POSTGRES_USER: seurch
POSTGRES_PASSWORD: aendern-sie-mich
volumes:
- pgdata:/var/lib/postgresql/data
app:
image: seurch
depends_on: [db]
ports:
- "8000:8000"
environment:
SECRET_KEY: ihr-langer-zufaelliger-schluessel
DATABASE_URL: postgres://seurch:aendern-sie-mich@db:5432/seurch
ALLOWED_HOSTS: search.example.com
BRAVE_API_KEY: ihr-brave-schluessel
BRAVE_SUGGEST_API_KEY: ihr-brave-suggest-schluessel
MARGINALIA_API_KEY: public
volumes:
pgdata:docker compose up -d
docker compose exec app python manage.py createsuperuserSiehe Konfiguration für die vollständige Liste der Umgebungsvariablen und Suchanbieter für die Schlüssel, die jeden Tab und jede Karte aktivieren.
Aus dem Quellcode#
Um das Image selbst zu bauen oder lokal zu entwickeln, klonen Sie das Seurch-Repository und verwenden Sie den mitgelieferten Workflow:
cp .env.example .env # dann mindestens BRAVE_API_KEY hinzufügen
make setup # Abhängigkeiten installieren, Dev-Dienste starten, migrieren, i18n kompilieren
make run # Dev-Server unter http://localhost:8000
make superuser # Konto erstellenmake setup startet einen Dev-Stack (PostgreSQL + ein Mail-Catcher + LibreTranslate) via Podman Compose, sodass Sie direkt einen funktionierenden Übersetzen-Tab erhalten. Führen Sie make ohne Argumente aus, um alle Ziele aufzulisten. Bauen Sie ein Produktions-Image mit:
docker build -t seurch .Setzen Sie in der Produktion immer einen langen, zufälligen
SECRET_KEYund eine echteDATABASE_URL, und setzen SieDEBUG=False(der Standard, wenn nicht gesetzt). Der Wert in.env.exampleist nur für die lokale Entwicklung.