mirror of
https://github.com/snoups/remnashop.git
synced 2026-04-20 09:56:23 +00:00
- added `ButtonType.TEXT` with click handler that sends message/media to user - added `color` and `media_file_id`/`media_type` fields to `MenuButtonDto` - added `UpdateMenuButtonColor` and `UpdateMenuButtonMedia` use cases - added validation for TEXT payload length and WEB_APP t.me link restriction - added `COLOR` state to `RemnashopMenuEditor` FSM - split importer sync into "sync from panel" and "sync from bot" flows - added `SyncAllUsersFromBot` use case (bot → panel reverse sync) - added new importer FSM states: `SYNC_PANEL`, `SYNC_BOT`, `SYNC_PANEL_COMPLETED`, `SYNC_BOT_COMPLETED` - added `plan_is_modified` fallback: allow renewal when user's plan changed but ID matches - changed `handle_webhook` return type to `Union[tuple[UUID, TransactionStatus], None]` across all gateways - added Cryptomus `confirm_check` webhook handling (returns `None` to skip) - removed Platega `CHARGEBACKED` status and moved verification out of handler - renamed `ntf-broadcast.message` i18n key to `raw-message` for general reuse - narrowed notification error exception handling from `TelegramAPIError` to specific subtypes - fixed device list display: separate fields for platform/model/icon/created_at in delete confirmation
97 lines
3.1 KiB
Plaintext
97 lines
3.1 KiB
Plaintext
# !!! WARNING: This minimal .env.example file provides a template for configuring the Remnashop.
|
|
# Full configuration options and instructions can be found in the official documentation:
|
|
# https://remnashop.mintlify.app/docs/en/install/environment-variables
|
|
|
|
|
|
# Domain through which your bot is publicly accessible.
|
|
# Used for receiving webhooks from services (e.g., Telegram, payment systems).
|
|
# !!! WARNING: Specify domain WITHOUT HTTP/HTTPS and WITHOUT trailing slash.
|
|
APP_DOMAIN=change_me
|
|
|
|
# Encryption key for securing sensitive data (e.g., payment tokens) in the database.
|
|
# !!! CRITICALLY IMPORTANT: Never share this token publicly.
|
|
APP_CRYPT_KEY=change_me
|
|
|
|
# Telegram Bot API token. Obtain it from https://t.me/BotFather/
|
|
# !!! CRITICALLY IMPORTANT: Never share this token publicly. It grants full control over your bot.
|
|
BOT_TOKEN=change_me
|
|
|
|
# Secret token for webhook verification. Ensures webhook requests originate from Telegram.
|
|
BOT_SECRET_TOKEN=change_me
|
|
|
|
# Owner Telegram user ID. Grants elevated permissions.
|
|
BOT_OWNER_ID=change_me
|
|
|
|
# Telegram username of the support account used for deep-linking (without @).
|
|
BOT_SUPPORT_USERNAME=change_me
|
|
|
|
# Controls the behavior of the "connect" button:
|
|
# - empty or false -> opens the subscription page in the browser
|
|
# - true -> opens the subscription page in WebApp
|
|
# - URL (e.g., https://example.com/) -> opens the specified URL in WebApp
|
|
# To use the subscription page, deploy the remnawave-subscription-page:
|
|
# https://docs.rw/docs/install/remnawave-subscription-page
|
|
# To use a custom subscription page (Orion):
|
|
# https://github.com/legiz-ru/Orion
|
|
# To use the Mini App (Maposia):
|
|
# https://github.com/maposia/remnawave-telegram-sub-mini-app
|
|
BOT_MINI_APP=false
|
|
|
|
# Hostname or Docker service name for connecting to the Remnawave API.
|
|
# Without HTTP/HTTPS and without trailing slash.
|
|
REMNAWAVE_HOST=remnawave
|
|
|
|
# API token for authenticating with the Remnawave service.
|
|
# Created in the panel: Settings → API Tokens.
|
|
REMNAWAVE_TOKEN=change_me
|
|
|
|
# Secret token for verifying incoming webhooks from Remnawave.
|
|
# In the Remnawave Panel, this corresponds to WEBHOOK_SECRET_HEADER (env).
|
|
REMNAWAVE_WEBHOOK_SECRET=change_me
|
|
|
|
# Password for the database.
|
|
DATABASE_PASSWORD=change_me
|
|
|
|
|
|
|
|
# Optional settings with default values (uncomment and modify as needed):
|
|
# APP_HOST="0.0.0.0"
|
|
# APP_PORT=5000
|
|
# APP_LOCALES="ru"
|
|
# APP_DEFAULT_LOCALE="ru"
|
|
# APP_ASSETS_DIR="/app/assets"
|
|
# APP_ORIGINS=""
|
|
|
|
# BOT_PROXY_URL=""
|
|
# BOT_RESET_WEBHOOK=false
|
|
# BOT_DROP_PENDING_UPDATES=false
|
|
# BOT_SETUP_COMMANDS=true
|
|
# BOT_USE_BANNERS=true
|
|
|
|
# DATABASE_HOST="remnashop-db"
|
|
# DATABASE_PORT=5432
|
|
# DATABASE_NAME="remnashop"
|
|
# DATABASE_USER="remnashop"
|
|
# DATABASE_ECHO=false
|
|
# DATABASE_ECHO_POOL=false
|
|
# DATABASE_POOL_SIZE=10
|
|
# DATABASE_MAX_OVERFLOW=20
|
|
# DATABASE_POOL_TIMEOUT=30
|
|
# DATABASE_POOL_RECYCLE=1800
|
|
|
|
# LOG_TO_FILE=true
|
|
# LOG_LEVEL="DEBUG"
|
|
# LOG_ROTATION="100MB"
|
|
# LOG_COMPRESSION="zip"
|
|
# LOG_RETENTION="3 days"
|
|
|
|
# REDIS_HOST="remnashop-redis"
|
|
# REDIS_PORT=6379
|
|
# REDIS_NAME="0"
|
|
# REDIS_PASSWORD=""
|
|
|
|
# REMNAWAVE_CADDY_TOKEN=""
|
|
# REMNAWAVE_COOKIE=""
|
|
|
|
# REMNAWAVE_CF_CLIENT_ID=""
|
|
# REMNAWAVE_CF_CLIENT_SECRET="" |