# ours RP ARM64 Docker Compose 示例配置
# 复制为 .env 后再启动：
#   cp .env.example .env

# 业务镜像名称；需要先通过 docker load 导入远端 Docker。
RPKI_IMAGE=ours-rp-runtime-arm64:dev

# 核心 RP 镜像强制以 ARM64 运行；远端233为 x86_64，需要 binfmt/qemu 支持。
RPKI_PLATFORM=linux/arm64

# 验收默认只跑 APNIC；all5 可改成 afrinic,apnic,arin,lacnic,ripe。
RIRS=apnic

# 固定跑两轮：首轮 snapshot，第二轮 delta。
# 负数表示持续运行；ARM64 QEMU 首版验收不建议默认持续运行。
MAX_RUNS=2

# 两轮之间间隔秒数。
INTERVAL_SECS=0

# 保留最近多少个 run 目录。
RETAIN_RUNS=5

# TA/TAL 输入模式：
# - file-with-ta：完全使用镜像内 fixture；
# - file-live-ta：snapshot 轮先完成 live TA 获取，delta 轮后台刷新 TA；
# - url：从 TAL URL 拉取。
TAL_INPUT_MODE=file-live-ta

# rsync 默认按 module-root 批量拉取，和当前 ours RP soak 默认优化配置一致。
RSYNC_SCOPE=module-root

# 容器里不需要杀宿主机上的其他 RP 进程；远端宿主机如有竞争进程，请在宿主机侧处理。
DISABLE_COMPETING_RPS=0

# 运行态数据目录。容器内固定路径，外部由 compose volume 保存。
RUN_ROOT=/var/lib/ours-rp
DB_DIR=/var/lib/ours-rp/state/db
RSYNC_MIRROR_ROOT=/var/lib/ours-rp/state/rsync-mirror

# 每轮结束后清理 daemon 临时目录。
# Docker Compose 中 tmp 是独立 volume 挂载点，不能删除挂载点本身；默认关闭。
CLEAN_TMP_AFTER_RUN=0

# 报告使用 compact JSON，降低写盘体积。
OUTPUT_COMPACT_REPORT=1

# 复用 rsync mirror，避免 delta 每轮从零拉取。
ALLOW_RSYNC_MIRROR_REUSE=1

# 前一轮失败时，新一轮从 snapshot 恢复。
FAILURE_SNAPSHOT_RESET=1

# QEMU 验收优先降低额外统计开销；需要精确 DB 统计时改为 3 或其他正整数。
DB_STATS_EXACT_EVERY=0

# 开启当前主线使用的验证缓存与请求预取能力。
ENABLE_CHILD_CERTIFICATE_VALIDATION_CACHE=1
RPKI_ANALYZE=1
RPKI_EXTRA_ARGS="--enable-transport-request-prefetch --enable-publication-point-validation-cache --enable-roa-validation-cache --parallel-max-repo-sync-workers-global 4 --parallel-phase2-object-workers 4 --memory-trim-after-validation"

# 进度日志阈值。QEMU 下执行较慢，阈值不宜过低。
RPKI_PROGRESS_LOG=1
RPKI_PROGRESS_SLOW_SECS=20
RPKI_PROGRESS_STAGE_FRESH_SLOW_MS=2000
RPKI_PROGRESS_PP_CONTROL_SLOW_MS=200
RPKI_PROGRESS_PP_CACHE_SLOW_MS=100
RPKI_PROGRESS_CONTROL_LOOP_SLOW_MS=2000

# live TA 刷新超时。
LIVE_TA_REFRESH_CONNECT_TIMEOUT_SECS=15
LIVE_TA_REFRESH_MAX_TIME_SECS=120

# file-live-ta 在 snapshot 轮先完成 live TA 获取再启动子进程，避免首轮使用旧 fixture TA。
LIVE_TA_REFRESH_BEFORE_SNAPSHOT=1

# metrics sidecar 配置。
METRICS_INSTANCE=remote233-arm64-qemu
METRICS_PORT=9556
METRICS_POLL_SECS=10

# Prometheus / Grafana 配置。
PROMETHEUS_PORT=9090
PROMETHEUS_RETENTION=7d
GRAFANA_PORT=3000
GRAFANA_ADMIN_USER=admin
GRAFANA_ADMIN_PASSWORD=admin
