Репозиторий для локального запуска проекта через Docker Compose.
В составе репозитория находятся compose-файлы для запуска инфраструктуры и сервисов приложения, а также Makefile с готовыми сценариями для удобной работы со стендом.
-
docker-compose-infra.yml— инфраструктурные сервисы:- PostgreSQL;
- Kafka;
- Zookeeper;
- Kafka UI.
-
docker-compose.yml— сервисы приложения:- frontend;
- gateway;
- auth;
- accounts;
- projects;
- files;
- benchmarks.
-
Makefile— удобные команды для запуска, остановки, просмотра логов и управления локальным стендом.
Для запуска необходимы:
- Docker;
- Docker Compose v2.
Дополнительно, для использования команд из Makefile:
make;- bash-совместимое окружение.
На Windows рекомендуется использовать WSL или Git Bash. Если make недоступен, проект можно запускать напрямую через docker compose.
make infra-up
make app-upСначала запускается инфраструктура, затем сервисы приложения.
Базы данных и необходимые таблицы создаются сервисами автоматически при запуске за счет автомиграций.
Если make недоступен, те же действия можно выполнить напрямую через Docker Compose.
docker compose -f docker-compose-infra.yml up -ddocker compose -f docker-compose.yml up -dТакже можно запустить инфраструктуру и приложение одной командой:
docker compose -f docker-compose-infra.yml -f docker-compose.yml up -dПосмотреть список доступных команд:
make helpmake infra-upПоднять PostgreSQL, Kafka, Zookeeper и Kafka UI.
make infra-downОстановить инфраструктурные сервисы без удаления данных.
make infra-logsПосмотреть логи инфраструктурных сервисов.
make infra-psПоказать статус контейнеров инфраструктуры.
make app-upПоднять сервисы приложения.
make app-downОстановить сервисы приложения.
make app-logsПосмотреть логи сервисов приложения.
make app-psПоказать статус контейнеров приложения.
make all-upПоднять инфраструктуру и сервисы приложения вместе.
make all-downОстановить инфраструктуру и сервисы приложения.
make all-logsПосмотреть логи всех сервисов.
make all-psПоказать статус всех контейнеров.
Пересоздать контейнеры приложения без удаления данных:
make app-resetПересоздать инфраструктурные контейнеры без удаления данных:
make infra-resetПолностью сбросить стенд с удалением volumes, включая данные PostgreSQL:
make all-resetПосле полного сброса достаточно снова запустить инфраструктуру и сервисы приложения:
make infra-up
make app-upВ Makefile также есть вспомогательные команды для ручной работы с PostgreSQL:
make db-shell
make db-wait
make db-create-allВ обычном сценарии запуска они не требуются, так как базы данных и схема создаются сервисами автоматически.