⚙️ Configuration & Environment
Nexora uses type-safe environment validation powered by Zod and Dotenv.
📋 Environment Variables Breakdown
All configuration keys are documented in .env.example:
bash
# Node Environment ('development' | 'production')
NODE_ENV=production
# ------------------------------------------------------------------------------
# 1. DISCORD CREDENTIALS (Required)
# ------------------------------------------------------------------------------
DISCORD_TOKEN="your_discord_bot_token"
DISCORD_CLIENT_ID="866896791269933067"
# Optional: Guild ID for instant command registration during testing
DEV_GUILD_ID=""
# Optional: Comma-separated Discord User IDs who have developer access
DEV_IDS=""
# ------------------------------------------------------------------------------
# 2. DATABASE CONFIGURATION (Required)
# ------------------------------------------------------------------------------
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/nexora_db?schema=public"
# ------------------------------------------------------------------------------
# 3. EXPLORER & CRYPTO API KEYS (Optional for higher rate limits)
# ------------------------------------------------------------------------------
COINGECKO_API_KEY=""
ETHERSCAN_API_KEY=""
BSCSCAN_API_KEY=""
POLYGONSCAN_API_KEY=""
CRYPTOPANIC_API_KEY=""🗄️ Database Setup (PostgreSQL)
Nexora relies on PostgreSQL to persist:
- Monitored Wallets (
TrackedWalletmodel) - Price Alerts (
PriceAlertmodel) - User Portfolios (
PortfolioItemmodel) - Guild Channel Settings (
GuildConfigmodel) - Airdrop Notification Cache (
AirdropCachemodel)
Prisma CLI Helper Commands
- Generate Prisma Client:
npm run db:generate - Sync schema directly to database:
npm run db:push - Create and apply migration:
npm run db:migrate