Сделал 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, разработка

2
1
1
7 комментариев