2026-04-18 14:17:46 +02:00
|
|
|
# Dev-Setup: nur SearXNG läuft im Container; Kochwas selbst startest du
|
|
|
|
|
# lokal mit `npm run dev`. SEARXNG_URL=http://localhost:8888 wird von der
|
|
|
|
|
# App automatisch erkannt (oder via .env gesetzt).
|
|
|
|
|
#
|
|
|
|
|
# Starten:
|
|
|
|
|
# cp .env.example .env # einmalig, Werte anpassen
|
|
|
|
|
# docker compose up -d
|
|
|
|
|
# npm run dev
|
|
|
|
|
#
|
|
|
|
|
# Der Init-Container expandiert ${BRAVE_API_KEY} und ${SEARXNG_SECRET} aus
|
|
|
|
|
# der .env genau wie prod — damit testet man lokal mit dem gleichen Flow.
|
|
|
|
|
|
2026-04-17 15:07:22 +02:00
|
|
|
services:
|
2026-04-18 14:17:46 +02:00
|
|
|
searxng-init:
|
|
|
|
|
image: searxng/searxng:latest
|
|
|
|
|
restart: 'no'
|
|
|
|
|
user: root
|
|
|
|
|
entrypoint:
|
|
|
|
|
- /bin/sh
|
|
|
|
|
- -c
|
|
|
|
|
- |
|
|
|
|
|
set -e
|
|
|
|
|
python3 -c "import os; open('/out/settings.yml','w').write(os.path.expandvars(open('/in/settings.yml').read()))"
|
|
|
|
|
volumes:
|
|
|
|
|
- ./searxng:/in:ro
|
|
|
|
|
- searxng-config:/out
|
|
|
|
|
environment:
|
|
|
|
|
- FORCE_OWNERSHIP=false
|
|
|
|
|
- BRAVE_API_KEY=${BRAVE_API_KEY:-}
|
|
|
|
|
- SEARXNG_SECRET=${SEARXNG_SECRET:-dev-secret-change-me}
|
|
|
|
|
|
2026-04-17 15:07:22 +02:00
|
|
|
searxng:
|
|
|
|
|
image: searxng/searxng:latest
|
|
|
|
|
ports:
|
|
|
|
|
- '8888:8080'
|
|
|
|
|
volumes:
|
2026-04-18 14:17:46 +02:00
|
|
|
- searxng-config:/etc/searxng
|
2026-04-17 15:07:22 +02:00
|
|
|
environment:
|
|
|
|
|
- BASE_URL=http://localhost:8888/
|
|
|
|
|
- INSTANCE_NAME=kochwas-search-dev
|
2026-04-18 14:17:46 +02:00
|
|
|
depends_on:
|
|
|
|
|
searxng-init:
|
|
|
|
|
condition: service_completed_successfully
|
2026-04-17 15:07:22 +02:00
|
|
|
restart: unless-stopped
|
2026-04-18 14:17:46 +02:00
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
|
searxng-config:
|