Skip to main content
Glama

fleet

Docker 프로덕션 관리 CLI + MCP 서버

CI npm Node TypeScript License

단일 서버에서 Docker Compose 앱을 관리하세요 -- systemd 오케스트레이션, nginx 라우팅, age 암호화 비밀, 상태 모니터링, 종속성 추적, Git 워크플로우 및 AI 지원 운영을 위한 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 라우팅 -- fleet nginx add를 사용하여 프록시, SPA 또는 Next.js 서버 블록을 생성합니다. 자동 구성 테스트 및 리로드를 지원합니다.

상태 모니터링 -- fleet health를 통한 3계층 검사(systemd + 컨테이너 + HTTP)를 제공합니다. watchdog 명령은 cron에서 실행되며 실패 시 알림을 보냅니다.

종속성 스캔 -- 등록된 모든 앱에서 오래된 패키지, CVE(OSV를 통해), Docker 이미지 업데이트 및 런타임 EOL을 감지합니다.

Git 워크플로우 -- CLI에서 GitHub로 앱을 온보딩하고 브랜치, PR 및 릴리스를 관리합니다.

대화형 대시보드 -- 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로 암호화되어 볼트에 저장됩니다. 부팅 시(또는 수동으로) Docker 컨테이너가 참조하는 tmpfs 마운트로 복호화됩니다. 봉인(Sealing) 시 런타임 변경 사항이 볼트에 다시 기록됩니다. 드리프트 감지는 볼트와 런타임을 비교하여 저장되지 않은 변경 사항을 포착합니다.

배포 흐름

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은 AI 지원 서버 관리를 위해 Model Context Protocol을 통해 36개의 도구를 노출합니다. fleet mcp를 실행하여 stdio 서버를 시작하거나 Claude Code에 설치하세요:

sudo fleet install-mcp

도구는 앱 수명 주기, 비밀, nginx, Git, 상태 검사 및 종속성 모니터링 등 전체 영역을 다룹니다. 전체 도구 목록은 MCP 문서를 참조하세요.

fleet-bot

Telegram 또는 iMessage를 통해 원격 서버 관리를 제공하는 Go 컴패니언 봇(bot/)입니다. 이 봇은 핸즈프리 운영을 위해 fleet의 MCP 도구에 액세스할 수 있는 Claude Code 세션을 실행합니다.

설정 지침은 봇 문서를 참조하세요.

개발

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