Skip to main content
Glama

fleet

CLI для управления продуктивной средой Docker + MCP-сервер

CI npm Node TypeScript License

Управляйте приложениями Docker Compose на одном сервере — оркестрация systemd, маршрутизация nginx, секреты, зашифрованные с помощью age, мониторинг работоспособности, отслеживание зависимостей, рабочие процессы Git и MCP-сервер для операций с поддержкой ИИ.

Документация -- npm -- GitHub


Архитектура

graph TD
    CLI["fleet CLI"]
    TUI["TUI Dashboard"]
    MCP["MCP Server"]
    BOT["fleet-bot (Go)"]

    CLI --> Core
    TUI --> Core
    MCP --> Core
    BOT -->|"via MCP"| Core

    subgraph Core["Core Modules"]
        Registry["Registry"]
        Docker["Docker Compose"]
        Systemd["systemd"]
        Nginx["nginx"]
        Secrets["Secrets Vault"]
        Health["Health Checks"]
        Git["Git / GitHub"]
        Deps["Dependency Monitor"]
    end

    Docker --> Containers["Containers"]
    Systemd --> Services["systemd Services"]
    Nginx --> Proxy["Reverse Proxy"]
    Secrets --> Vault["vault/*.age"]
    Secrets --> Runtime["/run/fleet-secrets"]
    Health --> Alerts["Telegram / iMessage"]

Каждое приложение Docker Compose регистрируется с указанием пути к compose-файлу, доменов, порта и имен контейнеров. Fleet генерирует модули systemd, чтобы приложения запускались при загрузке в правильном порядке. Секреты шифруются в состоянии покоя с помощью age и расшифровываются в tmpfs при загрузке.

Related MCP server: coolify-mcp

Установка

npm install -g @matthesketh/fleet

Требуются Node.js 20+, Docker Compose v2, systemd, nginx и age. Подробности см. в полном руководстве по установке.

Основные возможности

Развертывание и управление приложениями -- fleet deploy <app-dir> регистрирует, собирает и запускает приложение одной командой. Управляйте сервисами с помощью start, stop, restart и logs.

Зашифрованные секреты -- хранилище, зашифрованное с помощью age, с автоматическим резервным копированием, проверкой перед запечатыванием, обнаружением отклонений и атомарным откатом. Расшифровываются в tmpfs при загрузке — секреты никогда не попадают на диск.

Маршрутизация Nginx -- генерация блоков прокси, SPA или сервера Next.js с помощью fleet nginx add. Автоматическое тестирование конфигурации и перезагрузка.

Мониторинг работоспособности -- трехуровневые проверки (systemd + контейнер + HTTP) с помощью fleet health. Команда watchdog запускается по cron и отправляет оповещения в случае сбоя.

Сканирование зависимостей -- обнаружение устаревших пакетов, CVE (через OSV), обновлений образов Docker и окончания срока поддержки (EOL) среды выполнения для всех зарегистрированных приложений.

Рабочие процессы Git -- подключение приложений к GitHub, управление ветками, PR и релизами из CLI.

Интерактивная панель управления -- запустите просто fleet для открытия полноэкранного TUI с состоянием в реальном времени.

Полный список команд см. в справочнике CLI.

Поток работы с секретами

graph LR
    Import["fleet secrets import"]
    Set["fleet secrets set"]

    Import --> Encrypt["age encrypt"]
    Set --> Encrypt

    Encrypt --> Vault["vault/*.age"]
    Vault -->|"boot / fleet secrets unseal"| Decrypt["age decrypt"]
    Decrypt --> Runtime["/run/fleet-secrets (tmpfs)"]
    Runtime -->|"env_file / secrets"| Containers["Docker Containers"]

    Runtime -->|"fleet secrets seal"| Encrypt
    Vault -.->|"drift detection"| Runtime

Секреты импортируются или задаются индивидуально, шифруются с помощью age и сохраняются в хранилище. При загрузке (или вручную) они расшифровываются в точку монтирования tmpfs, на которую ссылаются контейнеры Docker. Запечатывание записывает изменения среды выполнения обратно в хранилище. Обнаружение отклонений сравнивает хранилище с состоянием среды выполнения для выявления несохраненных изменений.

Поток развертывания

graph TD
    Deploy["fleet deploy app-dir"]
    Deploy --> Register{"Already\nregistered?"}
    Register -->|No| Add["Register app"]
    Register -->|Yes| Build
    Add --> Build["docker compose build"]
    Build --> Start{"Service\nrunning?"}
    Start -->|No| StartSvc["systemctl start"]
    Start -->|Yes| Restart["systemctl restart"]
    StartSvc --> Healthy["App deployed"]
    Restart --> Healthy

MCP-сервер

Fleet предоставляет 36 инструментов через Model Context Protocol для управления сервером с помощью ИИ. Запустите fleet mcp для запуска stdio-сервера или установите его в Claude Code:

sudo fleet install-mcp

Инструменты охватывают всю область применения: жизненный цикл приложений, секреты, nginx, Git, проверки работоспособности и мониторинг зависимостей. Полный список инструментов см. в документации MCP.

fleet-bot

Сопутствующий бот на Go (bot/), который обеспечивает удаленное управление сервером через Telegram или iMessage. Он запускает сессии Claude Code с доступом к инструментам MCP для Fleet для управления без использования рук.

Инструкции по настройке см. в документации бота.

Разработка

git clone https://github.com/wrxck/fleet.git
cd fleet
npm install
npm test          # vitest
npm run build     # compile TypeScript to dist/
npm run dev       # run with tsx (no build needed)

Лицензия

MIT

Related MCP Connectors

Related MCP Servers