-
Notifications
You must be signed in to change notification settings - Fork 88
Expand file tree
/
Copy pathenv.example
More file actions
61 lines (48 loc) · 3.57 KB
/
Copy pathenv.example
File metadata and controls
61 lines (48 loc) · 3.57 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
# ─── Database ────────────────────────────────────────────────────────────────
# Neon Postgres connection string.
# Find this in your Neon dashboard → Project → Connection Details.
# Always include ?sslmode=require for production.
DATABASE_URL=postgres://user:password@ep-<endpoint-id>.<region>.aws.neon.tech/neondb?sslmode=require
# ─── Auth ─────────────────────────────────────────────────────────────────────
# Random secret used to sign JWT session tokens.
# Must be at least 32 characters. Generate one with:
# node -e "console.log(require('crypto').randomBytes(48).toString('hex'))"
JWT_SECRET=replace_with_a_long_random_secret_minimum_32_characters
# ─── Stellar / Soroban ────────────────────────────────────────────────────────
# Horizon RPC endpoint. Defaults to testnet if not set.
STELLAR_HORIZON_URL=https://horizon-testnet.stellar.org
# Soroban JSON-RPC endpoint used for contract transaction confirmation.
SOROBAN_RPC_URL=https://soroban-testnet.stellar.org
# Explorer transaction prefix; change to /public/tx for mainnet.
STELLAR_EXPLORER_TX_URL=https://stellar.expert/explorer/testnet/tx
# Shared bearer secret for POST /api/tx-recovery/poll.
TX_RECOVERY_WORKER_SECRET=replace_with_a_long_random_secret
# Optional worker loop interval in milliseconds (default: 10000).
# TX_POLL_INTERVAL_MS=10000
# Network passphrase — must match the Horizon endpoint above.
# Testnet : "Test SDF Network ; September 2015"
# Mainnet : "Public Global Stellar Network ; September 2015"
STELLAR_NETWORK_PASSPHRASE=Test SDF Network ; September 2015
# Platform escrow account (Stellar public key) used by the worker.
ESCROW_ACCOUNT_ID=G...
# ─── File Upload (Milestone Deliverables) ──────────────────────────────────────
# 32-byte hex key used to encrypt deliverable files at rest.
# Generate one with: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
FILE_ENCRYPTION_KEY=replace_with_a_64_char_hex_string
# Directory where encrypted deliverable files are stored.
# Defaults to <project-root>/uploads if not set.
# FILE_UPLOAD_DIR=/data/taskchain/uploads
# ─── Idempotency ──────────────────────────────────────────────────────────────
# Retention window (in hours) for stored idempotency records on payment routes.
# Defaults to 24. Records older than this are purged by:
# pnpm idempotency:cleanup
# IDEMPOTENCY_TTL_HOURS=24
# ─── Optional ─────────────────────────────────────────────────────────────────
# Override the freelancer dashboard API base URL (defaults to /api/freelancer/dashboard).
# NEXT_PUBLIC_DASHBOARD_API_URL=https://your-domain.com
# Email notifications. Without RESEND_API_KEY, emails are logged to the console
# (dev fallback) instead of being sent.
# RESEND_API_KEY=re_...
# EMAIL_FROM=TaskChain <notifications@your-domain.com>
# Set to "true" to turn off the email channel entirely (in-app still works).
# NOTIFICATIONS_EMAIL_DISABLED=true