Overview
Dokku is a Docker-powered PaaS that implements Heroku’s buildpack approach on your own server. It’s the most mature open-source PaaS, first released in 2013.Best for: Teams wanting Heroku-like git-push deployments with proven stability and extensive plugin ecosystem.
Why Dokku?
Git-Push Deploys
git push dokku main to deployMature & Stable
10+ years of development, battle-tested
Heroku Compatible
Uses Heroku buildpacks and Procfiles
Plugin Ecosystem
100+ official plugins for every need
Comparison with Other Methods
| Feature | Dokku | Dokploy | Coolify | CapRover |
|---|---|---|---|---|
| Maturity | ★★★★★ (2013) | ★★★☆☆ (2023) | ★★★★☆ (2021) | ★★★★☆ (2018) |
| Git Push | ✅ Native | ❌ No | ✅ Yes | ✅ Yes |
| Web UI | ⚠️ Plugin | ✅ Yes | ✅ Yes | ✅ Yes |
| Buildpacks | ✅ Heroku | ❌ No | ✅ Nixpacks | ✅ Yes |
| Plugins | ✅ 100+ | ❌ Limited | ⚠️ Some | ⚠️ Some |
| SSL | ✅ Let’s Encrypt | ✅ Built-in | ✅ Built-in | ✅ Built-in |
| Learning Curve | Medium | Low | Low | Low |
| Resource Usage | Low | Medium | Medium-High | Medium |
| Community | Very Large | Growing | Large | Medium |
Prerequisites
- Hetzner CPX32 (4 vCPU, 8GB RAM)
- Ubuntu 24.04 or 22.04 LTS
- Domain with DNS access
- Comfortable with terminal/SSH
Installation
Step 1: Install Dokku
Step 2: Initial Setup
Visithttp://46.224.2.100 in browser to complete setup:
- Add SSH Public Key - Paste your
~/.ssh/id_rsa.pub - Hostname - Enter your domain:
dokku.yourdomain.com - Virtualhost Naming - Enable (allows app.yourdomain.com)
Step 3: Install Essential Plugins
Create RippleCore Apps
1. Create PostgreSQL Database
2. Create Redis Cache
3. Create Main App
4. Create API App
5. Create Web App
Deploy with Git
Local Setup
Configure for Monorepo
Since RippleCore is a monorepo, configure Dokku to build specific apps: Option 1: Dockerfile-based (Recommended) Create.dokku directory in monorepo root:
.dokku/app/Dockerfile:
app.json in each app directory:
Deploy
- Detect buildpack or use Dockerfile
- Build the application
- Run database migrations (if configured)
- Deploy with zero-downtime
- Generate SSL certificate
Run Migrations
One-time Migration
Auto-migrate on Deploy
Add toProcfile:
release command before each deployment.
Management Commands
App Management
Database Management
SSL Management
Monitoring
Advanced Configuration
Zero-Downtime Deployments
Enable health checks inapp.json:
Custom Domains
Environment Variables
Persistent Storage
Plugins Ecosystem
Essential Plugins
Useful Plugins
- dokku-graphite - Web UI dashboard
- dokku-event-listener - Event notifications
- dokku-http-auth - Basic auth for apps
- dokku-scheduler-k3s - K3s scheduler (alternative to Docker)
Migration from Dokploy
1. Export Data
2. Install Dokku
Follow installation steps above on new or same VPS.3. Import Data
4. Deploy Apps
5. Update DNS
Point A records to Dokku VPS IP. Migration time: 3-4 hoursTroubleshooting
Build Failures
Build Failures
Issue: Buildpack detection failingFix:
- Specify Dockerfile: Create
.dokku/Dockerfile - Check buildpack:
dokku buildpacks:list app - Set buildpack manually:
Database Connection
Database Connection
Issue: App can’t connect to databaseFix:
- Verify link:
dokku postgres:list - Re-link:
dokku postgres:link ripplecore-db app - Check env:
dokku config app | grep DATABASE
SSL Certificate Issues
SSL Certificate Issues
Issue: Let’s Encrypt failingFix:
- Check DNS:
dig app.yourdomain.com - Verify port 80 open:
ufw status - Check logs:
dokku letsencrypt:list - Force renewal:
dokku letsencrypt:renew app
Deployment Hangs
Deployment Hangs
Issue:
git push hangs during deploymentFix:- Check VPS resources:
htop - View logs:
dokku logs app - Increase timeout:
dokku config:set app DOKKU_WAIT_TO_RETIRE=60
Automated Backups
Database Backup Script
Schedule with Cron
Performance Optimization
Resource Limits
Scaling
Pros & Cons
Advantages
- Proven Stability (10+ years)
- Git-push deployments
- Heroku-compatible
- 100+ plugins
- Low resource overhead
- Large community
- Excellent docs
Limitations
- No native web UI
- CLI-focused
- Steeper learning curve
- Manual plugin setup
- Less beginner-friendly
When to Choose Dokku
Choose Dokku over other methods if:- ✅ You want Heroku-like git-push deployments
- ✅ Need proven stability (10+ years production use)
- ✅ Comfortable with CLI tools
- ✅ Want extensive plugin ecosystem
- ✅ Low resource overhead matters
- ✅ Planning long-term self-hosted PaaS
- ⚠️ You prefer web UI over CLI
- ⚠️ Want simpler setup process
- ⚠️ Need built-in monitoring dashboard
Cost Comparison
Hetzner CPX32 (€11.99/month): Dokku Overhead:- Platform: ~200MB RAM
- Available for apps: ~7.8GB RAM
- Most efficient PaaS option
Real-World Usage
Dokku powers thousands of production applications including:- Smaller SaaS companies
- Development agencies
- Side projects and startups
- Educational platforms
- Internal tools
Next Steps
Install Dokku
Follow installation guide above
Explore Plugins
Browse 100+ official plugins
Read Docs
Comprehensive official documentation
Join Community
Active Slack community
Resources
- Official Docs: https://dokku.com/docs/
- GitHub: https://github.com/dokku/dokku
- Plugins: https://dokku.com/docs/community/plugins/
- Slack Community: https://slack.dokku.com/
Dokku is the most mature and stable self-hosted PaaS, perfect for teams comfortable with CLI who want Heroku-like deployments with proven reliability.
