init
This commit is contained in:
79
.env.example
79
.env.example
@@ -1,79 +0,0 @@
|
||||
# ── Vault (AppRole) ────────────────────────────────────────────────
|
||||
VAULT_ADDR=
|
||||
VAULT_ROLE_ID=
|
||||
VAULT_SECRET_ID=
|
||||
VAULT_MOUNT_POINT=dev-secrets
|
||||
VAULT_SECRET_PATH=database
|
||||
VAULT_JWT_KID_PATH=jwt/kid
|
||||
VAULT_JWT_KIDS_PREFIX=jwt/kids
|
||||
|
||||
# CSRF загружается если указан путь (оставь пустым чтобы отключить CSRF)
|
||||
VAULT_CSRF_PATH=csrf
|
||||
|
||||
# Crypto master-key для шифрования мнемоник юзеров (AES-256-GCM).
|
||||
# В Vault лежит hex-строка длиной 64 (32 байта).
|
||||
# Положить: vault kv put dev-secrets/crypto/master key=$(openssl rand -hex 32)
|
||||
VAULT_CRYPTO_KEY_PATH=crypto/master
|
||||
|
||||
# ── JWT (внешний bitok issuer) ─────────────────────────────────────
|
||||
# bitok-сервис подписывает JWT своим приватником, public key регистрируется
|
||||
# в Vault под kid'ом (см. VAULT_JWT_KIDS_PREFIX).
|
||||
# Allowed alg: RS256 / RS384 / RS512 / ES256 / ES384 / ES512 / EdDSA / PS256 / PS384 / PS512
|
||||
JWT_ALGORITHM=RS256
|
||||
JWT_ISSUER=bitok
|
||||
JWT_AUDIENCE=elcsa
|
||||
|
||||
# ── Server ─────────────────────────────────────────────────────────
|
||||
API_PORT=3001
|
||||
LOG_LEVEL=INFO
|
||||
|
||||
# ── KeyDB / Redis (idempotency cache) ──────────────────────────────
|
||||
# REDIS_PASSWORD also used by docker-compose to seed KeyDB --requirepass.
|
||||
REDIS_HOST=keydb
|
||||
REDIS_PORT=6379
|
||||
REDIS_PASSWORD=
|
||||
REDIS_DB=0
|
||||
|
||||
# ── CORS ────────────────────────────────────────────────────────────
|
||||
# Comma-separated list of allowed origins, OR "*" для wildcard (dev/staging).
|
||||
# ПУСТО = no cross-origin (fail-secure).
|
||||
# Wildcard incompatible с CORS_ALLOW_CREDENTIALS=true (browser spec — credentials force=false).
|
||||
# Production: явный whitelist для security (XSS на любом сайте не сможет дёрнуть API).
|
||||
# Whitelist: CORS_ORIGINS=https://app.example.com,https://www.example.com
|
||||
# Wildcard: CORS_ORIGINS=*
|
||||
CORS_ORIGINS=
|
||||
CORS_ALLOW_CREDENTIALS=true
|
||||
|
||||
# ── External API keys (optional, fallback если Vault их не выдаёт) ─
|
||||
RELAY_API_KEY=
|
||||
TRON_API_KEY=
|
||||
JUPITER_API_KEY=
|
||||
JUPITER_REFERRAL_ACCOUNT=
|
||||
JUPITER_FEE_BPS=70
|
||||
|
||||
# ── Block explorers (optional, для tx history) ─────────────────────
|
||||
ETHERSCAN_API_KEY=
|
||||
BSCSCAN_API_KEY=
|
||||
|
||||
# ── Price oracle (optional) ─────────────────────────────────────────
|
||||
# CoinGecko Demo API key. Без ключа работает free tier (~10-30 req/min).
|
||||
# Если задан → передаётся через header `x-cg-demo-api-key`.
|
||||
# Используется в /api/wallets/{chain}/balance (для usdPrice/usdValue)
|
||||
# и /api/prices?symbols=... KeyDB cache: 5 минут.
|
||||
COINGECKO_API_KEY=
|
||||
|
||||
# ── Outbound proxy для swap + bridge (optional) ─────────────────────
|
||||
# Если задан — все calls к Jupiter / Relay / EVM RPC / Solana RPC / TronGrid
|
||||
# из swap-orchestrator (custodial /wallets/{chain}/swap), relay-proxy
|
||||
# (/api/relay/*), sign-raw-evm-tx, sign-and-broadcast-tx идут через
|
||||
# этот HTTP proxy (squid-style). Read-only endpoints (/balance,
|
||||
# /transactions, /send, /prices) идут direct.
|
||||
# Format: http://[user:pass@]host:port (HTTPS proxy: https:// prefix)
|
||||
OUTBOUND_PROXY_URL=
|
||||
|
||||
# ── DB fallback (если Vault недоступен при старте) ─────────────────
|
||||
DB_HOST=
|
||||
DB_PORT=5432
|
||||
DB_USER=
|
||||
DB_PASSWORD=
|
||||
DB_NAME=
|
||||
Reference in New Issue
Block a user