Deployment
Docker Quickstart
MCP Ambassador runs as a single Docker container. Start everything with one command.
Requirements
- Docker Engine 20+
docker composev2 (docker composenotdocker-compose)
Quick start
git clone https://github.com/mcpambassador/server.git
cd server
cp .env.example .env
docker compose up
Default ports
| Port | Purpose |
|---|---|
8443 | Client API (HTTPS) — Ambassador Client connects here |
9443 | Admin + User Web UI (HTTPS) — browser access |
First boot behavior
On first docker compose up:
- TLS certificates auto-generated (self-signed, stored in
./data/certs/) - SQLite database initialized at
./data/ambassador.db - Credential master key generated at
./data/credential_master_key(permissions 0600) - Session HMAC secret generated and persisted (survives restarts)
- Default accounts created (development mode only):
- Admin:
admin/admin123 - Test user:
qa-tester/test1234
- Admin:
Watch for these log lines:
INFO: admin key generated: ADMIN_KEY=adminkey_XXXXXXXXXXXXXXXX
[seed] Created admin user: <uuid> (password: admin123)
[Server] Initialization complete — listening on :8443 (client) :9443 (admin)
docker-compose.yml overview
services:
ambassador:
image: mcpambassador-server:latest
# Or build locally:
# build: .
ports:
- "8443:8443"
- "9443:9443"
volumes:
- ambassador-data:/data
environment:
- NODE_ENV=development
# Optional: set these for production
# - ADMIN_SESSION_SECRET=<32-byte-hex>
# - CREDENTIAL_MASTER_KEY=<32-byte-hex>
# - DATABASE_URL=<postgres-url> # for Pro tier
restart: unless-stopped
volumes:
ambassador-data:
Production deployment
See Production Setup for:
- Setting
NODE_ENV=production(disables seed accounts) - Configuring CA-signed TLS certificates
- Setting
ADMIN_SESSION_SECRETandCREDENTIAL_MASTER_KEY - Persistent data volume management
- Reverse proxy configuration (nginx/Caddy/Cloudflare Tunnel)
Health check
curl -k https://localhost:8443/health
# → {"status":"ok","version":"0.8.0-beta.1"}
Build from source
# Clone the repo
git clone https://github.com/mcpambassador/server.git
cd mcpambassador_server
# Build packages
pnpm install
pnpm -r build
# Build Docker image
docker build -t mcpambassador-server:local .
# Run
docker compose up