Show HN: Davit, нативный macOS-интерфейс для контейнерной платформы Apple

Пользователь xinit опубликовал на Hacker News (Show HN) проект Davit, полностью нативное приложение для macOS, которое управляет контейнерной платформой Apple (Apple's container platform) на компьютерах с чипами Apple Silicon и macOS 15 или новее. Программа бесплатна, распространяется с открытым исходным кодом под лицензией MIT, подписана и нотаризована Apple, поэтому запускается без предупреждений Gatekeeper. Установить можно из GitHub Releases или через Homebrew (brew install wouterdebie/tap/davit).

Davit написан целиком на SwiftUI, без Electron и веб-вью, и обращается к системному демону контейнеров Apple напрямую по протоколу XPC, тем же путём, каким пользуется официальный CLI. Приложение показывает список контейнеров с живыми показателями CPU, памяти и IP-адреса на каждой строке, умеет запускать, останавливать, перезапускать и удалять контейнеры, стримить логи (включая режим слежения и загрузочный режим), рисовать графики нагрузки в реальном времени и показывать сырую конфигурацию. Прямо из интерфейса можно открыть интерактивную оболочку контейнера в Terminal или iTerm, а также браузером файловой системы контейнера, просматривать папки, скачивать, загружать и удалять файлы без команды docker cp. Поскольку контейнеры в платформе Apple неизменяемы, Davit при редактировании создаёт копию контейнера на основе старой конфигурации, позволяя поменять порты, переменные окружения, точки монтирования и ресурсы.

Программа умеет тянуть образы с прогрессом загрузки, запускать их, добавлять теги и чистить неиспользуемые, создавать тома нужного размера и отдельные подсети, а также авторизоваться в Docker Hub, ghcr.io, quay.io или любом другом реестре, учётные данные проверяются сразу и сохраняются в связке ключей, общей с CLI-инструментом. Если контейнерная платформа Apple ещё не установлена, Davit сам скачивает и проверяет официальный подписанный инсталлятор Apple и разворачивает всё в пользовательской папке Library без прав администратора; по желанию может добавить CLI-утилиту контейнеров в shell.

Автор отдельно объясняет разницу с конкурентами. Docker Desktop держит одну большую Linux-виртуальную машину постоянно запущенной независимо от того, есть ли активные контейнеры; платформа Apple вместо этого поднимает отдельную лёгкую ВМ под каждый контейнер, соразмерную его нагрузке, и убирает её, когда контейнер остановлен, в простое фоновые сервисы платформы потребляют около 25 МБ. OrbStack, зрелое коммерческое приложение со своим слоем виртуализации, совместимым с Docker; Davit же, бесплатная надстройка именно над собственным контейнерным движком Apple, а не сторонним. Оба работают со стандартными OCI-образами: если нужен именно нативный для Apple Silicon механизм с отдельной ВМ на контейнер, подходит Davit, если нужна полная совместимость с экосистемой Docker, OrbStack пока более зрелый выбор. Встроенного разрешения имён по доменам вида .local пока нет (обходной путь, запуск Avahi внутри контейнера), но такая функция в дорожной карте проекта.

Ключевые факты

  • Davit, бесплатный опенсорсный (MIT) нативный SwiftUI-клиент для контейнерной платформы Apple на Apple Silicon, macOS 15+
  • Работает напрямую с системным демоном контейнеров по XPC, без Electron, Docker Desktop или CLI
  • Управление контейнерами: запуск/остановка/удаление, живые метрики CPU/памяти/IP, стриминг логов, терминал, файловый браузер контейнера
  • Может сам скачать и установить платформу контейнеров Apple без прав администратора, если она ещё не стоит
  • От Docker Desktop отличается тем, что не держит одну постоянную ВМ, а поднимает лёгкую ВМ под каждый контейнер отдельно; от OrbStack, тем, что бесплатен и построен поверх собственного движка Apple, а не стороннего

Почему это важно

Apple с недавних пор поставляет собственную контейнерную платформу для Apple Silicon как альтернативу Docker Desktop, но пользоваться ею приходилось через командную строку. Davit закрывает этот пробел, даёт привычный графический интерфейс поверх официального движка Apple, не добавляя стороннего слоя виртуализации и не тратя ресурсы на постоянно работающую большую ВМ.

Кому это важно

В первую очередь macOS-разработчикам на Apple Silicon, которые хотят гонять Linux-контейнеры локально без Docker Desktop (в том числе из-за его лицензионных ограничений для крупных компаний) и без сторонних коммерческих решений вроде OrbStack, а вместо этого использовать нативный движок Apple с привычным GUI.

Как это применить

Установить через Homebrew (brew install wouterdebie/tap/davit) или скачать из GitHub Releases; при первом запуске Davit сам предложит установить платформу контейнеров Apple, если её ещё нет. Дальше, обычный сценарий: подтянуть образ (например, nginxdemos/hello), запустить контейнер с проброшенным портом и открыть его в браузере прямо из приложения.

Можно ли доверять

Приложение подписано и нотаризовано Apple Developer ID, поэтому открывается без предупреждений Gatekeeper, исходный код открыт под MIT-лицензией и доступен для проверки. По заявлению автора, Davit обращается только к локальному демону контейнеров и к GitHub для проверки обновлений.

Риски и подводные камни

Проект молодой и одиночный (автор, независимый разработчик), зависит от развития официальной, тоже относительно новой платформы контейнеров Apple. Встроенного разрешения имён контейнеров по локальным доменам пока нет, нужен обходной путь через Avahi. Для полной совместимости с экосистемой Docker (объёмный тулинг, плагины) более зрелым выбором пока остаётся коммерческий OrbStack.