Skip to content

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

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages