Self-hosted Dokku PaaS panel β manage Docker apps, databases, domains, SSL, and customers from one dashboard.
Open-source alternative to cPanel, Plesk, Coolify, and CapRover β built on top of Dokku.
Dokpanel is a modern, self-hosted control panel for Dokku β the Docker-powered PaaS that runs thousands of self-hosted apps. If you've used cPanel, Plesk, or Coolify, Dokpanel gives you a similar experience but on your own VPS, with no monthly license fee and no vendor lock-in.
Built with Next.js 15, React 19, TypeScript (strict), and a clean dark UI.
- π One-click app creation, scale, and rebuild
- π Live build & runtime logs over Server-Sent Events
- π Rollback Snapshots β Docker image-tagged versions, with one-click rollback to any prior deploy
- π Per-app deploy history with duration, image digest, trigger source, and snapshot links
- π Webhook deploy triggers (token-based auth, pre-deploy auto-snapshot)
- ποΈ Databases β Postgres, MariaDB, Redis (create, link, import, export)
- π Domains & SSL β Let's Encrypt automation, Cloudflare DNS sync, temporary preview domains via sslip.io
- π‘οΈ Security β Fail2ban dashboard, UFW rule editor, failed login monitoring
- π Monitoring β Live system metrics, per-container Docker stats, 24h history charts
- β° Cron β visual cron job manager across all apps
- π¦ Storage β volume mount management
- π₯ Provision separate logins for your clients
- π Per-app permissions, sandboxed file manager, log viewer
- π Separate JWT secret + service-token gateway (zero overlap with admin auth)
- π Dedicated subdomain (e.g.
customers.your-domain.com)
- DNS records, WAF rules, analytics, origin IP check β both API Token and Global Key auth supported
- Discord & Slack webhook notifications for deploy / rollback / SSL / health events
| Feature | Dokpanel | cPanel | Plesk | Coolify | CapRover | Dokploy |
|---|---|---|---|---|---|---|
| Self-hosted | β | β | β | β | β | β |
| Free / Open source | β | β | β | β | β | β |
| Built on Dokku | β | β | β | β | β | β |
| First-class Docker apps | β | β | β | β | ||
| Rollback snapshots | β | β | β | β | ||
| Multi-tenant customer portal | β | β | β | β | β | β |
| Cloudflare integration | β | β | β | β | β | β |
| Live deploy logs (SSE) | β | β | β | β | β | |
| Modern stack (Next.js 15) | β | β | β | β | β | β |
Dokpanel runs as a Docker container on your Dokku host. It talks to the host over SSH with a hardened command allowlist (spawn with token arrays β no shell strings, no string interpolation). State is persisted as plain JSON files in /app/data/ plus a SQLite database for customer records.
βββββββββββββ HTTPS ββββββββββββββββββ SSH:4422 ββββββββββββββββ
β Browser β ββββββββββΆ β Dokpanel β ββββββββββββΆ β Dokku host β
β β β (Next.js 15) β β (Docker) β
βββββββββββββ ββββββββββββββββββ ββββββββββββββββ
β
βΌ
βββββββββββββββββ
β /app/data/ β SQLite + JSON state
βββββββββββββββββ
- A Linux VPS with Dokku installed
- SSH access to the host
- Domain with DNS pointing to your VPS
# On your local machine git clone https://github.com/Kotivon/dokpanel.git cd dokpanel
# On your Dokku host ssh dokku@your-host dokku apps:create dashboard dokku domains:set dashboard dashboard.your-domain.com dokku letsencrypt:enable dashboard exit
# Set required env vars
ssh dokku@your-host config:set dashboard \
SSH_HOST=172.17.0.1 \
SSH_PORT=22# Push to deploy
git remote add dokku ssh://dokku@your-host/dashboard
git push dokku main:masterOpen https://dashboard.your-domain.com and log in with the default password.
| Variable | Required | Default | Description |
|---|---|---|---|
SSH_HOST |
β | β | Docker host gateway IP |
SSH_PORT |
β | β | Host SSH port |
JWT_SECRET |
auto | generated | Admin session secret |
PANEL_PASSWORD |
auto | Dokpanel2026! |
Initial admin password |
CUSTOMER_JWT_SECRET |
auto | generated | Customer portal JWT secret |
CUSTOMER_SERVICE_TOKEN |
auto | generated | Internal portal β admin service token |
Change the default password immediately after first login.
- Next.js 15 (App Router, standalone Docker output)
- React 19 + TypeScript 5.7 (strict mode)
- Tailwind CSS 3.4 + Radix UI primitives
- jose (edge-compatible JWT) + bcryptjs
- better-sqlite3 for the customer database
- Framer Motion, Recharts, Sonner, cmdk
- Vitest for testing
npm run test # one-off npm run test:watch # watch mode npm run test:coverage # coverage report
- Auto-rollback on health check failure
- Snapshot environment-diff view
- Deploy analytics page (charts: success rate, duration trends)
- Bulk deploy across multiple apps
- PR preview URL automation
- Scheduled rollback (cron-based)
- Snapshot comparison UI
- Snapshot export / download
MIT β see LICENSE.
Built and maintained by Kotivon. Issues and pull requests welcome.
β If Dokpanel saved you from another year of cPanel licensing, consider giving it a star.