open-standards/openpay/docs/deploy/openpay.env.sample
Transaction Science 70ecd6caa0 Initial import — three open standards under one shelf
Transaction Science open standards monorepo. Each subdirectory is a
self-contained reference protocol with its own README and licence.

- openpay/    Apache-2.0  payment-acceptance stack (Rust, 26 crates)
- smart-byte/ CC-BY-4.0   content-addressed value carrier (spec)
- eoc/        CC-BY-4.0   energy-optimised compute (spec)

The wire format and the right to fork are public. The optional hosted
services are the offer; the protocols are not.
2026-05-23 07:58:09 -04:00

60 lines
2.5 KiB
Text

# OpenPay — env file template.
#
# Copy to /etc/openpay/openpay.env (referenced by openpay.service)
# and edit. systemd reads `KEY=value` lines; quote strings only if
# the value itself contains spaces.
#
# Reality check on what's wired:
#
# READ BY SHIPPED BINARY (crates/op-server/src/main.rs):
# OP_BIND_ADDR, RUST_LOG
#
# CONVENTIONS THIS GUIDE ADOPTS (need a patched main.rs or a
# custom binary that reads them — see deploy/README.md):
# OP_GRAPH_PATH, OP_API_KEYS, OP_LOG_FORMAT
# --- Bind address ---------------------------------------------------
# Where op-server binds. Default 127.0.0.1:8080 in the shipped
# binary. Keep it on loopback; terminate TLS in Caddy.
OP_BIND_ADDR=127.0.0.1:8080
# --- Persistence ----------------------------------------------------
# Path to the single-file Minigraf-backed graph database. Every
# domain store (refunds, disputes, settlement, ledger, reconciliation,
# webhooks, subscriptions, idempotency) writes here. Reopening the
# same path on restart recovers all state.
#
# Wired via AppState::with_graph_path in crates/op-server/src/state.rs.
# The shipped main.rs ignores this — patch it to read this env var
# (see deploy/README.md §3) or it has no effect.
OP_GRAPH_PATH=/var/lib/openpay/data.graph
# --- Authentication -------------------------------------------------
# Comma-separated list of API keys accepted by ApiKeyAuthLayer.
# Generate with: openssl rand -hex 32
# Clients pass the key as `Authorization: Bearer <key>` (or
# whatever header your ApiKeyAuthLayer config picks up — check
# crates/op-server/src/auth.rs).
#
# Empty / unset disables auth — DO NOT ship to production without
# this set, unless you've wired your own auth layer.
OP_API_KEYS=
# --- Logging --------------------------------------------------------
# tracing-subscriber EnvFilter directive. The shipped main.rs
# defaults to "info,op_server=debug" when this is unset. Examples:
# RUST_LOG=info
# RUST_LOG=warn,op_server=debug,op_orchestrator=trace
# RUST_LOG=off # silence everything
RUST_LOG=info,op_server=debug
# Log output format. The shipped main.rs uses the default pretty
# subscriber and does NOT branch on this env. To get newline-
# delimited JSON for journald → loki / Datadog ingestion, patch
# main.rs to read it and switch to `tracing_subscriber::fmt().json()`
# when this is `json`. See deploy/monitoring.md.
#
# Accepted values (by convention, not by the shipped binary):
# text (default — human readable, color)
# json (one event per line, structured)
OP_LOG_FORMAT=json