From 86b60f2ee9ca6af49f43866e62f01cb7b8db3d66 Mon Sep 17 00:00:00 2001 From: Toutsu Date: Thu, 21 May 2026 18:42:35 +0300 Subject: [PATCH] docs(wiki): rewrite Quick Start for Telegram + Discord --- ...%D0%B9-%D1%81%D1%82%D0%B0%D1%80%D1%82.-.md | 25 ++++++ ...8B%D0%B9-%D1%81%D1%82%D0%B0%D1%80%D1%82.md | 85 ------------------- 2 files changed, 25 insertions(+), 85 deletions(-) create mode 100644 %D0%91%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D1%81%D1%82%D0%B0%D1%80%D1%82.-.md delete mode 100644 %D0%91%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D1%81%D1%82%D0%B0%D1%80%D1%82.md diff --git a/%D0%91%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D1%81%D1%82%D0%B0%D1%80%D1%82.-.md b/%D0%91%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D1%81%D1%82%D0%B0%D1%80%D1%82.-.md new file mode 100644 index 0000000..68f360c --- /dev/null +++ b/%D0%91%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D1%81%D1%82%D0%B0%D1%80%D1%82.-.md @@ -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-операциями. \ No newline at end of file diff --git a/%D0%91%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D1%81%D1%82%D0%B0%D1%80%D1%82.md b/%D0%91%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D1%81%D1%82%D0%B0%D1%80%D1%82.md deleted file mode 100644 index ae09242..0000000 --- a/%D0%91%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D1%81%D1%82%D0%B0%D1%80%D1%82.md +++ /dev/null @@ -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.