Docker Config
Service-level Docker reference for current host ports, responsibilities, and persistence boundaries.
by @saifyxpro
Core stack
The Docker infrastructure lives under infra/docker.
Current core services are centered on:
| Service | Default role | Host port | Internal port |
| --- | --- | --- |
| PostgreSQL | persistent app state | 35432 | 5432 |
| Redis | queue and crawl infrastructure | 36379 | 6379 |
| API | backend HTTP and MCP | 38473 | 8000 |
| Worker | queued background jobs | none exposed | none exposed |
| Web | dashboard and playground | 34872 | 3000 |
| HTML-to-Markdown | content extraction helper | 38081 | 8080 |
| yt-engine | YouTube extraction engine | 38090 | 8090 |
What Docker is best at here
- repeatable service boot
- consistent infrastructure across operators
- faster onboarding for self-hosted users
- cleaner separation between app runtime and dependencies
What still needs attention
The full Docker stack now includes yt-engine by default, and the shared browser profile persists across restarts through the browser_profile volume.
Compose usage
The safe current compose path is:
Volumes and persistence
You should treat these as persistent:
- PostgreSQL data
- Redis if you depend on durable queue state
- application-managed runtime data like browser profiles or temp artifacts, depending on your deployment policy
Important current example:
- the Google AI Search cookie bootstrap and shared Headfox JS profile persist through the Docker
browser_profilevolume
Operational advice
- use Docker for infrastructure even if you prefer local app processes
- keep environment files outside image definitions
- document any port changes together with
NEXT_PUBLIC_API_URL,FRONTEND_URL, and service URLs - keep host-side ports rare, but keep container-internal ports stable for Docker networking