Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Kotivon/dokpanel

Repository files navigation

Dokpanel

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.

License: MIT Next.js 15 TypeScript strict Dokku


What is Dokpanel?

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.

✨ Features

Apps & Deploy

  • πŸš€ 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)

Infrastructure

  • πŸ—„οΈ 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

Customer Portal (multi-tenant)

  • πŸ‘₯ 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)

Cloudflare Integration

  • DNS records, WAF rules, analytics, origin IP check β€” both API Token and Global Key auth supported

Notifications

  • Discord & Slack webhook notifications for deploy / rollback / SSL / health events

πŸ†š Comparison

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) βœ… ❌ ❌ ❌ ❌ βœ…

πŸ—οΈ Architecture

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
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Requirements

  • A Linux VPS with Dokku installed
  • SSH access to the host
  • Domain with DNS pointing to your VPS

Deploy

# 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:master

Open https://dashboard.your-domain.com and log in with the default password.

Environment Variables

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.

πŸ“¦ Tech Stack

  • 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

πŸ§ͺ Tests

npm run test # one-off
npm run test:watch # watch mode
npm run test:coverage # coverage report

πŸ—ΊοΈ Roadmap

  • 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

πŸ“„ License

MIT β€” see LICENSE.

πŸ™‹ Author

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.

About

πŸš€ Self-hosted Dokku PaaS panel β€” open-source alternative to cPanel, Plesk, Coolify, and CapRover. Manage Docker apps, databases, domains, SSL, and customers from one dashboard.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /