Docker
Run Prelude TE under Docker — the recommended single-host deployment.
Prelude TE ships as a single OCI image. Docker is the simplest way to run it on a single host. For the end-to-end walkthrough — image, storage, TLS, first login — see Getting Started / Installation.
This page focuses on what changes when you go beyond the quick-start setup.
Compose file template
services:
prelude-te:
image: registry.arolo-solutions.com/prelude/prelude-te:1.0.0
container_name: prelude-te
restart: unless-stopped
ports:
- "443:4040"
- "179:179"
environment:
TE_TIMEZONE: Europe/Paris
TE_LOG_LEVEL: INFO
TE_TLS_CERT: /app/storage/certs/te.crt
TE_TLS_KEY: /app/storage/certs/te.key
volumes:
- ./storage:/app/storage
See Getting Started / Configuration for the full list of environment variables.
Persistent storage
The single mount that matters is /app/storage. It holds:
- The SQLite database with peers, outputs, users, tokens, and settings.
- TLS certificates (auto-generated or user-supplied).
- Per-module log files under
logs/. - License artifacts.
Treat this directory like the data directory of a database server: back it up as a unit, and never share it between two running instances.
Networking
- Port
4040(inside the container) carries the REST API, web UI, and SSE streams. For a standalone deployment, publish it on443— the standard HTTPS port — as in the template above, on whatever address your operators reach the engine from. - Port
179is the BGP port. The Compose template above publishes it so inbound BGP-LS sessions from routers reach the engine (required in Passive mode). Outbound BGP/TCP on179must also be allowed from the engine to each BGP-LS peer when the engine initiates the session. - Outbound NATS on port
4222(or whatever your NATS server uses) is required when you configure NATS outputs.
Resource sizing
The defaults of 2 vCPU / 2 GB RAM are enough for small networks (a few peers, a few hundred nodes). Scale up linearly with the number of peers and the size of the topology. A single host typically handles a single IGP scope with redundant peers comfortably.
Health and supervision
Docker's --restart unless-stopped policy plus a Compose
healthcheck targeted at /api/topology/stats is a reasonable
baseline. See Monitoring / Health for the
recommended probes.