Flint: KVM без головной боли
Знакомая ситуация? Нужно быстро поднять тестовую виртуалку, но libvirt с его XML-конфигами и кучей зависимостей вызывает желание просто развернуть облако. А что если управление KVM могло бы быть таким же простым, как докер?
Что такое Flint
Flint — это свежий взгляд на управление KVM-виртуалками. Проект родился из раздражения автора классическими инструментами и был сделан буквально за несколько часов. В результате получился компактный (меньше 11 МБ!) бинарник с:
- Современным веб-интерфейсом на Next.js
- Удобной CLI-оберткой
- Чистым API для автоматизации

Почему это удобно
1. Установка одной командой
Никаких пакетных менеджеров и зависимостей (кроме самого KVM/livbirt):
curl -fsSL https://raw.githubusercontent.com/ccheshirecat/flint/main/install.sh | bash
2. Весь функционал в одном месте
Вместо кучи разрозненных утилит (virt-manager, virsh и т.д.) вы получаете:
- Просмотр и управление виртуалками из браузера
- Встроенный SSH-клиент
- Управление образами и сетями
- Поддержка Cloud-Init из коробки
3. Безопасность по умолчанию
Flint не оставляет вас с открытым API:
- Обязательная настройка пароля при первом запуске
- Сессии с ограниченным временем жизни
- Отдельные ключи для API и веб-интерфейса
# Первый запуск
flint serve
# 🔐 No web UI passphrase set. Let's set one up for security.
# Enter passphrase: ********
Технические детали
Под капотом используется:
- Бэкенд: Go 1.25+ с bindings к libvirt
- Интерфейс: Next.js + Tailwind, собранный в единый бинарник через Bun
- API: RESTful с bearer-токенами и сессионными куками
Приятный бонус — Flint не требует отдельных сервисов БД или брокеров сообщений. Весь state хранится в libvirt, а бинарник можно просто скопировать на другую машину.
Кому это пригодится
- Разработчикам, которым нужно быстро разворачивать тестовые окружения
- Админам домашних лабораторий, уставшим от virt-manager
- DevOps-инженерам, ценящим автоматизацию через API
Особенно оценят те, кто:
- Работает с Cloud-Init образами
- Часто создает/удаляет временные виртуалки
- Хочет удобный веб-интерфейс без настройки отдельного сервиса
Как попробовать
- Убедитесь, что есть KVM и libvirt
- Установите Flint:
curl -fsSL https://raw.githubusercontent.com/ccheshirecat/flint/main/install.sh | bash
- Запустите и настройте пароль:
flint serve --set-passphrase
- Откройте http://localhost:5550 и работайте с виртуалками как с docker-контейнерами
Flint — это тот редкий случай, когда простой инструмент закрывает реальную боль. Он не заменяет полноценные облачные платформы, но идеален для:
- Локальной разработки
- Домашних лабораторий
- Быстрого прототипирования инфраструктуры
Если вы хотя бы раз проклинали XML-конфиги libvirt — попробуйте Flint. Вероятно, это именно тот инструмент, которого вам не хватало.
P.S. Проект активно развивается — сейчас как раз хороший момент влиться и повлиять на roadmap.
