# ============================================================================= # Broccolini Bot – Test environment template (no secrets) # Copy to .env.test and fill with TEST-only values. Run with ENV_FILE=.env.test # so changes are tried here first, then migrated to .env after confirmation. # See docs/setup/ENV_AND_SECURITY.md. Never commit .env or .env.test. # ============================================================================= # --- Discord: Core (use a test guild / bot if possible) --- DISCORD_TOKEN= # Bot token (test bot) DISCORD_APPLICATION_ID= # Application (client) ID DISCORD_GUILD_ID= # Test server ID # --- Discord: Channel & category IDs (test server) --- # Ticket creation: set one or both; /panel and /email-routing choose behavior DISCORD_TICKET_CATEGORY_ID= # Category for Discord-originated ticket channels (test) TICKET_CATEGORY_ID= # Category for email-originated ticket channels (test) DISCORD_THREAD_CHANNEL_ID= # Text channel for Discord ticket threads (optional) EMAIL_THREAD_CHANNEL_ID= # Text channel for email ticket threads (optional) # Category display names (primary must match the category name in Discord; overflow folders are created as "{name} (Overflow 1)", etc.) TICKET_CATEGORY_NAME=Open Tickets TICKET_T2_CATEGORY_NAME=Tier 2 Escalated Tickets TICKET_T3_CATEGORY_NAME=Tier 3 Escalated Tickets # Escalation categories (tier 2 and tier 3; optional for minimal test) DISCORD_ESCALATED_CATEGORY_ID= # Fallback escalation category (Discord) EMAIL_ESCALATED_CATEGORY_ID= # Fallback escalation category (email); legacy alias: ESCALATED_CATEGORY_ID DISCORD_ESCALATED2_CHANNEL_ID= # Tier 2 escalation category/channel (Discord) DISCORD_ESCALATED3_CHANNEL_ID= # Tier 3 escalation category/channel (Discord) EMAIL_ESCALATED2_CHANNEL_ID= # Tier 2 escalation category ID (email); env name *_CHANNEL_* is legacy EMAIL_ESCALATED3_CHANNEL_ID= # Tier 3 escalation category ID (email) # --- Logging, transcripts, and utility --- ROLE_ID_TO_PING= TRANSCRIPT_CHANNEL_ID= LOGGING_CHANNEL_ID= DEBUGGING_CHANNEL_ID= BACKUP_EXPORT_CHANNEL_ID= ACCOUNT_INFO_CHANNEL_ID= DISCORD_CHANNEL_ID= # --- Discord: Ticket copy & buttons --- ESCALATION_MESSAGE= BUTTON_LABEL_CLOSE=Close Ticket BUTTON_LABEL_CLAIM=Claim BUTTON_LABEL_UNCLAIM=Unclaim BUTTON_EMOJI_CLOSE=🔒 BUTTON_EMOJI_CLAIM=📌 BUTTON_EMOJI_UNCLAIM=🔓 # --- Google / Gmail (test inbox / separate OAuth client optional) --- GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= REFRESH_TOKEN= MY_EMAIL= # --- Server & URLs --- # NGROK_URL= # Optional; public URL if you use ngrok for webhooks DISCORD_ONLY_PORT=5000 # HEALTHCHECK_HOST= # --- bOSScord (support cockpit) --- # BOSSCORD_API_KEY= # BOSSCORD_CORS_ORIGIN=* # --- Database (test cluster or local) --- MONGODB_URI= # e.g. mongodb://broccoli_bot:CHANGE_ME@localhost:27017/broccoli_db_test?authSource=broccoli_db_test # MONGODB_DATABASE= # --- Branding & copy --- SUPPORT_NAME=Support LOGO_URL= EMAIL_SIGNATURE= TICKET_CLOSE_SUBJECT_PREFIX=[Resolved] TICKET_CLOSE_MESSAGE= TICKET_CLOSE_SIGNATURE= DISCORD_CLOSE_MESSAGE= DISCORD_TRANSCRIPT_MESSAGE= DISCORD_AUTO_CLOSE_MESSAGE= # --- Ticket limits & permissions --- GLOBAL_TICKET_LIMIT=5 TICKET_LIMIT_PER_CATEGORY=3 RATE_LIMIT_TICKETS_PER_USER=0 RATE_LIMIT_WINDOW_MINUTES=60 BLACKLISTED_ROLES= ADDITIONAL_STAFF_ROLES= # --- Auto-close --- AUTO_CLOSE_ENABLED=false AUTO_CLOSE_AFTER_HOURS=72 AUTO_CLOSE_MESSAGE= # --- Reminders --- REMINDER_ENABLED=false REMINDER_AFTER_HOURS=24 REMINDER_MESSAGE= TICKET_WELCOME_MESSAGE= TICKET_CLAIMED_MESSAGE= TICKET_UNCLAIMED_MESSAGE= # --- Priority --- PRIORITY_ENABLED=false DEFAULT_PRIORITY=normal PRIORITY_HIGH_EMOJI=🔴 PRIORITY_MEDIUM_EMOJI=🟡 PRIORITY_LOW_EMOJI=🟢 # --- Claiming --- CLAIM_TIMEOUT_ENABLED=false CLAIM_TIMEOUT_HOURS=48 AUTO_UNCLAIM_ENABLED=false AUTO_UNCLAIM_AFTER_HOURS=24 ALLOW_CLAIM_OVERWRITE=false # --- Thread-style tickets (legacy) --- USE_THREADS=false THREAD_PARENT_CHANNEL= # --- Embed colors (hex with 0x prefix) --- EMBED_COLOR_OPEN=0x00FF00 EMBED_COLOR_CLOSED=0xFF0000 EMBED_COLOR_CLAIMED=0xFFFF00 EMBED_COLOR_ESCALATED=0xFF6600 EMBED_COLOR_INFO=0x1e2124 # --- Game list (comma-separated; used for detection and tags) --- GAME_LIST=Project Zomboid, Minecraft