Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
200 changes: 100 additions & 100 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,100 +1,100 @@
DATABASE_URL="postgresql://streamgive:streamgive@localhost:5432/streamgive"
PORT=3000
SOROBAN_RPC_URL="https://soroban-testnet.stellar.org"
# Optional: network passphrase used for Soroban RPC transactions and read-only simulations.
# Defaults to the Stellar Testnet passphrase when unset.
# STELLAR_NETWORK_PASSPHRASE="Test SDF Network ; September 2015"

# Optional: Stellar network passphrase used for read-only contract simulations.
# Defaults to the SDK's Testnet passphrase when unset; set this when pointing
# at Mainnet or a standalone network.
# STELLAR_NETWORK_PASSPHRASE="Test SDF Network ; September 2015"

# The live testnet deployment (see streamgive-contracts/deployments.json).
# Public contract ids, not secrets.
NGO_REGISTRY_CONTRACT_ID="CCPWQBI7FV2CZ7EECOVZ5XHOHK5S7CS6XTBDWPWHBEOKPTIASNGOBQFH"
DONATION_VAULT_CONTRACT_ID="CDLKBGX3VTFZZBVBNQYHF47PQO6I7UTBYVVQE3BPJDONF6G4U33Z7VLH"
# Optional: comma-separated contract IDs to watch for indexer status reporting (also accepts CONTRACT_IDS).
# Defaults to NGO_REGISTRY_CONTRACT_ID and DONATION_VAULT_CONTRACT_ID when unset.
# WATCHED_CONTRACT_IDS=

INDEXER_POLL_INTERVAL_MS=5000
# Optional: ledger to start from on a fresh run (no checkpoint). Ignored once a
# checkpoint exists. Useful for backfilling history from a specific ledger.
# INDEXER_START_LEDGER=
# Optional: maximum number of events fetched and processed in one poll.
# Must be a positive integer. When unset, the RPC server's default applies.
# INDEXER_MAX_EVENTS_PER_POLL=100
# Optional: number of ledgers the indexer is allowed to lag behind the network
# tip before the /health/ready endpoint starts returning 503. Defaults to 100.
# INDEXER_LAG_THRESHOLD=100
# INDEXER_LAG_THRESHOLD=100

# Comma-separated origins allowed to call this API from a browser.
# Must include the frontend's origin or every request fails as
# "Failed to fetch". Defaults to the local frontend when unset.
CORS_ORIGINS="http://localhost:3001"

# Stellar public key (G...) that must sign requests to admin routes —
# should match the `admin` set on the deployed contracts.
# Replace this with your own key; never commit a real key here.
ADMIN_ADDRESS="GXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

# Optional: additional admin keys, comma-separated, unioned with
# ADMIN_ADDRESS above. Set this when more than one key needs to sign admin
# requests (key rotation, several operators). Either variable alone is
# enough; admin routes 503 only when both are empty.
ADMIN_ADDRESSES=""

# Optional: if set, notification events (streams, NGO approval/revocation, application review)
# are POSTed here as JSON.
NOTIFY_WEBHOOK_URL=

# Optional: if set, every webhook POST carries an x-streamgive-signature
# header holding an HMAC-SHA256 of the raw request body, keyed with this
# value, so receivers can tell a real notification from a forged one.
NOTIFY_WEBHOOK_SECRET=

# Optional: maximum duration in milliseconds to wait for a webhook POST to
# complete. Invalid or non-positive values fall back to the default (3000 ms).
# NOTIFY_WEBHOOK_TIMEOUT_MS=3000

# Optional: when set, GET /metrics requires the header
# "Authorization: Bearer <token>". Leave unset to keep /metrics public.
# METRICS_TOKEN=

# Optional: rate limiting configuration.
# RATE_LIMIT_MAX=100
# RATE_LIMIT_WINDOW="1 minute"
# RATE_LIMIT_APPLICATION_MAX=5
# RATE_LIMIT_APPLICATION_WINDOW="1 minute"
# TRUST_PROXY=true # true (default) | false | hop count (e.g. 1) | comma-separated IPs

# fatal | error | warn | info | debug | trace
LOG_LEVEL=info
# Keep notification logs and resolved indexer dead letters for this many days.
# Unresolved dead letters are never removed. Defaults to 90.
# LOG_RETENTION_DAYS=90

# Leave unset locally — set to "production" only in deployment, where it
# also switches logging from pino-pretty to structured JSON. The Docker
# image sets this itself; see ENVIRONMENT.md.
# NODE_ENV=production


# Planned: if set, StreamGive sends notification events through Resend (currently in log-only stub mode).
RESEND_API_KEY=

# Planned: required when RESEND_API_KEY is configured.
NOTIFY_EMAIL_FROM=

# Public API origin used to build NGO contact-email verification links.
# Required for NGO application email verification.
API_PUBLIC_URL=

# Planned: recipient for email notifications.
NOTIFY_EMAIL_TO=

# Optional: milliseconds each health check dependency call is allowed before
# it is reported as degraded. Defaults to 3000 (3 s).
HEALTH_CHECK_TIMEOUT_MS=3000
DATABASE_URL="postgresql://streamgive:streamgive@localhost:5432/streamgive"
PORT=3000
SOROBAN_RPC_URL="https://soroban-testnet.stellar.org"
# Optional: network passphrase used for Soroban RPC transactions and read-only simulations.
# Defaults to the Stellar Testnet passphrase when unset.
# STELLAR_NETWORK_PASSPHRASE="Test SDF Network ; September 2015"
# Optional: Stellar network passphrase used for read-only contract simulations.
# Defaults to the SDK's Testnet passphrase when unset; set this when pointing
# at Mainnet or a standalone network.
# STELLAR_NETWORK_PASSPHRASE="Test SDF Network ; September 2015"
# The live testnet deployment (see streamgive-contracts/deployments.json).
# Public contract ids, not secrets.
NGO_REGISTRY_CONTRACT_ID="CCPWQBI7FV2CZ7EECOVZ5XHOHK5S7CS6XTBDWPWHBEOKPTIASNGOBQFH"
DONATION_VAULT_CONTRACT_ID="CDLKBGX3VTFZZBVBNQYHF47PQO6I7UTBYVVQE3BPJDONF6G4U33Z7VLH"
# Optional: comma-separated contract IDs to watch for indexer status reporting (also accepts CONTRACT_IDS).
# Defaults to NGO_REGISTRY_CONTRACT_ID and DONATION_VAULT_CONTRACT_ID when unset.
# WATCHED_CONTRACT_IDS=
INDEXER_POLL_INTERVAL_MS=5000
# Optional: ledger to start from on a fresh run (no checkpoint). Ignored once a
# checkpoint exists. Useful for backfilling history from a specific ledger.
# INDEXER_START_LEDGER=
# Optional: maximum number of events fetched and processed in one poll.
# Must be a positive integer. When unset, the RPC server's default applies.
# INDEXER_MAX_EVENTS_PER_POLL=100
# Optional: number of ledgers the indexer is allowed to lag behind the network
# tip before the /health/ready endpoint starts returning 503. Defaults to 100.
# INDEXER_LAG_THRESHOLD=100
# INDEXER_LAG_THRESHOLD=100
# Comma-separated origins allowed to call this API from a browser.
# Must include the frontend's origin or every request fails as
# "Failed to fetch". Defaults to the local frontend when unset.
CORS_ORIGINS="http://localhost:3001"
# Stellar public key (G...) that must sign requests to admin routes —
# should match the `admin` set on the deployed contracts.
# Replace this with your own key; never commit a real key here.
ADMIN_ADDRESS="GXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
# Optional: additional admin keys, comma-separated, unioned with
# ADMIN_ADDRESS above. Set this when more than one key needs to sign admin
# requests (key rotation, several operators). Either variable alone is
# enough; admin routes 503 only when both are empty.
ADMIN_ADDRESSES=""
# Optional: if set, notification events (streams, NGO approval/revocation, application review)
# are POSTed here as JSON.
NOTIFY_WEBHOOK_URL=
# Optional: if set, every webhook POST carries an x-streamgive-signature
# header holding an HMAC-SHA256 of the raw request body, keyed with this
# value, so receivers can tell a real notification from a forged one.
NOTIFY_WEBHOOK_SECRET=
# Optional: maximum duration in milliseconds to wait for a webhook POST to
# complete. Invalid or non-positive values fall back to the default (3000 ms).
# NOTIFY_WEBHOOK_TIMEOUT_MS=3000
# Optional: when set, GET /metrics requires the header
# "Authorization: Bearer <token>". Leave unset to keep /metrics public.
# METRICS_TOKEN=
# Optional: rate limiting configuration.
# RATE_LIMIT_MAX=100
# RATE_LIMIT_WINDOW="1 minute"
# RATE_LIMIT_APPLICATION_MAX=5
# RATE_LIMIT_APPLICATION_WINDOW="1 minute"
# TRUST_PROXY=true # true (default) | false | hop count (e.g. 1) | comma-separated IPs
# fatal | error | warn | info | debug | trace
LOG_LEVEL=info
# Keep notification logs and resolved indexer dead letters for this many days.
# Unresolved dead letters are never removed. Defaults to 90.
# LOG_RETENTION_DAYS=90
# Leave unset locally — set to "production" only in deployment, where it
# also switches logging from pino-pretty to structured JSON. The Docker
# image sets this itself; see ENVIRONMENT.md.
# NODE_ENV=production
# Planned: if set, StreamGive sends notification events through Resend (currently in log-only stub mode).
RESEND_API_KEY=
# Planned: required when RESEND_API_KEY is configured.
NOTIFY_EMAIL_FROM=
# Public API origin used to build NGO contact-email verification links.
# Required for NGO application email verification.
API_PUBLIC_URL=
# Planned: recipient for email notifications.
NOTIFY_EMAIL_TO=
# Optional: milliseconds each health check dependency call is allowed before
# it is reported as degraded. Defaults to 3000 (3 s).
HEALTH_CHECK_TIMEOUT_MS=3000
Loading
Loading