ours RP ARM64 Installer Guide
Goal
This package deploys ours RP on a linux/arm64 server with Docker Compose and continuously runs all five RIR validation.
The package includes the ours RP ARM64 runtime image, Prometheus ARM64 image and Grafana ARM64 image, so deployment does not pull application images on the target host. Runtime state, run artifacts, logs, Prometheus data and Grafana data are persisted through host bind mounts.
Quick Start
tar -xzf ours-rp-arm64-installer-*.tar.gz
cd ours-rp-arm64-installer-*
./install.sh
cp .env.example .env # install.sh creates .env automatically if missing
vim .env
./start.sh
./status.sh
Defaults:
RIRS=afrinic,apnic,arin,lacnic,ripeMAX_RUNS=-1INTERVAL_SECS=600TAL_INPUT_MODE=file-live-taLIVE_TA_REFRESH_BEFORE_SNAPSHOT=1PERIODIC_SNAPSHOT_RESET=0PERIODIC_SNAPSHOT_MAX_DELTAS=100HOST_DATA_DIR=/var/lib/ours-rp-arm64SOAK_RESTART_POLICY=unless-stoppedMONITOR_PLATFORM=linux/arm64
First Start Semantics
If there is no successful run under HOST_DATA_DIR/runs, start.sh starts the core ours-rp-soak service first and waits for the first snapshot to succeed before starting metrics, Prometheus and Grafana.
The first snapshot refreshes live TA certificates before starting the RP process.
Ports
Default ports:
- metrics:
http://<host>:9556/metrics - Prometheus:
http://<host>:9090 - Grafana:
http://<host>:3000
Grafana credentials come from .env:
GRAFANA_ADMIN_USER=admin
GRAFANA_ADMIN_PASSWORD=admin
Change the password and restrict public access for production deployments.
Data Directory
Default host directory:
/var/lib/ours-rp-arm64/
state/
runs/
logs/
tmp/
prometheus/
grafana/
Each runs/run_XXXX/ directory contains report.json, result.ccr, input.cir, vrps.csv, vaps.csv, stage-timing.json, logs and metadata.
Periodic Snapshot Reset
New knobs:
PERIODIC_SNAPSHOT_RESET=0
PERIODIC_SNAPSHOT_MAX_DELTAS=100
Semantics:
- disabled by default, keeping previous behavior unchanged;
- when enabled, one successful snapshot is followed by at most
Nsuccessful delta runs; - after the threshold is reached, the next run is forced to snapshot;
- before that forced snapshot, only the active
state/dbis reset, whileruns/,logs/,state/rsync-mirror,.env, and Prometheus/Grafana data are preserved; - the counter is persisted independently in
HOST_DATA_DIR/state/run-lifecycle-state.json, so it does not depend on retainedruns/history; - if that lifecycle file is corrupt, it is backed up as
run-lifecycle-state.json.corrupt.<timestamp>.<pid>before best-effort bootstrap from retained runs; - after a successful forced snapshot, the old DB staging is deleted so disk usage does not keep growing elsewhere.
Check the latest run-meta.json for:
sync_modesnapshot_reasonperiodic_snapshot_delta_countperiodic_snapshot_forcedreset_db_cleanup_status
Common Commands
./status.sh
./logs.sh ours-rp-soak --tail 200
./restart.sh
./stop.sh
./cleanup.sh --keep-runs 100 --execute
./uninstall.sh
uninstall.sh keeps data by default. Use the following only when you really want to delete HOST_DATA_DIR:
./uninstall.sh --purge-data
For finite acceptance tests, for example MAX_RUNS=3, also set:
SOAK_RESTART_POLICY=no
Otherwise Compose unless-stopped will restart the container after it exits successfully.