# Discord Bot Configuration DISCORD_TOKEN=your_bot_token_here # Recording Configuration RECORDINGS_DIR=./recordings RECORDING_SEGMENT_MS=5000 VERBOSE=false # Decoder Configuration DECODER_ROTATE_MS=5000 DECODER_COOLDOWN_MS=30000 # Audio Configuration AUDIO_STREAM_SILENCE_DURATION_MS=3000 PACKET_FILTER_MIN_SIZE=8 OPUS_FRAME_SIZE=960 AUDIO_SAMPLE_RATE=48000 AUDIO_CHANNELS=2 AVATAR_SIZE=64 # Webserver Configuration WEBSERVER_PORT=3000 # Connection Configuration VOICE_CONNECTION_TIMEOUT_MS=15000 RECONNECT_TIMEOUT_MS=5000 # Voice Recording Selection # VOICE_GUILD_ID falls back to legacy GUILD_ID when omitted. GUILD_ID=legacy_voice_guild_id VOICE_GUILD_ID=voice_guild_id VOICE_CHANNEL_ID=voice_channel_id # Logging Configuration LOG_LEVEL=info NODE_ENV=development # Moderation Configuration TELE_UPLOAD_URL=https://upload.asepharyana.my.id/api/upload ATTACHMENT_UPLOAD_TIMEOUT_MS=30000 ATTACHMENT_MAX_SIZE_MB=100 ATTACHMENT_RETRY_ATTEMPTS=3 BACKLOG_SYNC_HOURS=24 BACKLOG_SYNC_BATCH_SIZE=100 # AI Analysis Configuration AI_ANALYSIS_ENABLED=false AI_LLM_API_KEY=your_9router_key_here AI_LLM_BASE_URL=https://9router.asepharyana.tech/v1 AI_LLM_MODEL=free # Vision model for image/video moderation (falls back to AI_LLM_MODEL if unset) AI_LLM_VISION_MODEL=multimodal # Database Configuration (PostgreSQL) # Option 1: Use DATABASE_URL for connection string # DATABASE_URL=postgresql://user:password@localhost:5432/discord_bot # Option 2: Use individual connection parameters # POSTGRES_HOST=localhost # POSTGRES_PORT=5432 # POSTGRES_USER=postgres # POSTGRES_PASSWORD=your_password_here # POSTGRES_DB=discord_bot # Redis Configuration (queue + persistent KV store) # REDIS_URL=redis://localhost:6379 # PostgreSQL Connection Pool Configuration # POSTGRES_POOL_MIN=2 # POSTGRES_POOL_MAX=10 # Auto-Delete Configuration AUTO_DELETE_FLAGGED_ENABLED=true AUTO_DELETE_FLAGGED_DRY_RUN=true AUTO_DELETE_MIN_CONFIDENCE=0.50 AUTO_DELETE_ALLOWED_SEVERITIES=critical,high,medium # Optional: comma-separated channel/user IDs to exclude # AUTO_DELETE_EXCLUDED_CHANNEL_IDS= # AUTO_DELETE_EXCLUDED_USER_IDS= # Optional: comma-separated category filter (empty = all categories) # AUTO_DELETE_ALLOWED_CATEGORIES= # Database Migration Configuration # Safe default: run migrations on startup before the app accepts traffic. AUTO_MIGRATE_ON_STARTUP=true # Cache Model Versioning # Bump this version when the vision/LLM model prompt changes significantly. # Old cache entries with mismatched versions are automatically ignored, forcing fresh analysis. # Format: "v" or "v--" # Example progression: v1 → v2-2026-06-02-terminal-fix → v3-2026-06-15-new-model # CACHE_MODEL_VERSION=v2-2026-06-02