# ───────────────────────────────────────────────────────────── # Required # ───────────────────────────────────────────────────────────── DISCORD_TOKEN= # Git repo to run (wrapper clones nightly and on boot) REPO_URL= REPO_BRANCH=main # If your repo is private, you can use a token; leave empty if not used REPO_TOKEN= # Wrapper update time (UTC) & test bump policy CHECK_TIME_UTC=03:00 IGNORE_TEST_LEVEL=1 # 1 = ignore updates that change only the -T test suffix # Optional commit subject feed used by your boot notice SHAI_REPO_RSS= # Where the bot stores data inside the container (don’t change) SHAI_DATA_FILE=/data/data.json # ───────────────────────────────────────────────────────────── # Volumes (external, never wiped by stack re-deploys) # Create once: docker volume create shaiwatcher_data && docker volume create shaiwatcher_cache # ───────────────────────────────────────────────────────────── SHAI_VOL_DATA=shaiwatcher_data SHAI_VOL_CACHE=shaiwatcher_cache # ───────────────────────────────────────────────────────────── # Playwright / Headless browser (for DD scraping) # Build with: docker compose build --build-arg WITH_PLAYWRIGHT=1 # ───────────────────────────────────────────────────────────── WITH_PLAYWRIGHT=1 # 1 to bake Chromium+Playwright into the image SHAI_DD_CHANNEL_ID= SHAI_DD_FETCHER=playwright # playwright|aiohttp (playwright recommended) SHAI_DD_PW_TIMEOUT_MS=60000 # nav timeout SHAI_DD_PW_WAIT= # domcontentloaded|load|networkidle (empty = default domcontentloaded) # ───────────────────────────────────────────────────────────── # Slash command scope (your bot already honors this) # ───────────────────────────────────────────────────────────── SHAI_SLASH_GUILD_ONLY=true SHAI_HOME_GUILD_ID= # ───────────────────────────────────────────────────────────── # Channels # ───────────────────────────────────────────────────────────── SHAI_MOD_CHANNEL_ID= SHAI_MODLOG_CHANNEL_ID= SHAI_USERSLIST_CHANNEL_ID= SHAI_REPORT_CHANNEL_ID= SHAI_PIRATES_LIST_CHANNEL_ID= SHAI_TRIGGER_CHANNEL_ID= # Auto-VC SHAI_AUTO_VC_CATEGORY_ID= # ───────────────────────────────────────────────────────────── # Reaction messages # ───────────────────────────────────────────────────────────── SHAI_RULES_MESSAGE_ID= SHAI_ENGAGEMENT_MESSAGE_ID= SHAI_NICKNAME_MESSAGE_ID= # ───────────────────────────────────────────────────────────── # Roles # ───────────────────────────────────────────────────────────── SHAI_RULES_ROLE_ID= SHAI_ENGAGEMENT_ROLE_ID= SHAI_FULL_ACCESS_ROLE_ID= SHAI_ADMIN_ROLE_ID= SHAI_FIELD_MOD_ROLE_ID= SHAI_INTEL_MOD_ROLE_ID= SHAI_MODERATOR_ROLE_ID= # ───────────────────────────────────────────────────────────── # Auto-VC # ───────────────────────────────────────────────────────────── SHAI_VC_NAME_PREFIX=DD Crew SHAI_AUTO_VC_CLEANUP_DELAY=30 # ───────────────────────────────────────────────────────────── # Threat weights # ───────────────────────────────────────────────────────────── SHAI_THREAT_W_KILL=0.30 SHAI_THREAT_W_DESTRUCTION=0.40 SHAI_THREAT_W_GROUP=0.20 SHAI_THREAT_W_SKILL=0.10 SHAI_THREAT_GROUP_THRESHOLD=3 SHAI_THREAT_MIN_SAMPLES_FOR_STATS=3 # ───────────────────────────────────────────────────────────── # Toggles # ───────────────────────────────────────────────────────────── SHAI_NICK_NUDGE_LOOP_ENABLED=false SHAI_USER_CARDS_CRON_ENABLED=true # ───────────────────────────────────────────────────────────── # SpicePay defaults # ───────────────────────────────────────────────────────────── SHAI_SPICEPAY_LSR_CUT_PERCENT=10 SHAI_SPICEPAY_BASE_WEIGHT=25 SHAI_SPICEPAY_CARRIER_BONUS=12.5 SHAI_SPICEPAY_CRAWLER_BONUS=12.5 # ───────────────────────────────────────────────────────────── # Emojis (IDs) # ───────────────────────────────────────────────────────────── SHAI_EMOJI_MELANGE_ID= SHAI_EMOJI_SAND_ID= SHAI_EMOJI_CARRIER_CRAWLER_ID= # ───────────────────────────────────────────────────────────── # Docs site (optional) # ───────────────────────────────────────────────────────────── SHAI_DOCS_HOST=0.0.0.0 SHAI_DOCS_PORT=8910 SHAI_DOCS_TITLE=ShaiWatcher Commands SHAI_DOCS_SUPPORT_URL= SHAI_DOCS_SUPPORT_LABEL=Buy me a ☕ # ───────────────────────────────────────────────────────────── # Wrapper knobs (optional) # ───────────────────────────────────────────────────────────── PIP_INSTALL_REQUIREMENTS=1 WRAPPER_STOP_TIMEOUT=25 # Keep Docker base locale happy LANG=C.UTF-8