BOT_TOKEN=your_bot_token_here DATABASE_URL=sqlite:///data/duty_teller.db MINI_APP_BASE_URL= HTTP_PORT=8080 # Miniapp access: comma-separated Telegram usernames (no @). Empty = no one allowed. ALLOWED_USERNAMES=username1,username2 ADMIN_USERNAMES=admin1,admin2 # Optional: allow by phone (user sets phone via /set_phone in bot). Comma-separated; normalized to digits for comparison. # ALLOWED_PHONES=79001234567,79007654321 # ADMIN_PHONES=79001111111 # Dev only: set to 1 to allow calendar without Telegram initData (insecure; do not use in production). # MINI_APP_SKIP_AUTH=1 # Optional: URL of a public ICS calendar (e.g. holidays). Days from this calendar are highlighted on the duty grid; click "i" for summary. # EXTERNAL_CALENDAR_ICS_URL=https://example.com/holidays.ics # Timezone for the pinned duty message in groups (e.g. Europe/Moscow). # DUTY_DISPLAY_TZ=Europe/Moscow # Default UI language when user language is unknown: en or ru (default: en). # DEFAULT_LANGUAGE=en # Reject Telegram initData older than this (seconds). 0 = do not check (default). # INIT_DATA_MAX_AGE_SECONDS=0 # Comma-separated CORS origins; leave unset for *. # CORS_ORIGINS=