forked from Deen-Bridge/dnb-backend
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
108 lines (88 loc) · 4.22 KB
/
Copy path.env.example
File metadata and controls
108 lines (88 loc) · 4.22 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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# DeenBridge Backend Environment Variables
# MongoDB connection string
MONGO_URI=mongodb+srv://user:password@cluster.mongodb.net/dnb-backend?retryWrites=true&w=majority
# JWT secret for authentication (use a strong random string, min 32 characters)
JWT_SECRET=your_jwt_secret_here
# Node environment (development, production, test)
NODE_ENV=development
# Deployed frontend origin — used to build email verification links
# (e.g. https://your-frontend.vercel.app). If wrong/unset, onboarding
# verification links will point at localhost and never work.
FRONTEND_URL=http://localhost:3000
# Server port
PORT=5000
# Cloudinary configuration for file uploads
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
CLOUDINARY_URL=cloudinary://api_key:api_secret@cloud_name
# SendLib for transactional email (verification, OTP, receipts). Used by
# services/emails/sendMail.js over HTTPS, so it works on hosts that block
# outbound SMTP (e.g. Render free tier). Sends through your connected
# Gmail / Google Workspace account — no domain verification needed.
# Generate a key in the SendLib dashboard: https://sendlib.samueltuoyo.com/
SENDLIB_API_KEY=your_sendlib_api_key
# SendLib send endpoint (no default in code — must be set here).
SENDLIB_API_URL=https://sendlib.samueltuoyo.com/api/send
# Sender address: MUST be the Gmail / Workspace account you connected in
# SendLib. Prefer a Workspace address on your own domain (e.g. no-reply@deenbridge.app).
EMAIL_FROM=no-reply@deenbridge.com
# Stellar blockchain network (testnet or mainnet)
STELLAR_NETWORK=testnet
# Resilient Horizon Client Configuration (Optional)
# HORIZON_URLS=https://horizon-testnet.stellar.org,https://horizon-testnet.stellar.org (Comma-separated list of Horizon endpoints)
# HORIZON_TIMEOUT_MS=10000 (Request timeout in milliseconds)
# HORIZON_MAX_RETRIES=3 (Maximum number of retries for transient errors)
# HORIZON_CB_THRESHOLD=5 (Number of consecutive failures before opening the circuit breaker)
# HORIZON_CB_COOLDOWN_MS=30000 (Time to wait in ms before attempting a half-open probe)
# Stellar donation fund (public key only - the secret key must NEVER be stored here)
DONATION_WALLET_PUBLIC_KEY=GXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
# Platform fee split on purchases (0-20, 0 disables the split)
PLATFORM_FEE_PERCENT=0
PLATFORM_WALLET_PUBLIC_KEY=GXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
# SEP-1 stellar.toml (/.well-known/stellar.toml) — optional, omitted when blank
STELLAR_PLATFORM_PUBLIC_KEY=
ORG_NAME=
ORG_URL=
ORG_DESCRIPTION=
ORG_LOGO=
ORG_TWITTER=
ORG_GITHUB=
# SEP-10 "Sign in with Stellar" (all optional — feature returns 503 until set).
# SEP10_SIGNING_SECRET is a DEDICATED auth keypair (S…) that never holds funds,
# so it does not affect the non-custodial model for user money. Its public key is
# what you publish as SIGNING_KEY / stellar.toml SIGNING_KEY.
SEP10_SIGNING_SECRET=
SEP10_HOME_DOMAIN=deenbridge.app
SEP10_WEB_AUTH_DOMAIN=api.deenbridge.app
# Challenge lifetime in seconds (default 300).
SEP10_CHALLENGE_TIMEOUT=300
# Optional: publish a SEP-10 WEB_AUTH_ENDPOINT in stellar.toml for discovery.
SEP10_WEB_AUTH_ENDPOINT=
# SEP-10 signing key public counterpart (published in /.well-known/stellar.toml)
SIGNING_KEY=
# Soroban "On-Chain Giving" escrow contract id (published in /.well-known/stellar.toml).
# Testnet deployment: CBP3UFPBCVGNQPTWIHHRH52VDD4PE64JGFPREF7GVFIIF7G4DZOWKX7Z
GIVING_ESCROW_CONTRACT_ID=
# Token TTLs
ACCESS_TOKEN_TTL=15m
REFRESH_TOKEN_TTL=30d
# Redis Configuration (optional - app works without Redis but with reduced performance)
# Option 1: Use REDIS_URL for full connection string (recommended for cloud services)
# REDIS_URL=redis://username:password@host:port
# Option 2: Use separate credentials
REDIS_HOST=localhost
REDIS_PORT=6379
# REDIS_USERNAME=default
# REDIS_PASSWORD=your_password
# Jitsi configuration for video calls (optional)
# JITSI_MEET_DOMAIN=your_jitsi_domain
# JITSI_APP_ID=your_app_id
# JITSI_PRIVATE_KEY=your_private_key
# JITSI_PUBLIC_KEY_ID=your_public_key_id
# JITSI_KID=your_kid
# JITSI_TENANT=your_tenant
# Durable Mongo-backed background jobs (tests use inline)
JOBS_ENABLED=true
QUEUE_DRIVER=mongo
JOBS_DASHBOARD_TOKEN=replace_with_a_long_random_token