В последнее время у меня есть несколько open source-проектов, в которых я либо автор, либо активно участвую. Они разные по тематике, но у всех один источник: каждый вырос из конкретной практической задачи.

Ниже — коротко о тех проектах, которыми я сейчас занимаюсь больше всего.

go-project-starter

go-project-starter — это инструмент для создания production-ready Go-сервисов из YAML-конфигурации. Я использую его как способ стандартизировать запуск новых Go-проектов, сократить объём boilerplate и быстрее переходить от идеи сервиса к прикладной логике.

Почему этот проект важен:

  1. Генерация идёт из YAML-конфигурации
    Структура сервиса и его ключевые части описаны декларативно. Это упрощает воспроизводимость и поддержку проекта.

  2. Проект покрывает несколько типов сервисной нагрузки
    В README заявлены REST API, gRPC, background workers и event-driven сценарии. Такой охват делает его полезным для разных backend-задач.

  3. Есть механизм сохранения бизнес-логики при регенерации
    Это важная практическая возможность для развития проекта без потери вручную написанного кода.

  4. Поддерживаются отдельные режимы работы с проектом
    init, setup, migrate и --dry-run закрывают не только старт проекта, но и дальнейшую работу с конфигом и генерацией.

  5. Проект хорошо документирован и опирается на большой набор готовых компонентов
    В репозитории уже есть документация, примеры, CLI-команды, внутренние пакеты и конфигурации, которых достаточно для реальной повседневной работы.

Для go-project-starter я отдельно сделал плагин для Claude Code. Он вырос из практического опыта использования самого генератора при создании production-ready сервисов. Его задача — упростить работу с конфигом и доводить изменение до проверяемого результата через генерацию и сборку.

Что умеет плагин:

  • составлять корректные YAML-конфиги для go-project-starter;
  • создавать новые проекты с нуля;
  • добавлять REST, gRPC, Kafka и Telegram-компоненты в существующие сервисы;
  • добавлять GOAT интеграционные тесты;
  • валидировать изменения через реальную генерацию и make build.

Плагин: https://github.com/Educentr/claude/blob/main/plugins/go-project-starter/README.md

Иллюстрация к go-project-starter

Репозиторий: https://github.com/Educentr/go-project-starter

goat

goat — это framework для интеграционного тестирования Go-приложений с Docker-контейнерами и моками внешних сервисов. Я использую его там, где unit-тестов уже недостаточно и нужно поднимать приложение вместе с зависимостями в управляемом окружении.

Почему этот проект важен:

  1. Проект использует Docker-контейнеры и testcontainers-go
    Это позволяет тестировать приложение в окружении, близком к реальной инфраструктуре.

  2. Есть type-safe доступ к сервисам через generic getters
    В проекте есть services.GetTyped[T]() и services.MustGetTyped[T](), поэтому окружение можно получать с compile-time типизацией вместо ручных кастов и хрупких вспомогательных обёрток.

  3. Через goat-services уже доступен готовый набор инфраструктурных зависимостей
    В README перечислены PostgreSQL, Redis, ClickHouse, S3, MinIO, Jaeger, VictoriaMetrics, Xray и Singbox. Такой набор закрывает заметную часть типичных backend-сценариев.

  4. В проекте есть отдельные сущности для управления тестовым окружением
    Manager, ExecutorBuilder, restart сервисов и callbacks для сценариев запуска и остановки позволяют не собирать жизненный цикл окружения вручную в каждом тестовом проекте.

  5. Структура проекта уже ориентирована на повторное использование
    Отдельные пакеты services/, testutil/, executor-слой и набор тестов в репозитории показывают, что это самостоятельный framework, а не набор локальных хелперов под один сервис.

Иллюстрация к goat

Репозиторий: https://github.com/Educentr/goat

Tools for SprutHub

Этот проект вырос из реальных задач домашней автоматизации. В нём собраны сценарии, которые делают умный дом более наблюдаемым, предсказуемым и полезным в повседневной эксплуатации.

Почему этот проект важен:

  1. Проект покрывает несколько законченных сценариев домашней автоматизации
    В репозитории уже есть сценарии для AWTRIX, гаражных ворот, розеток по расписанию и сбора метрик.

  2. Встроена интеграция с системами наблюдаемости
    Метрики отправляются в InfluxDB и VictoriaMetrics, а дальше используются в Grafana. Это даёт нормальный слой мониторинга поверх домашних сценариев.

  3. Сбор метрик уже оформлен как отдельный эксплуатационный контур
    В logic/statisticsSensors.js есть trigger-отправка при изменении датчиков, периодическая отправка по cron, обновление списка устройств и health check баз данных с Telegram-уведомлениями.

  4. Проект закрывает конкретные бытовые сценарии
    В README прямо перечислены отображение температуры на Ulanzi TC001, индикация состояния гаражных ворот, управление розетками по расписанию, а среди примеров использования указаны аквариумный компрессор, увлажнитель и автополив.

  5. В репозитории уже есть готовая инфраструктура для запуска метрик
    Через docker/docker-compose.yaml поднимаются InfluxDB, VictoriaMetrics и Grafana, а в docs/start.md подробно описана настройка, структура данных и примеры запросов для графиков.

Иллюстрация к Tools for SprutHub

Репозиторий: https://github.com/sklukin/spruthub

comfy-skill

Для меня comfy-skill важен как часть agent-first tooling. Этот проект даёт агентам рабочий интерфейс для генерации и редактирования визуального контента поверх реального media backend.

Почему этот проект важен:

  1. Проект уже состоит из нескольких отдельных частей
    В репозитории есть api/, comfyui/, skill/generate-image/, docs/ и docker-compose.yaml. Это позволяет держать skill, backend и GPU worker в одном управляемом контуре.

  2. Поддерживается набор отдельных visual workflows и моделей
    В README перечислены flux-dev, flux-schnell, sdxl, flux-fill, flux-canny, flux-depth, flux-kontext, upscale и wan-video. За счёт этого проект покрывает генерацию, редактирование, control-задачи, upscale и image-to-video.

  3. Асинхронный jobs API уже оформлен как отдельный интерфейс
    В API есть POST /jobs, GET /jobs/{id}, GET /jobs/{id}/result, DELETE /jobs/{id} и POST /upload. Такой набор хорошо ложится на агентные сценарии и фоновые пайплайны.

  4. В проекте есть управление локальным GPU-контуром
    Отдельно предусмотрены POST /gpu/pause, POST /gpu/resume, auto VRAM cleanup и ограничение глубины очереди. Это важно, когда локальная видеокарта используется не только под генерацию.

  5. В README уже собран полный рабочий контур
    Там есть make targets для загрузки моделей, сборки, запуска, health check и gaming mode. Это упрощает реальное использование и сопровождение проекта.

Иллюстрация к comfy-skill

Репозиторий: https://github.com/sklukin/comfy-skill

Это не полный список моих проектов, но по этим четырём хорошо видно, какие задачи мне сейчас действительно интересны: Go-инфраструктура, интеграционное тестирование, автоматизация умного дома и agent-first tooling.