docs(wiki): rewrite Quick Start for Telegram + Discord
@@ -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.
|
||||
Reference in New Issue
Block a user