-
Notifications
You must be signed in to change notification settings - Fork 41
Expand file tree
/
Copy path.env.example
More file actions
65 lines (53 loc) · 2.86 KB
/
Copy path.env.example
File metadata and controls
65 lines (53 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Copy to `.env` and fill in. NEVER commit `.env`.
# --- Chains ---
# Multi-chain configuration precedence (see octo.chains.example.toml and
# docs/architecture.md's "Per-chain configuration" section for the full picture):
# 1. CHAIN_CONFIG_PATH, if set, MUST name an existing TOML file (a typo'd path aborts boot,
# it does not silently fall back) describing one or more [[chains]].
# 2. Else, if ./octo.chains.toml exists in the working directory, it's used automatically.
# 3. Else, the single-chain NETWORK/HORIZON_URL/FRIENDBOT_URL/HORIZON_* vars below build one
# implicit Stellar chain — this is what today's single-chain deployments keep using
# unmodified.
# In all cases, a chain's `rpc_url` can be overridden per-deploy-environment (e.g. to inject a
# secret without putting it in the config file) via OCTO_CHAIN_<CHAIN_ID>_RPC_URL, where
# <CHAIN_ID> is the chain's id upper-cased with every non-alphanumeric character replaced by `_`
# (e.g. chain id "stellar:testnet" -> OCTO_CHAIN_STELLAR_TESTNET_RPC_URL).
# CHAIN_CONFIG_PATH=octo.chains.toml
# --- Network (legacy single-chain fallback; ignored when a chain config file is in effect) ---
# Which Stellar network the server operates on: "testnet" or "mainnet".
NETWORK=testnet
# Horizon endpoint (testnet shown). Mainnet: https://horizon.stellar.org
HORIZON_URL=https://horizon-testnet.stellar.org
# Friendbot (testnet only) — funds new accounts.
FRIENDBOT_URL=https://friendbot.stellar.org
# --- Database ---
# Local dev via docker compose maps Postgres to host port 5433 (avoids a host Postgres on 5432).
DATABASE_URL=postgres://octo:octo@localhost:5433/octo
# --- Crypto ---
# 32-byte master key (base64) used to AES-256-GCM encrypt the HD seed at rest.
# Generate with: openssl rand -base64 32
# In production this comes from a KMS, not an env var.
MASTER_KEY=
# Optional: next master key for zero-downtime key rotation.
# Set this alongside MASTER_KEY during a rotation window while `octo-migrate-keys` is running.
# Once the migration tool reports 0 wallets remaining, set MASTER_KEY to this value and unset this.
# Generate with: openssl rand -base64 32
# MASTER_KEY_NEXT=
# Secret used to sign dashboard auth JWTs (HS256). At least 16 bytes.
# Generate with: openssl rand -hex 32
JWT_SECRET=
# --- Server ---
BIND_ADDR=0.0.0.0:8080
RUST_LOG=info,octo=debug
# Base URL of the hosted checkout frontend (Next.js), used to build the `url` field on payment
# links (e.g. https://app.octo.dev/pay/<slug>). No trailing slash.
PUBLIC_APP_URL=http://localhost:3000
# --- Email (Resend) ---
# API key from https://resend.com — required for OTP/welcome/withdrawal emails.
RESEND_API_KEY=
# Verified sender address, e.g. "Octo <noreply@octohq.org>".
EMAIL_FROM_ADDRESS=
# --- Ingest worker ---
# How often the deposit ingest supervisor polls Horizon for all wallets, and the page size.
INGEST_INTERVAL_SECS=5
INGEST_PAGE_LIMIT=50