Python/asyncio
, Aiohttp
, DI
, Aio Pika (RabbitMQ)
, SQLAlchemy (PostgreSQL)
, Redis
, Docker / docker-compose
, Github-Actions
- Бот с полноценным геймплеем и защитой от спама (троттлингом).
- Отдельный сервис для пуллинга Telegram-API с RabbitMQ.
- Сервис API для администратора.
- Авто-деплой и загрузка образа в registry с помощью Github-Actions.
- Клонировать репозиторий.
~$ git clone https://github.com/neekrasov/field_of_dreams.git
- Создать .env в корне на примере .env.example и экспортировать ENV.
~$ mv .env.example .env && export ENV=1
- Запустить сервисы.
~$ make -j 3 run-amqp run-bot run-api
- Клонировать репозиторий.
~$ git clone https://github.com/neekrasov/field_of_dreams.git
- Создать dev.env в deploy/ на примере deploy/.env.example и экспортировать ENV.
~$ mv deploy/.env.example deploy/dev.env && export ENV=1
- Собрать и запустить контейнеры.
~$ make compose-up
P.S на сервере с помощью actions можно запустить сконфигурировав секреты (крененшиалы для сервера) в github-secrets, необходимые секреты:
- SERVER_USER
- SERVER_IP
- SERVER_SSH_KEY
- SERVER_SSH_PORT
Также необходим файл prestart.sh в в домашней директории.
Пример содержимого:
cd /home/user/code/field_of_dreams
make compose-down
make compose-pull
make compose-up
Активация экшена на пуш и на ручной вызов через GUI в github.