Сделал CLI-инструмент для автоматизации Docker — делюсь опытом
Всем привет! 👋
Хочу рассказать о проекте, который сделал для себя, а потом решил поделиться с другими.
Проблема
Работаю с микросервисами и каждый раз при создании нового проекта тратил 30-60 минут на рутину: - Писал docker-compose.yml - Настраивал Dockerfile - Генерировал пароли для PostgreSQL - Настраивал Redis - Решал конфликты портов
И так каждый раз. Одно и то же.
Решение
Сделал утилиту catalyze на Go, которая делает всё это за 30 секунд.
Как работает:
$ catalyze init
? Project name: my-api
? Language: go
? Database: postgres
? Addons: redis
✅ Project created!
$ cd my-api && catalyze dev
[+] Running 3/3
✔ Container my-api-db Started
✔ Container my-api-redis Started
✔ Container my-api-service Started
$ curl http://localhost:8081/health {"status":"ok"}
Всё — проект готов и работает.
Что умеет:
✅ Поддерживает Go, Python (FastAPI), Node.js (Express)
✅ Авто-выбор свободного порта (никаких "port already in use")
✅ Генерация безопасных паролей (только буквы+цифры)
✅ Production-ready Dockerfile (multi-stage, Alpine)
✅ Готовые health checks
✅ .env + .env.example для команды
Технологии:
- Go 1.21 + Cobra (CLI фреймворк)
- Docker + Docker Compose
- GoReleaser (кроссплатформенная сборка)
- GitHub Actions (CI/CD)
Почему не open source
Распространяю под Binary Use License — бинарники бесплатные, но исходники приватные. Планирую коммерческую модель с поддержкой.
Результат
Ссылка для тех кому интересно: github.com/krasilovalex/catalyze-releases
Фидбек
Буду рад комментариям! Как вы автоматизируете создание проектов?
Не реклама, свой pet project
программирование, docker, devops, go, pet project, разработка