Skip to main content

Documentation 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.

Before the updater overwrites or deletes a RIPE INETNUM or INET6NUM object, it saves a JSON snapshot of the existing record to S3-compatible storage. By default, that storage is the local Minio container bundled with the stack — no external object store is required. The snapshots can be browsed through a protected web UI and restored to RIPE with a single API call.
The backup UI and the /backup/<name> download endpoint are only active when S3_BACKUP=yes in .env.updater. This is the default. If you have disabled backups, the /backups page will not render any files and /backup/<name> will return an empty response.

What gets backed up

The backup manager saves a JSON representation of the RIPE object immediately before it is overwritten or deleted. Only INETNUM and INET6NUM objects are managed by the updater, so only those object types appear in the backup store. Each backup file is named after the prefix it represents, with slashes replaced by underscores (e.g. prefix_192.0.2.0_24.json).

Backup storage (S3)

Backups are stored in an S3 bucket using the boto3 client. The default configuration points to the bundled Minio container.
VariableDefaultDescription
S3_BACKUPyesEnable or disable backup storage (yes / no)
S3_ENDPOINT_URLhttp://minio:9000S3 endpoint URL
S3_ACCESS_KEYS3 access key (must match MINIO_ROOT_USER if using Minio)
S3_SECRET_ACCESS_KEYS3 secret key (must match MINIO_ROOT_PASSWORD if using Minio)
S3_BUCKETripe-backupsBucket name (created automatically on first start)
The default S3_ENDPOINT_URL is http://minio:9000, which resolves to the minio container on the internal Docker network. If you point the updater at an external S3-compatible service, update this URL along with the key and secret to match that provider’s credentials.

Browsing backups

The /backups endpoint serves an HTML page listing all objects in the configured S3 bucket. It is protected by HTTP Basic Auth using the UI_USER and UI_PASSWORD values from .env.updater. Open the backup UI in your browser:
http://localhost:9000/backups
You will be prompted for credentials. Use the values you set for UI_USER and UI_PASSWORD. To download an individual backup file, use the /backup/<name> endpoint:
http://localhost:9000/backup/prefix_192.0.2.0_24.json
Or with curl:
curl -u "UI_USER:UI_PASSWORD" http://localhost:9000/backup/prefix_192.0.2.0_24.json \
  -o prefix.json

Restoring a backup to RIPE

Once you have the backup JSON file, you can push it directly to the RIPE REST API using the RIPE API credentials from .env.updater:
curl --user "RIPE_API_USER:RIPE_API_PASS" \
  -X POST \
  -H 'Content-Type: application/json' \
  --data @prefix.json \
  'https://rest.db.ripe.net/ripe/inetnum'
For IPv6 objects, change the object type in the URL to inet6num:
curl --user "RIPE_API_USER:RIPE_API_PASS" \
  -X POST \
  -H 'Content-Type: application/json' \
  --data @prefix.json \
  'https://rest.db.ripe.net/ripe/inet6num'
Replace RIPE_API_USER and RIPE_API_PASS with your actual credentials from .env.updater.
Restoring a backup with a POST will create or overwrite the object in the RIPE database. Verify the JSON contents of the backup file before submitting to avoid overwriting an object with stale data.

Deployment

Configure Minio and volume mounts for the stack

Updating

Rotate RIPE API credentials before they expire

Build docs developers (and LLMs) love