Разработал собственную PaaS/CI/CD платформу для автоматического развертывания feature-веток в виде изолированных Docker-стендов.
Каждая GitLab-ветка автоматически получает отдельный runtime, поддомен, БД и независимое окружение. Платформа используется для QA, демонстраций и тестирования без риска затронуть production-данные.
Реализовал:
автоматическое создание tenant-стендов из Git-веток;
Docker Compose deployment per tenant;
one-click pipeline: pull, composer/npm install, build, migrate, restart;
rebuild/reset окружений;
live-логи и real-time статусы через SSE;
WebSocket terminal внутри контейнера;
snapshots БД и файлов;
seed/unseed тестовых данных;
REST API для внешних систем;
автоматическую генерацию nginx routing;
intercept-layer для мокинга внешних API и OAuth.
Backend построен на Go 1.25 + PostgreSQL + River Queue. Использовал chi/v5, pgx, sqlc, Docker Engine API, GitLab API, SSE, WebSocket и LISTEN/NOTIFY.
Ключевые решения:
отказ от Redis/RabbitMQ в пользу PostgreSQL-only очереди;
reconcile-синхронизация Docker ↔ БД ↔ nginx;
graceful shutdown активных jobs;
динамическое определение capabilities tenant-приложений;
полная изоляция tenant-окружений.
Результат: вместо часов ручного деплоя новый стенд поднимается автоматически за несколько минут с полным CI/CD pipeline и live-прогрессом.
https://deployer.kmsdev.tech