Dokploy is a self-hosted alternative to Vercel, Netlify, and Heroku that enables developers to deploy and manage applications (Node.js, Python, PHP, Go, etc.) and databases (MySQL, PostgreSQL, MongoDB, MariaDB, Redis) on their own VPS or remote servers. It eliminates vendor lock-in by providing full control over infrastructure while automating complex DevOps tasks like deployment, monitoring, and backups.
Built with TypeScript and Docker, Dokploy integrates Traefik for reverse proxying and load balancing, supports Docker Compose natively, and leverages Docker Swarm for multi-node scaling. It offers a CLI, API, and web UI for managing deployments, with real-time monitoring and automated backups to external storage. Users can deploy via Nixpacks, Heroku Buildpacks, or custom Dockerfiles, and choose between single-server or multi-server configurations.
What You Get
- Applications Deployment - Deploy any application using Nixpacks, Heroku Buildpacks, or custom Dockerfiles across multiple servers.
- Database Management - Create, manage, and monitor MySQL, PostgreSQL, MongoDB, MariaDB, and Redis databases directly from the UI.
- Automated Backups - Schedule and automate database backups to external storage destinations like S3, FTP, or local paths.
- Docker Compose Support - Deploy complex multi-container applications using native Docker Compose files without manual orchestration.
- Multi-Server Deployment - Manage and deploy applications to remote VPS or server instances with zero configuration overhead.
- Docker Swarm Integration - Scale applications across multiple nodes using built-in Docker Swarm clustering capabilities.
- Traefik Integration - Automatically configure domain routing, SSL certificates, and load balancing via Traefik’s file-based configuration editor.
- Real-time Monitoring - View live CPU, memory, storage, and network usage metrics for every deployed application and database.
- CLI and API Access - Automate deployments and management tasks using the built-in command-line interface or REST API.
- Notifications - Receive deployment success/failure alerts via Slack, Discord, Telegram, or email.
- Open-Source Templates - One-click deployment of popular tools like Plausible, PocketBase, Cal.com, and Supabase.
- Advanced User Management - Control access with granular roles and permissions for teams and shared environments.
Common Use Cases
- Running a multi-service SaaS product - A startup uses Dokploy to deploy a Next.js frontend, PostgreSQL database, and Redis cache on a remote VPS with automated backups and Traefik routing.
- Managing developer environments for a remote team - A DevOps lead deploys identical staging and production environments across 3 servers using Docker Compose and user roles to control access.
- Self-hosting open-source tools at scale - A sysadmin deploys Cal.com, PocketBase, and Plausible on a single Dokploy instance with centralized monitoring and automated backups.
- Avoiding cloud vendor lock-in - A freelance developer migrates from Heroku to Dokploy to self-host their Python app on a $5/month VPS with full control over infrastructure.
Under The Hood
Architecture
- Monorepo structure with clear separation between backend (Hono/Prisma) and frontend (Next.js), enforced via pnpm workspaces for modularity
- Service-repository pattern isolates database logic from API controllers, promoting clean separation of concerns
- API routes use Zod validation and Hono for type-safe request handling with consistent error responses
- Frontend leverages Next.js App Router with server components and decoupled authentication via better-auth
- Dependency injection is achieved through modular exports and workspace references, with centralized configuration via environment variables and Prisma schema
- Multi-stage Docker builds with Nixpacks and Railpack automate image optimization and runtime isolation
Tech Stack
- Node.js backend powered by Hono, Zod, and Pino for routing, validation, and structured logging
- Next.js 16+ frontend with TypeScript, React 18, and Tailwind CSS, utilizing server components for optimized rendering
- Drizzle ORM for type-safe PostgreSQL interactions with auto-generated migrations
- Docker-based deployment using multi-stage builds and automated tooling like Nixpacks, Railpack, and Buildpacks
- Comprehensive tooling including Biome for linting, Vitest for testing, and tsx for ESModule script execution
Code Quality
- Extensive test coverage spanning unit, integration, and edge-case scenarios with real-world Docker Compose validations
- Modular server logic and domain-specific utilities ensure clear boundaries and testable components
- Robust error handling with proactive regression testing for edge cases like malformed configurations and duplicate identifiers
- Consistent, descriptive naming conventions across services, tests, and utilities enhance readability and maintainability
- Strong TypeScript usage with interfaces and type guards ensures correctness in parsing, permissions, and data transformation
- Linting and testing patterns enforce high standards with integration tests validating behavior against live systems
What Makes It Unique
- Native Traefik configuration editor with real-time health checks enables safe, atomic updates to reverse proxy rules without restarts
- Unified Docker provider schema dynamically generates connection URLs for diverse services like PostgreSQL and MongoDB based on runtime context
- Embedded code editor with syntax-aware templating for infrastructure-as-code workflows directly in the dashboard
- Server-side scheduled tasks with role-based access control tightly integrated with user auth and cloud deployment flags
- Cross-platform Git provider abstraction with consistent UI/UX across GitHub, GitLab, Gitea, and Bitbucket
- Client-side form validation mapped directly to API mutations with keyboard shortcuts for seamless developer workflow