PalveronPalveronDocs

Configuration

Every environment variable, default, and health endpoint for the Palveron stack.

This page is the canonical reference for self-hosters — every variable, what it does, and whether it's required.

Gateway (palveron-gateway)

Required

VariableDescription
DATABASE_URLPostgreSQL connection string
OPENAI_API_KEYUsed for LLM-assist policy evaluation
INTERNAL_PROXY_SECRETShared secret between dashboard proxy and gateway

Optional

VariableDefaultDescription
PORT8080HTTP listen port
HOST0.0.0.0Bind address
REDIS_URLEnables rate-limit cache and approval queue cache when set
RUST_LOGpalveron_gateway=info,tower_http=infoLog filter
NGE_MODELS_DIR/app/models/ngePath to ONNX model directory (~4 GB)
NGE_MODEnge_fallbackdisabled, nge_local, nge_fallback, llm_only
FLARE_PRIVATE_KEYHex-encoded key for managed-wallet anchoring
FLARE_CONTRACT_ADDRESSPalveronNotary contract on Flare
FLARE_RPC_URLhttps://coston2-api.flare.network/ext/C/rpcSwitch to mainnet RPC for production
BRAND_NAMEPalveronWhite-label brand name in API responses
BUDGET_RESET_HOUR_UTC0Hour at which agent budgets reset (0-23)
RATE_LIMIT_BURST_PER_SECOND100Per-key burst limit

Dashboard (palveron-nexus)

Required

VariableDescription
DATABASE_URLPostgreSQL — same DB as the gateway
KINDE_CLIENT_IDKinde OIDC client ID
KINDE_CLIENT_SECRETKinde OIDC client secret
KINDE_ISSUER_URLKinde issuer URL (e.g. https://palveron.kinde.com)
KINDE_SITE_URLPublic URL of the dashboard (used for OIDC redirects)
INTERNAL_PROXY_SECRETMust match the gateway's value

Optional

VariableDefaultDescription
PALVERON_CORE_INTERNAL_URLhttp://gateway:8080Container-to-container gateway URL
NEXT_PUBLIC_PALVERON_CORE_URLPublic gateway URL (for client-side calls)
RESEND_API_KEYRequired only if email notifications are enabled
STRIPE_SECRET_KEYRequired only when self-billing through Stripe
STRIPE_WEBHOOK_SECRETUsed to verify Stripe webhooks

Health endpoints

Every service exposes a health endpoint. Use them in liveness/readiness probes and uptime monitors.

ServicePathHealthy response
GatewayGET /health{ "status": "healthy", "version": "...", "dependencies": { ... } }
GatewayGET /ready200 when NGE models are loaded and DB is reachable; 503 otherwise
DashboardGET /api/health200 with build metadata

The gateway's /health does not indicate readiness — use /ready for load-balancer probes during deployments.

Observability

EndpointDescription
GET /metrics (port 9090)Prometheus exposition
GET /api/v1/admin/integrity-statsContinuous tamper-detection counters (admin-only)
GET /api/v1/admin/flare-statusLast successful anchor + queue depth (admin-only)

Retry & rate-limit behavior

The gateway returns:

  • 429 Too Many Requests with Retry-After: <seconds> when the per-key burst limit is hit
  • 503 Service Unavailable with Retry-After: <seconds> during NGE model reload (typically under 2 seconds)

Official SDKs honor Retry-After and retry transient 5xx/timeout errors with exponential backoff and jitter. When building custom clients, replicate the same pattern.

For a complete deployment example with all variables wired in, see palveron-deploy/.env.example.

On this page