Netbox RIPE Updater ships as a Docker Compose stack containing two services: theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/jalmargyyk/netbox-ripe-updater/llms.txt
Use this file to discover all available pages before exploring further.
ripe-updater Flask application and a local Minio instance for S3-compatible backup storage. All configuration is driven by two env files, and the entire stack starts with a single command — no Kubernetes or external object storage required to get going.
Services
The stack defines two services that communicate over a private bridge network calledripe-updater.
ripe-updater
Theripe-updater service builds from the ./ripe-updater directory and runs the Flask application that receives NetBox webhooks and pushes changes to RIPE.
Key fields:
| Field | Value | Notes |
|---|---|---|
build.context | ./ripe-updater | Built locally from source |
env_file | .env.updater | All updater config lives here |
ports | ${UPDATER_HTTP_PORT}:80 | Host address set via .env |
volumes | ${RIPE_TEMPLATE_DIR}:/opt/ripeupdater/templates:ro | Templates mounted read-only |
depends_on | minio | Minio must start first |
restart | always | Restarts automatically on failure |
minio
Theminio service runs a local S3-compatible object store that holds RIPE object backups.
Key fields:
| Field | Value | Notes |
|---|---|---|
image | coollabsio/minio:latest | Community Minio image |
ports | 9000:9000, 9001:9001 | API and console — see note below |
volumes | minio-data:/data | Named volume, persists across restarts |
MINIO_DEFAULT_BUCKETS | ripe-backups | Bucket created automatically on first start |
The
minio service ports (9000 and 9001) are listed in docker-compose.yml, but Minio is not bound to the host by default. UPDATER_HTTP_PORT in .env defaults to 127.0.0.1:9000, which binds only to localhost. Minio’s ports have no equivalent loopback binding in the default configuration, so the console and API are only reachable from within the Docker network.Full docker-compose.yml
docker-compose.yml
Port bindings
| Variable | Default | Service | Purpose |
|---|---|---|---|
UPDATER_HTTP_PORT | 127.0.0.1:9000 | ripe-updater | Binds the updater HTTP port on the host |
| (fixed) | 9000 | minio | Minio S3 API (Docker network only by default) |
| (fixed) | 9001 | minio | Minio web console (Docker network only by default) |
UPDATER_HTTP_PORT in .env to control where the updater is accessible. The default 127.0.0.1:9000 restricts access to the local machine, which is the recommended starting point before adding a reverse proxy.
Volume mounts
| Mount | Container path | Mode | Purpose |
|---|---|---|---|
${RIPE_TEMPLATE_DIR} | /opt/ripeupdater/templates | ro (read-only) | RIPE object templates |
minio-data (named volume) | /data | read-write | Minio backup storage |
RIPE_TEMPLATE_DIR in .env to point to your template directory. The default is ./ripe-templates/example; switch it to your custom templates directory before going to production.
Starting the stack
-d flag runs the containers in the background. Omit it to stream logs directly to the terminal during initial setup.
Checking health
The updater exposes a/health endpoint that returns Ok when the service is running:
UPDATER_HTTP_PORT is set to a non-default value, replace 9000 with the port you configured.
Updating
Pull new versions and rotate RIPE API keys
Reverse proxy
Expose the updater securely behind Nginx or Caddy