
Why I removed Zitadel bootstrap because of Host header validation in Docker
The bootstrap container exited with code 22. The cause was not an incorrect API URL, but Zitadel Host header validation inside the Docker network.

The bootstrap container exited with code 22. The cause was not an incorrect API URL, but Zitadel Host header validation inside the Docker network.

Azurite ties the project to Azure Blob Storage. MinIO speaks the same S3 API as Hetzner Object Storage. Changing environment variables is enough to move to production. Alongside that: how the Zitadel bootstrap container creates OIDC apps automatically.

POST /ingest blocked the extension until embedding generation and the Qdrant upsert finished. BullMQ and Redis make ingestion asynchronous: an immediate 202, background processing and status queries through GET /captures/:id/status.

Vite embeds import.meta.env variables at build time instead of reading them at runtime. In Docker, this works through the build context, not ARG/ENV. A common mistake with a surprisingly simple solution.

Most projects have one docker-compose.yml for local development and a completely different one for the cloud. That creates drift, errors and "works on my machine" problems. I show how the Docker Compose override pattern manages both environments with the same base files.
Describe your workflow. Together, we will identify the right next step.
Discuss your workflow