Self-hosted Docker deployment platform
Open-source alternative to Coolify, Dokploy, Dokku, CapRover, Vercel, Netlify & Heroku.
Quick Start β’ Features β’ Commands β’ Contributing
Docklift lets you deploy and manage Docker containers on your own server with a beautiful web UI. Connect GitHub repos or upload files, get auto-deployments, custom domains, and full system monitoring β without vendor lock-in.
Your server. Your rules. Your apps.
There are great tools out there like Coolify, Dokploy, Dokku, and CapRover β but they often come with a learning curve, complex configurations, or feel heavy for simple use cases.
Docklift is built to be lightweight, minimal, and easy to understand. It focuses purely on Docker deployments without the bloat, while offering features others don't β like full system monitoring (CPU, RAM, GPU, disk, network) and a web terminal right in your browser.
If you want to deploy Docker containers quickly without wrestling with configurations, Docklift is for you.
- Quick Start
- Why Docklift
- Features
- Installation
- Development Setup
- Deploy Your First App
- Commands Reference
- Contributing
- License
One-command install on Ubuntu/Debian:
curl -fsSL https://raw.githubusercontent.com/SSujitX/docklift/master/install.sh | sudo bashAccess your dashboard at http://your-ip:8080
| Feature | Description |
|---|---|
| π¦ One-Click Deploy | Push code β Docklift builds & runs it |
| π GitHub Integration | Connect private repos via GitHub Apps |
| π Auto-Deploy | Webhook-triggered redeploys on push |
| π Custom Domains | Automatic Nginx proxy & SSL ready |
| π System Monitoring | CPU, RAM, GPU, disk & network stats |
| π» Web Terminal | SSH-like access in your browser |
| π Live Build Logs | Real-time streaming output |
| π Env Variables | Secure build-time & runtime secrets |
Install:
curl -fsSL https://raw.githubusercontent.com/SSujitX/docklift/master/install.sh | sudo bashUpgrade (preserves data):
curl -fsSL https://raw.githubusercontent.com/SSujitX/docklift/master/upgrade.sh | sudo bashUninstall:
curl -fsSL https://raw.githubusercontent.com/SSujitX/docklift/master/uninstall.sh | sudo bash -s -- -yFor testing the latest features before release:
curl -fsSL https://raw.githubusercontent.com/SSujitX/docklift/master/install-dev.sh | sudo bash
β οΈ Warning: This installs unreleased code from master branch. Use production install for stable deployments.
git clone https://github.com/SSujitX/docklift.git
cd docklift
docker compose up -dPrerequisites: Docker, Bun
Clone & setup:
git clone https://github.com/SSujitX/docklift.git
cd dockliftBackend:
cd backend && cp .env.example .env
bun install
bun run db:generate && bun run db:push
bun run devFrontend (new terminal):
cd frontend && bun install && bun run devDev URLs: Frontend localhost:3000 | Backend localhost:4000
- Open Docklift β Click New Project
- Choose source: GitHub URL, Private Repo, or ZIP Upload
- Add environment variables (optional)
- Click Deploy β Watch live build logs
- Access at
http://your-ip:<assigned-port>
Requirement: Your project must have a
Dockerfile
| Command | Description |
|---|---|
docker logs docklift-backend -f |
Backend logs |
docker logs docklift-frontend -f |
Frontend logs |
docker logs docklift-nginx-proxy -f |
Nginx proxy logs |
docker ps --filter name=dl_ |
List project containers |
| Command | Description |
|---|---|
bun run db:studio |
Open Prisma Studio GUI |
bun run db:push |
Push schema changes |
bun run db:generate |
Regenerate Prisma client |
Docklift uses semantic-release to automate versioning, changelogs, and GitHub Releases.
How to release:
- Push commits to
masterusing conventional commits (e.g.fix:,feat:) - Go to GitHub β Actions β "Release & Test" β Click "Run workflow"
- Done! semantic-release automatically:
- Determines the next version from commit messages
- Bumps
package.json(root, frontend, backend) - Updates
CHANGELOG.md - Creates a git tag and GitHub Release
| Commit Type | Release |
|---|---|
feat:, fix:, perf:, refactor: |
Patch (1.3.10 β 1.3.11) |
*force minor* in subject |
Minor (1.3.10 β 1.4.0) |
BREAKING CHANGE |
Major (1.3.10 β 2.0.0) |
*skip release* in subject |
No release |
π Config: release.config.cjs | Workflow: .github/workflows/release.yml
| Command | Description |
|---|---|
for port in {3001..3050}; do sudo fuser -k ${port}/tcp 2>/dev/null; done |
Kill ports 3001-3050 |
cd backend && bun run reset-password |
Reset admin password |
π Full commands guide: commands.md
Contributions welcome! Please:
- Fork the repo
- Create a feature branch (
git checkout -b feature/amazing) - Commit changes (
git commit -m 'feat: add amazing feature') - Push to branch (
git push origin feature/amazing) - Open a Pull Request
feat: New feature
fix: Bug fix
docs: Documentation
style: Formatting (no code change)
refactor: Code restructure
test: Add tests
chore: Maintenance
MIT License β see LICENSE
Made with β€οΈ for developers who take control
