Skip to content

Repository files navigation

exchange_kts

exchange_kts — биржевая игра в Telegram. Игроки покупают и продают активы, влияют на рынок и проходят игровые раунды с голосованиями.

Проект работает в микросервисном режиме: poller, worker, sender, game-service, api-admin, mini-app + инфраструктура (postgres, rabbitmq, migrator).

1 Быстрый запуск (рекомендуется: Docker Compose)

1.1 Клонировать репозиторий

git clone https://github.com/nais2008/exchange_kts
cd exchange_kts

1.2 Подготовить конфиг

Используйте docker-шаблон:

cp etc/config.docker.yml etc/config.yml

Для Windows PowerShell:

Copy-Item etc/config.docker.yml etc/config.yml

После копирования откройте etc/config.yml и укажите:

  • bot.token — токен Telegram-бота.
  • bot.mini_app_url — публичный URL мини-приложения (если нужен).

1.3 Запустить все сервисы

docker compose up --build -d

Что поднимется:

  • бизнес-сервисы: poller, worker, sender, game-service, api-admin, mini-app-2
  • инфраструктура: postgres, rabbitmq, migrator

migrator автоматически выполняет alembic upgrade head один раз при старте.

1.4 Проверить, что всё запустилось

docker compose ps

Полезные URL:

  • Admin API: http://localhost:8080
  • Mini App API: http://localhost:8090
  • RabbitMQ UI: http://localhost:15672

1.5 Остановить проект

docker compose down

2 Локальный запуск без Docker (ручной)

Подходит для разработки, когда инфраструктура уже запущена отдельно.

2.1 Подготовить окружение

uv venv
uv sync

2.2 Подготовить конфиг

Скопируйте etc/example.config.yml в etc/config.yml и заполните:

  • bot.token
  • параметры БД и RabbitMQ для вашего локального окружения.

2.3 Применить миграции

uv run alembic upgrade head

2.4 Запустить сервисы (каждый в отдельном терминале)

uv run python -m services.sender.main
uv run python -m services.game_service.main
uv run python -m services.worker.main
uv run python -m services.poller.main
uv run python -m services.api_admin.main
uv run python -m services.mini_app.main

Полезные команды для разработки

uv run pytest
uv run ruff format
uv run ruff check --fix

Miro

https://miro.com/app/board/uXjVG2dOgmg=/?share_link_id=3487425909

About

биржевая игра в Telegram. Игроки покупают и продают активы, влияют на рынок и проходят игровые раунды с голосованиями

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages