Skip to content

Run with Docker Compose

The release bundle runs NetRatel from published image digests. Follow the quickstart for the complete download, key creation and first-administrator procedure.

FilePurpose
compose.images.yamlWeb, API, migrations, volume initialization and PostgreSQL
.env.images.exampleRelease image digests and deployment inputs; copy to .env
compose.public-https.yamlOptional HTTPS ingress
nginx.public-https.confWeb and native-gateway routing for that ingress
compose.external-postgres.yamlOptional external database connection
setup-http-mcp.sh and MCP overlaysOptional HTTP MCP host setup
INSTALL.mdInstructions shipped with this exact release

Run commands from the extracted bundle directory. The signing-key and certificate paths are relative to the Compose files. Keep the digest values supplied by the release and put your own database password and instance settings in .env.

PostgreSQL must become healthy before migrations run. The volume-init helper prepares writable storage for UID/GID 1654. API starts after both one-shot services complete successfully. Web then connects to API at http://api:9222 on the private Compose network.

Inspect the whole stack, including completed services:

Terminal window
docker compose --env-file .env -f compose.images.yaml ps -a
docker compose --env-file .env -f compose.images.yaml logs --tail=100 api web

An exited migrations or volume-init container with code 0 is expected. A nonzero migration exit needs attention before API startup:

Terminal window
docker compose --env-file .env -f compose.images.yaml logs migrations

For the base deployment:

Terminal window
# Check configuration without printing its secrets.
docker compose --env-file .env -f compose.images.yaml config --quiet
# Start or reconcile the stack.
docker compose --env-file .env -f compose.images.yaml up -d
# Restart running API and Web without changing their environment.
docker compose --env-file .env -f compose.images.yaml restart api web

After editing environment values, recreate the affected services:

Terminal window
docker compose --env-file .env -f compose.images.yaml up -d --force-recreate api web

Add your external-database, ingress and MCP overlays to every command that manages the stack. A plain restart keeps the container’s existing environment.

StorageContents
postgres-dataBundled PostgreSQL database
api-dataAPI application and bootstrap state
web-keysShared Data Protection key ring
Your ES256 PEM fileNative-agent token signing key

Preserve the existing Compose project name so future commands keep using the same named volumes. Back up the database, application state and original keys together before an upgrade.

NetRatel 0.1.2 · Reviewed 2026-10-30
Product home · Release downloads · Report a documentation issue