docs(wiki): rewrite Quick Start for Telegram + Discord

2026-05-21 18:42:35 +03:00
parent e029edee89
commit 86b60f2ee9
2 changed files with 25 additions and 85 deletions
@@ -0,0 +1,25 @@
# Быстрый старт
## Telegram
1. Найдите бота по имени (например, `@YourBotName`).
2. Добавьте в группу и дайте права администратора.
3. Напишите `/start`, затем `/newgroup`.
4. Создайте первый batch: `/newsession`.
5. Опубликуйте: `/listsessions`.
## Discord
1. Пригласите application bot на сервер:
- Scopes: `bot`, `applications.commands`.
- Bot permissions: Send Messages, Embed Links, Manage Messages, Use Slash Commands.
2. Подождите 1–2 минуты (регистрация slash-команд).
3. Введите `/newsession` в канале.
4. Заполните title, dates, max-players, link.
5. Опубликуйте через `/listsessions`.
## Веб-дашборд
- Откройте Mini App из Telegram (кнопка Menu).
- Или зайдите на веб-сайт и авторизуйтесь через Telegram Login Widget.
- Управляйте группами, сессиями, шаблонами, bulk-операциями.
@@ -1,85 +0,0 @@
# Быстрый старт
Эта страница описывает минимальный запуск текущей версии GM-Relay **v1.9.9**.
## Требования
- Docker и Docker Compose для packaged-запуска.
- `.NET 10 SDK` для локальной разработки через `GM-Relay.slnx`.
- Telegram-бот, созданный через `@BotFather`.
- PostgreSQL поднимается автоматически в Docker Compose или Aspire.
## Docker Compose
1. Создайте `.env` из шаблона:
```powershell
Copy-Item .env.example .env
```
На Linux/macOS:
```bash
cp .env.example .env
```
2. Заполните обязательные переменные:
```env
TELEGRAM_BOT_TOKEN=YOUR_BOT_TOKEN_HERE
TELEGRAM_BOT_USERNAME=YOUR_BOT_USERNAME_HERE
TELEGRAM_MINI_APP_URL=https://your-domain.example/miniapp
POSTGRES_PASSWORD=StrongPasswordForDatabase
GMRELAY_WEB_PORT=8080
```
3. Запустите стек:
```bash
docker compose up -d
```
Compose поднимает:
- `db`: PostgreSQL 17 Alpine, БД `gmrelay_db`, пользователь `gmrelay`.
- `bot`: образ `git.codeanddice.ru/toutsu/gmrelay-bot:1.9.9`.
- `web`: образ `git.codeanddice.ru/toutsu/gmrelay-web:1.9.9`.
Web UI будет доступен на `http://localhost:8080`, если `GMRELAY_WEB_PORT` не переопределён.
## Локальный запуск через .NET Aspire
```bash
dotnet restore GM-Relay.slnx
dotnet build GM-Relay.slnx -c Release
dotnet run --project src/GmRelay.AppHost
```
Для standalone-запуска bot/web нужны:
- `ConnectionStrings__gmrelaydb` — строка подключения к PostgreSQL.
- `Telegram__BotToken` — токен Telegram-бота.
- `Telegram__BotUsername` — имя бота без `@`, нужно для Telegram Login Widget.
- `Telegram__MiniAppUrl` — HTTPS URL `/miniapp`, нужен боту для Telegram menu button и кнопки `/start`.
## Настройка Telegram
1. Добавьте бота в группу или супергруппу.
2. Для forum-групп выдайте право управления темами, иначе бот не сможет создать topic под пачку игр.
3. Рекомендуемые права: отправка сообщений, закрепление сообщений, управление темами.
4. Для web-login настройте домен у `@BotFather` через `/setdomain`, если Web-панель используется не локально.
5. Для Mini App задайте menu button в `@BotFather` на URL из `TELEGRAM_MINI_APP_URL`; бот также сам выставляет default menu button при старте, если URL настроен.
## Проверка после запуска
- `/start` должен ответить `GM-Relay Bot ready. Use /help for commands.` или показать кнопку `Открыть dashboard`, если настроен `TELEGRAM_MINI_APP_URL`.
- `/help` должен показать формат `/newsession`, включая необязательные строки `Мест:`/`Картинка:` и быстрый повтор через `Игр:`/`Интервал:`.
- Если создать `/newsession` с прикреплённым фото или строкой `Картинка: https://...`, бот должен отправить обложку перед сообщением расписания.
- В основном сообщении расписания у активной сессии должны быть только кнопки записи и `Выйти`.
- Owner/co-GM вызывает `/listsessions`, нажимает `⏰`, отправляет 2-3 варианта времени и дедлайн; бот создаст голосование и применит победивший вариант по дедлайну.
- Web-панель должна перенаправлять неавторизованного пользователя на `/login`.
- После входа через Telegram пользователь видит группы, где он назначен owner или co-GM.
- `/miniapp` вне Telegram показывает диагностичный fallback на обычный вход, а внутри Telegram ждёт `initData`, отправляет его на `/auth/telegram-webapp` и открывает тот же dashboard в мобильной раскладке. Если нужен fallback `/login`, Telegram Login Widget работает через `data-onauth`: payload отправляется на `/auth/telegram-login`, cookie выставляется в текущем WebView, и страница сразу возвращается на `/`.
- Для v1.9.9 не нужны новые переменные окружения или действия в BotFather, если домен и menu button уже указывают на HTTPS URL `/miniapp` из `TELEGRAM_MINI_APP_URL`.
- В левом меню есть вкладка `Шаблоны` для управления сохранёнными шаблонами кампаний.
- На странице группы owner видит блок управления co-GM, а owner/co-GM применяют существующие шаблоны и видят batch-операции: общий title/link, режим уведомлений, перенос всей пачки и клонирование batch.