docs Introduction
Introduction
Everything you need to know about DeployKit and how it works.
What is DeployKit?
DeployKit is a self-hosted, open-source PaaS (Platform as a Service) that deploys applications, databases, Compose stacks and game servers on your own infrastructure. Think of it as your own Vercel or Heroku, with full control over your data, no vendor lock-in, and no usage limits. Underneath it is plain Docker, Compose and Traefik: uninstall DeployKit and your containers keep running.
This documentation covers DeployKit v0.6.0.
Key Features
Applications
Deploy from GitHub, GitLab, any Git repo, or a Docker image, with rollbacks, replicas, autoscaling and maintenance mode
Auto-Detect Builds
Nixpacks, Dockerfile, or Cloud Native Buildpacks, with optional Trivy vulnerability scanning
Databases
One-click PostgreSQL, MySQL, MariaDB, MongoDB, and Redis with scheduled backups and restore
Compose Stacks & Templates
Run a whole docker-compose.yml as a unit, or install one from the one-click template catalogue
Game Servers
Minecraft, Valheim, CS2 and Terraria from a catalogue, with live console, file manager, world backups and mods
GitHub App
Private repos without personal tokens, commit statuses on every deploy, and PR previews
Webhooks & Previews
Auto-deploy on push from GitHub, GitLab or any CI, plus ephemeral environments for pull requests
Automatic SSL
Free HTTPS certificates via Let's Encrypt + Traefik for every domain
Scheduled Tasks
Cron jobs and one-off commands (migrations, scripts) in isolated containers
Monitoring & Alerts
Live and historical CPU, memory and network metrics, alert rules, and persistent searchable logs
Status Pages
A public, no-login page showing the live state and uptime of the services you choose
Export & Import
Your whole instance as a YAML file: review it in git, or rebuild it on a new server
Remote Servers
Deploy to other machines over SSH, with a managed SSH key catalogue
Role-Based Access
Admin, Operator, and Viewer roles with per-project overrides and a full audit log
Notifications
Discord, Slack, Telegram, Email, and Webhook alerts
Architecture
DeployKit is a control plane: a dashboard and an API that drive the Docker daemon of one or more machines. It does not run your applications inside itself — it tells Docker to run them. A production install runs these containers:
- API — Fastify 5 + tRPC 11, Drizzle ORM, BullMQ workers and Socket.IO. It mounts the host's Docker socket to build images and create containers, and is the only component that talks to the database and Docker
- Web — React 19 SPA (TanStack Router, TanStack Query, Tailwind CSS) served on the same domain as the API
- Traefik v3.6 — Reverse proxy on ports 80/443. Discovers containers by their labels and issues Let's Encrypt certificates. It reads Docker through a read-only socket proxy, never the socket itself
- PostgreSQL 16 — Stores all configuration, users, projects, deployment history, metrics and audit data
- Redis 7 — Password-protected. Holds the BullMQ queues (deploys, backups, scheduled tasks), refresh tokens and rate-limit counters
- Docker socket proxy — Read-only Docker API for Traefik, on an internal network only Traefik can reach
Your applications, databases and stacks join the deploykit-network Docker network, where Traefik routes to them. Game servers run on a separate network, deploykit-games, and players connect to their ports directly. Deploys and backups are queued and processed by workers; the dashboard follows progress in real time over Socket.IO.
System Requirements
- Linux server (Ubuntu, Debian, RHEL family, or Alpine)
- 1 vCPU minimum (2+ recommended — image builds are CPU-heavy)
- 1 GB RAM minimum (2+ GB recommended; a modded Minecraft server alone wants 4–8 GB)
- 10 GB disk minimum (50+ GB recommended depending on images, data, backups and game worlds)
- Ports 80 and 443 open — port 80 is required even if everything ends up on HTTPS, because Let's Encrypt validates over it
- Root or sudo access
- Node.js 20+ on the server, only to run the installer CLI