Fleet
Enables management of Docker Compose applications, including container deployment, service control, and log retrieval through the MCP interface.
Manages environment variables and application secrets by importing, exporting, and validating .env files with encrypted storage.
Provides tools for managing local Git workflows, allowing for branch creation, staging, and committing of changes directly within managed application directories.
Facilitates GitHub repository management including onboarding, branch protection rules, and pull request workflows using the GitHub CLI.
Offers specific Nginx configuration templates optimized for Next.js deployments, handling proxying and static asset serving.
Automates the generation and management of Nginx server blocks, supporting reverse proxies, SPAs, and specialized configurations for modern web frameworks.
Integrates with Telegram for remote server management via a specialized bot and provides automated health monitoring alerts.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Fleetshow the status and health of all my services"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
fleet
Docker production management CLI + MCP server
Manage Docker Compose apps on a single server -- systemd orchestration, nginx routing, age-encrypted secrets, health monitoring, dependency tracking, Git workflows, and an MCP server for AI-assisted operations.
Documentation -- npm -- GitHub
Architecture
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"]Each Docker Compose app is registered with its compose path, domains, port, and container names. Fleet generates systemd units so apps start on boot in the correct order. Secrets are encrypted at rest with age and decrypted to a tmpfs on boot.
Install
npm install -g @matthesketh/fleetRequires Node.js 20+, Docker Compose v2, systemd, nginx, and age. See the full setup guide for details.
Key Features
Deploy and manage apps -- fleet deploy <app-dir> registers, builds, and starts an app in one command. Control services with start, stop, restart, and logs.
Encrypted secrets -- age-encrypted vault with automatic backups, pre-seal validation, drift detection, and atomic rollback. Decrypted to tmpfs at boot -- secrets never touch disk.
Nginx routing -- Generate proxy, SPA, or Next.js server blocks with fleet nginx add. Automatic config testing and reload.
Health monitoring -- Three-layer checks (systemd + container + HTTP) with fleet health. The watchdog command runs on cron and sends alerts on failure.
Dependency scanning -- Detects outdated packages, CVEs (via OSV), Docker image updates, and runtime EOL across all registered apps.
Git workflows -- Onboard apps to GitHub, manage branches, PRs, and releases from the CLI.
Interactive dashboard -- Run bare fleet to launch a full-screen TUI with real-time status.
See the CLI reference for the complete command list.
Secrets Flow
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"| RuntimeSecrets are imported or set individually, encrypted with age, and stored in the vault. On boot (or manually), they are decrypted to a tmpfs mount that Docker containers reference. Sealing writes runtime changes back to the vault. Drift detection compares vault vs runtime to catch unsaved changes.
Deployment Flow
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 --> HealthyMCP Server
Fleet exposes 36 tools via the Model Context Protocol for AI-assisted server management. Run fleet mcp to start the stdio server, or install it into Claude Code:
sudo fleet install-mcpTools cover the full surface area: app lifecycle, secrets, nginx, Git, health checks, and dependency monitoring. See the MCP documentation for the complete tool list.
fleet-bot
A Go companion bot (bot/) that provides remote server management through Telegram or iMessage. It runs Claude Code sessions with access to fleet's MCP tools for hands-free operations.
See the bot documentation for setup instructions.
Development
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)License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wrxck/fleet'
If you have feedback or need assistance with the MCP directory API, please join our Discord server