mirror of
https://github.com/tiennm99/tiennm99bot.git
synced 2026-10-11 03:13:46 +00:00
compose.yml now holds each default as ${VAR:-default}, and the code keeps
no fallback values. The bot stops at startup on a missing or invalid
PORT or LOG_LEVEL, /addsticker refuses without STICKER_PACK_NAME, and the
renderer refuses to start until every RENDERER_* setting is a valid
value, listing each problem. Settings whose empty value means none or
all (MODULES, OWNER_ID, ADMIN_IDS, the API tokens) use ${VAR:-}.
The renderer's npm start and dev load .env when present, so a local run
works from a copy of .env.example.
BREAKING CHANGE: running outside compose now requires LOG_LEVEL and PORT
for the bot, STICKER_PACK_NAME for /addsticker, and every RENDERER_*
variable for the renderer.
62 lines
3.2 KiB
Bash
62 lines
3.2 KiB
Bash
# miti99bot — self-host (Coolify + MongoDB Atlas) environment.
|
|
# Copy to .env and fill in. .env is gitignored — never commit real secrets.
|
|
|
|
# ============================ Required ============================
|
|
# Telegram bot token from @BotFather.
|
|
TELEGRAM_BOT_TOKEN=123456:ABC-DEF...
|
|
|
|
# MongoDB Atlas connection. MONGO_URL is the full SRV string INCLUDING the
|
|
# db username + password — treat it as a secret (it is never logged).
|
|
# Create a least-privilege user: readWrite on this one database only.
|
|
MONGO_URL=mongodb+srv://botuser:STRONG_UNIQUE_PASSWORD@cluster0.xxxxx.mongodb.net/?retryWrites=true&w=majority
|
|
MONGO_DATABASE=miti99bot
|
|
|
|
# ============================ Operational =========================
|
|
# Comma-separated module list. Empty = load every module, including any module
|
|
# added later — so list them explicitly when a deployment should only gain a new
|
|
# module deliberately.
|
|
MODULES=util,misc,random,amlich,wordle,loldle,lol,stock,gold,coin,stats,monkeyd,sticker,alias,blacklist,weather
|
|
# Telegram user id for owner-only commands (renamed from BOT_OWNER_ID).
|
|
OWNER_ID=
|
|
# Comma-separated admin Telegram user ids (renamed from ADMIN_USER_IDS).
|
|
ADMIN_IDS=
|
|
|
|
# Sticker set /addsticker writes to. Every user contributes to this one pack.
|
|
# MUST end in _by_<this bot username>: Telegram requires that suffix on sets a
|
|
# bot creates and refuses to edit sets it did not create, so the suffix is what
|
|
# proves the pack is manageable. Created automatically, owned by OWNER_ID, on
|
|
# the first /addsticker if it does not exist yet. Required by /addsticker:
|
|
# the code has no fallback (compose.yml supplies this value as its default).
|
|
STICKER_PACK_NAME=miti99_by_miti99bot
|
|
|
|
# SOURCE_COMMIT (commit SHA) is read at startup for the deploynotify owner DM.
|
|
# Do NOT set it here. Coolify provides it at runtime. Keep "Include Source
|
|
# Commit in Build" disabled so Docker layer cache survives across commits.
|
|
# Local `docker compose up` has none, so deploynotify reports "unknown".
|
|
|
|
# PandaScore API token for the lol module's schedule fetches (free tier at
|
|
# https://app.pandascore.co/dashboard, no credit card). Secret — never logged.
|
|
# Without it every /lol* fetch fails; the stale cache covers ≤60 min.
|
|
LOL_PANDASCORE_TOKEN=
|
|
|
|
# Optional base URL of the animation renderer (the renderer/ service in this
|
|
# repository) for /wheelofnames, /gacha and /genshin, e.g.
|
|
# http://localhost:3000. compose.yml fixes it to http://renderer:3000, so set it
|
|
# only when running the bot outside compose. Leave blank to fall back to text.
|
|
RENDERER_URL=
|
|
|
|
# ============================ Runtime =============================
|
|
# Required: the code has no fallback. compose.yml supplies these values as its
|
|
# defaults; set them yourself when running outside compose.
|
|
# Log level: debug, info, warn, or error.
|
|
LOG_LEVEL=info
|
|
# Internal health server port.
|
|
PORT=8080
|
|
|
|
# ====================== Leave UNSET on self-host ==================
|
|
# KV_PROVIDER — auto-selects mongodb because MONGO_URL is set
|
|
# TELEGRAM_WEBHOOK_SECRET — long polling has no webhook
|
|
# GOLD_VNAPP_API_KEY — gold module auto-fetches + caches the key to Mongo
|
|
# Stock/coin/gold URL env overrides are not supported; modules use coded
|
|
# default providers.
|