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