Docker Override
Customize IntelliAsk's bundled Docker services with an optional docker-compose.override.yml without editing the *.compose.yml files.
Advanced users only
IntelliAsk's stack is normally managed by the intelliask binary, and most configuration is done through .env and intelliask.yaml. Only reach for a Docker override when you need to change the Docker services themselves -- for example, mounting extra volumes, remapping ports, or swapping in external infrastructure.
The IntelliAsk stack lives in the config/ directory and is split across several service files -- intelliask.compose.yml, mongodb.compose.yml, meilisearch.compose.yml, rag.compose.yml, codeapi.compose.yml, proxy.compose.yml, and exporter.compose.yml. The active set is listed in the COMPOSE_FILE variable inside config/.env, and Docker Compose merges them together at runtime.
You should not edit these bundled files directly -- updates would overwrite your changes. Instead, layer your customizations on top with an override.
Two Ways to Override
Option 1: docker-compose.override.yml (auto-merged)
Create a docker-compose.override.yml file in the config/ directory (the same folder as the *.compose.yml files). This file is not shipped by default -- if it exists, Docker Compose automatically merges it with the files listed in COMPOSE_FILE. This is the recommended approach for most customizations.
Option 2: Custom compose file in COMPOSE_FILE
Create your own custom.compose.yml and explicitly add it to the COMPOSE_FILE list in config/.env. Later files override or add to earlier ones:
One entry per service
Whichever approach you use, each service (intelliask, mongodb, meilisearch, rag-api, vectordb, proxy, ...) can appear only once in your override. To change multiple settings on a single service, combine them under that one entry.
Applying Changes
After creating or editing your override, restart the stack so Compose re-merges the files:
Then confirm your changes took effect:
Examples
Use an external S3 bucket instead of bundled Garage
You can then disable the bundled Garage service with intelliask module disable garage.
Use an external managed Redis
Expose a service port for debugging
Watch exposed ports
Exposing MongoDB, Meilisearch, or other data services publicly can leave your data vulnerable. Bind to 127.0.0.1 and avoid default ports in production or sensitive environments.
Reference
- Config file already mounted:
intelliask.yamlis mounted into theintelliaskservice for you (./intelliask.yaml:/intelliask.yaml:ro). You do not need an override to make IntelliAsk read it -- just edit the file and restart. - Order of precedence: values in files listed later in
COMPOSE_FILE(and indocker-compose.override.yml) take precedence over the same values in earlier files. - Security: when customizing ports and exposing services publicly, be conscious of the security implications and avoid defaults for production.
For more detail, see the official Docker documentation:
Last updated on