Démarrage rapide#
Le moyen le plus rapide d’avoir une instance opérationnelle est l’image Docker. Vous avez besoin d’une base de données PostgreSQL et, au minimum, d’une clé API Brave Search.
Avec Docker#
docker run -p 8000:8000 \
-e SECRET_KEY=votre-long-secret-aléatoire \
-e DATABASE_URL=postgres://utilisateur:motdepasse@hôte-db:5432/seurch \
-e ALLOWED_HOSTS=search.example.com \
-e BRAVE_API_KEY=votre-clé-brave \
-e BRAVE_SUGGEST_API_KEY=votre-clé-brave-suggest \
-e MARGINALIA_API_KEY=public \
seurchAu démarrage, le conteneur :
- Applique les migrations de base de données (sans effet une fois le schéma à jour).
- Sert l’application avec gunicorn (2 workers) sur le port 8000.
- Sert ses propres fichiers statiques via WhiteNoise (compressés et hachés), sans serveur web séparé ni CDN requis.
- Répond à une vérification de santé sur
/up.
Les catalogues de traduction et les fichiers statiques sont compilés à la construction, il n’y a donc rien d’autre à lancer.
Placez un proxy inverse avec TLS (Caddy, nginx, Traefik, …) devant le port 8000 et définissez ALLOWED_HOSTS sur votre domaine. Voir Notes de production.
Créez votre premier utilisateur#
L’application n’a pas d’inscription publique, créez donc un compte avant de pouvoir vous connecter :
docker exec -it <conteneur> python manage.py createsuperuserVoir Utilisateurs et accès pour plus d’informations.
Avec Docker Compose#
Un compose.yaml minimal avec la base de données aux côtés de l’application :
services:
db:
image: postgres:16
environment:
POSTGRES_DB: seurch
POSTGRES_USER: seurch
POSTGRES_PASSWORD: changez-moi
volumes:
- pgdata:/var/lib/postgresql/data
app:
image: seurch
depends_on: [db]
ports:
- "8000:8000"
environment:
SECRET_KEY: votre-long-secret-aléatoire
DATABASE_URL: postgres://seurch:changez-moi@db:5432/seurch
ALLOWED_HOSTS: search.example.com
BRAVE_API_KEY: votre-clé-brave
BRAVE_SUGGEST_API_KEY: votre-clé-brave-suggest
MARGINALIA_API_KEY: public
volumes:
pgdata:docker compose up -d
docker compose exec app python manage.py createsuperuserVoir Configuration pour la liste complète des variables d’environnement, et Fournisseurs de recherche pour les clés qui activent chaque onglet et fiche.
Depuis les sources#
Pour construire l’image vous-même ou développer localement, clonez le dépôt Seurch et utilisez le workflow fourni :
cp .env.example .env # puis ajoutez au minimum BRAVE_API_KEY
make setup # installer les dépendances, démarrer les services de dev, migrer, compiler i18n
make run # serveur de dev sur http://localhost:8000
make superuser # créer un comptemake setup démarre une pile de développement (PostgreSQL + un intercepteur de mails + LibreTranslate) via Podman Compose, vous obtenez donc un onglet Traduction fonctionnel dès le départ. Exécutez make sans arguments pour lister toutes les cibles. Construisez une image de production avec :
docker build -t seurch .Définissez toujours un
SECRET_KEYlong et aléatoire et unDATABASE_URLréel en production, et définissezDEBUG=False(la valeur par défaut lorsque non défini). La valeur dans.env.exampleest uniquement pour le développement local.