Agent-native self-hosted deployment platform.
Deploy and manage projects on your own VPS from your terminal, Claude Code, or Codex — without SSH.
Deprun is a self-hosted deployment control plane. You install it on a server, register your VPS once, then deploy projects using the CLI, MCP tools, or dashboard. The agent handles Docker builds, routing, SSL, and healthchecks automatically.
- No manual SSH — Deploy from local or AI agents via a structured API
- AI-first — Native MCP tools for Claude Code and Codex
- Self-hosted — Your server, your data, no vendor lock-in
- Multi-stack — Next.js, Vite, Node, Docker, Docker Compose
- Secure by design — Encrypted secrets, JWT auth, token scoping
- GitHub ready — Webhook-triggered deployments
Alpha (0.3.0-alpha) — Core deployment loop implemented and verified. The following are verified working:
- User auth (JWT + bcrypt)
- Rate limiting on auth endpoints
- CORS enforcement with explicit origins
- Webhook signature verification (HMAC-SHA256)
- Project CRUD + stack detection
- Server/agent registration + heartbeat
- Agent Docker execution loop (build → run → healthcheck → activate)
- CLI deploy/logs/rollback (fully implemented)
- Dashboard login (JWT wired to API)
- MCP server (22 tools implemented)
- Docker Compose deployment
- Rollback via release activation
- Traefik dynamic config generation
Not yet production-ready:
- Fresh VPS install never tested on clean Ubuntu
- Real deployment never executed end-to-end
- MCP not tested with real Claude Code
- Backup/restore never executed
- Observability stack not deployed
See report_final/ for full honest status.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Developer │ │ Claude Code │ │ GitHub │
│ CLI │ │ MCP │ │ Webhooks │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└───────────────────┼───────────────────┘
▼
┌───────────────────────┐
│ Go Fiber API │
│ Control Plane │
└───────────┬───────────┘
│
┌─────────────────┼─────────────────┐
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ PostgreSQL │ │ Redis │ │ Agent │
│ (storage) │ │ (tokens) │ │ (executes) │
└─────────────┘ └─────────────┘ └──────┬──────┘
│
┌──────────┴──────────┐
▼ ▼
┌───────────┐ ┌───────────┐
│ Docker │ │ Traefik │
│ Engine │ │ (proxy) │
└───────────┘ └───────────┘
curl -sSL https://get.deprun.dev | bashcurl -sSL https://get.deprun.dev/cli | shdeprun auth logincd my-nextjs-app
deprun deploy# Login
deprun auth login --email admin@example.com --password mypassword
# List projects
deprun project list
# Deploy
deprun deploy myapp --stack nextjs
# View logs
deprun logs myapp --follow
# Rollback
deprun rollback myapp --to v1.2.3
# Domain management
deprun domain add myapp --domain myapp.example.com --sslYou: "Deploy my Vite app to production"
Claude Code → MCP tools:
- deploy(project="vite-app", branch="main", confirm=true)
- check_deployment_status(deploymentId="dep_xxx")
- get_logs(project="vite-app", tail=50)
Full MCP tool reference in docs/MCP_REFERENCE.md.
| Stack | Auto-detected | Dockerfile | docker-compose |
|---|---|---|---|
| Next.js | ✅ | — | ✅ |
| Vite | ✅ | — | ✅ |
| Static HTML | ✅ | ✅ | ✅ |
| Node.js | ✅ | ✅ | ✅ |
| Dockerfile | — | ✅ | ✅ |
| Docker Compose | — | — | ✅ |
| Phase | Goal | Status |
|---|---|---|
| Phase 1-4 | Core foundation | ✅ Complete |
| Phase 5 | Production hardening | 🔜 In progress |
| Phase 6 | Deprun Cloud (paid tier) | Planned |
- Rate limiting on auth endpoints
- CORS + webhook signature verification
- Agent Docker execution
- Dashboard API wiring
- Test execution
- Passwords — bcrypt hashed (12 rounds)
- Tokens — JWT (15min access) + refresh token rotation
- Agent auth — Per-agent token with heartbeat
- API tokens — SHA256 hashed, scoped per-resource
- Secrets — AES-256-GCM encrypted at rest
- Secret masking — Values redacted in all logs
- Command allowlist — Agent only runs pre-approved Docker commands
- Docker isolation — No privileged mode, read-only root where possible
Full security documentation in docs/.
.
├── apps/
│ ├── api/ # Go Fiber REST API
│ ├── agent/ # Go deployment agent
│ ├── cli/ # Go CLI (Cobra)
│ ├── dashboard/ # React dashboard
│ └── mcp-server/ # NestJS MCP server
├── packages/
│ └── sdk/ # TypeScript SDK
├── architect/ # Architecture decision records
├── docs/ # User documentation
├── docs/diagrams/ # Mermaid architecture diagrams
├── infra/ # Infrastructure as code
├── report_final/ # Phase 4 honest status reports
└── templates/ # Project templates
MIT