The VPS runs Caddy inside Docker as part of the Hephaestus stack (not system-wide angie as the earlier deploy/README assumed), so the shape of the deploy is: Prometheus runs as its own small docker-compose that attaches to Hephaestus's existing network, and Hephaestus's Caddy reverse-proxies prometheus.x → prometheus:3700. Dockerfile: node:22-alpine base (keeps the image ~55 MB and gives us node:sqlite stable), tini for signal handling, non-root `node` user, one /data volume holding the DB + ed25519 service key + uploads + snapshot build output. docker-compose: one service, attaches hephaestus_default as external network, env sourced from an .env file alongside the compose. The .env is NOT committed (contains ADMIN_PUBLISHER, optional VirusTotal key, optional payment config). Healthcheck polls /healthz. The deploy/prometheus-service.service systemd unit from the earlier commit is now unused on this host (kept for anyone deploying natively on a non-dockered box).
49 lines
1.4 KiB
YAML
49 lines
1.4 KiB
YAML
# Standalone compose for prometheus.x on the Hephaestus VPS.
|
|
#
|
|
# The service attaches to Hephaestus's existing docker network
|
|
# (hephaestus_default), so Hephaestus's Caddy can route prometheus.x to
|
|
# `prometheus:3700` with no changes to Hephaestus itself other than one new
|
|
# block in its Caddyfile.
|
|
#
|
|
# One volume (`data`) holds the SQLite DB, the service's ed25519 signing
|
|
# key, uploads that passed scan, and the snapshot build output. Env lives
|
|
# in an .env file alongside this one; the ones below are the defaults and
|
|
# can be overridden.
|
|
|
|
name: prometheus
|
|
|
|
services:
|
|
prometheus:
|
|
build:
|
|
context: ..
|
|
dockerfile: deploy/Dockerfile
|
|
image: prometheus:latest
|
|
restart: unless-stopped
|
|
environment:
|
|
BNS_NETWORK: chipnet
|
|
ADMIN_PUBLISHER: ${ADMIN_PUBLISHER:-}
|
|
VIRUSTOTAL_API_KEY: ${VIRUSTOTAL_API_KEY:-}
|
|
PAYMENT_REQUIRED: ${PAYMENT_REQUIRED:-}
|
|
PROMETHEUS_PAYMENT_ADDRESS: ${PROMETHEUS_PAYMENT_ADDRESS:-}
|
|
PROMETHEUS_LISTING_FEE_USD: ${PROMETHEUS_LISTING_FEE_USD:-1}
|
|
BNS_GATEWAY: ${BNS_GATEWAY:-}
|
|
volumes:
|
|
- data:/data
|
|
networks:
|
|
- hephaestus
|
|
expose:
|
|
- "3700"
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--quiet", "--spider", "http://127.0.0.1:3700/healthz"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 10s
|
|
|
|
volumes:
|
|
data:
|
|
|
|
networks:
|
|
hephaestus:
|
|
external: true
|
|
name: hephaestus_default
|