8
Быстрый старт
Toutsu edited this page 2026-04-27 14:58:56 +03:00

Быстрый старт

Эта страница описывает минимальный запуск текущей версии GM-Relay v1.7.0.

Требования

  • Docker и Docker Compose для packaged-запуска.
  • .NET 10 SDK для локальной разработки через GM-Relay.slnx.
  • Telegram-бот, созданный через @BotFather.
  • PostgreSQL поднимается автоматически в Docker Compose или Aspire.

Docker Compose

  1. Создайте .env из шаблона:
Copy-Item .env.example .env

На Linux/macOS:

cp .env.example .env
  1. Заполните обязательные переменные:
TELEGRAM_BOT_TOKEN=YOUR_BOT_TOKEN_HERE
TELEGRAM_BOT_USERNAME=YOUR_BOT_USERNAME_HERE
POSTGRES_PASSWORD=StrongPasswordForDatabase
GMRELAY_WEB_PORT=8080
  1. Запустите стек:
docker compose up -d

Compose поднимает:

  • db: PostgreSQL 17 Alpine, БД gmrelay_db, пользователь gmrelay.
  • bot: образ git.codeanddice.ru/toutsu/gmrelay-bot:1.7.0.
  • web: образ git.codeanddice.ru/toutsu/gmrelay-web:1.7.0.

Web UI будет доступен на http://localhost:8080, если GMRELAY_WEB_PORT не переопределён.

Локальный запуск через .NET Aspire

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

  1. Добавьте бота в группу или супергруппу.
  2. Для forum-групп выдайте право управления темами, иначе бот не сможет создать topic под пачку игр.
  3. Рекомендуемые права: отправка сообщений, закрепление сообщений, управление темами.
  4. Для web-login настройте домен у @BotFather через /setdomain, если Web-панель используется не локально.

Проверка после запуска

  • /start должен ответить GM-Relay Bot ready. Use /help for commands.
  • /help должен показать формат /newsession, включая необязательную строку Мест:.
  • В сообщении расписания у активной сессии должны быть кнопки записи и Выйти.
  • Owner/co-GM может нажать ⏰ Перенести, отправить 2-3 варианта времени и дедлайн; бот создаст голосование и применит победивший вариант по дедлайну.
  • Web-панель должна перенаправлять неавторизованного пользователя на /login.
  • После входа через Telegram пользователь видит группы, где он назначен owner или co-GM.
  • На странице группы owner видит блок управления co-GM, а owner/co-GM видят batch-операции: общий title/link, режим уведомлений, перенос всей пачки и клонирование batch.