Dokploy 自托管 PaaS 平台实战指南:应用、数据库与 Docker Compose 的一站式部署方案
后端前端云原生DevOps容器编排运维【免费下载链接】dokployOpen Source Alternative to Vercel, Netlify and Heroku.项目地址https://gitcode.com/GitHub_Trending/do/dokploy点击查看免费下载Dokploy 是一个免费、可自托管Self-Hosted的 Platform as a ServicePaaS开源项目目标是成为 Vercel、Netlify 与 Heroku 的开源替代品让你在自己的 VPS 上拥有一套完整的应用与数据库部署管理平台。本文将以项目 README.md 为核心骨架结合仓库源码与构建配置系统讲解 Dokploy 的核心功能特性、快速安装方式、底层实现机制与实战要点。项目定位自托管的 PaaS掌控部署全流程Dokploy 的核心价值在于自托管 全流程托管你不需要把应用托管给第三方商业平台而是通过一条命令在自有 VPS 上安装 Dokploy随后通过 Web 界面完成从代码拉取、构建、部署、域名绑定、TLS 证书到数据库备份的全生命周期管理。从仓库结构看这是一个 pnpm workspace 多包项目见 package.json包含三个核心应用apps/dokploy主应用Next.js 前端 Node.js 后端服务版本 v0.30.6见 apps/dokploy/package.jsonpackages/server共享服务层集中了应用、数据库、备份、监控等业务逻辑见 packages/server/src/servicesapps/api面向 CLI/API 的独立服务例如对接 Inngest 事件队列的部署任务接口见 apps/api/src/service.ts。核心功能特性全景README 中列出的 13 项特性构成了 Dokploy 的能力骨架每一条都能在仓库源码中找到对应的实现模块1. 应用部署ApplicationsDokploy 支持部署任意类型的应用Node.js、PHP、Python、Go、Ruby 等。底层依赖三大构建系统Nixpacks默认的零配置构建方案自动检测语言并生成镜像Dockerfile 中通过https://nixpacks.com/install.sh安装Railpack新一代通用构建工具https://railpack.com/install.shBuildpacksCNCF 生态的标准构建包packCLI。相关实现集中在 packages/server/src/services/application.ts 与 deployment.ts。2. 数据库管理Databases内置 MySQL、PostgreSQL、MongoDB、MariaDB、libsql 与 Redis 六类数据库的创建与管理每一类都有独立服务模块postgres.ts、mysql.ts、mongo.ts、mariadb.ts、libsql.ts、redis.ts。你可以在 UI 中一键拉起数据库实例并通过 update-database-password.tsx 等组件直接管理密码等运行参数。3. 备份Backups支持将数据库备份自动化投递到外部存储目标external storage destination。核心逻辑位于 backup.ts 与 volume-backups.ts。值得注意的是仓库中还有大量备份相关测试例如 db-backup-restore-injection.test.ts 与 redact-credentials.test.ts验证备份命令注入防护与凭据脱敏等安全行为。4. Docker Compose 原生支持用于管理复杂多容器应用的 Docker Compose 能力由 compose.ts 支撑。测试目录 apps/dokploy/test/compose 覆盖了 compose 命令注入防护compose-command-injection.test.ts、项目目录处理compose-project-directory.test.ts与镜像拉取compose-pull-images.test.ts等关键场景。5. 多节点集群Multi Node / Docker Swarm通过 Docker Swarm 将应用扩展到多个节点实现集群化部署与横向扩展。集群管理入口见 apps/dokploy/server/api/routers/swarm.ts 与 apps/dokploy/components/dashboard/swarm。测试 swarm-nodeid-injection.test.ts 验证了集群节点标识的注入防护。6. 一键模板TemplatesPlausible、Pocketbase、Calcom 等开源项目模板可以一键部署。模板清单定义在 apps/dokploy/templates/templates.ts并配套 config.template.test.ts 等测试保证模板配置的正确性。7. Traefik 集成自动与 Traefik 集成负责路由与负载均衡实现域名解析、反向代理与自动 TLS。路由配置相关测试集中在 apps/dokploy/test/traefik例如 traefik.test.ts 与 write-app-traefik-config.test.ts。8. 实时监控Real-time Monitoring对每个资源的 CPU、内存、存储与网络使用情况进行实时监控。监控采集端由独立的 Go 服务实现位于 apps/monitoring含 containers/monitor.go 等前端展示组件见 apps/dokploy/components/dashboard/monitoring。9. Docker 管理可直接在界面中部署和管理 Docker 容器。服务实现见 packages/server/src/services/docker.ts前端 UI 见 apps/dokploy/components/dashboard/docker容器机械化管理逻辑有独立测试 mechanizeDockerContainer.test.ts。10. CLI / API可通过命令行或 API 管理应用与数据库。仓库中的 apps/api 即为独立 API 服务它对接 Inngest 事件系统读取部署任务。以 apps/api/src/service.ts 的fetchDeploymentJobs为例它会拉取deployment/requested事件过滤出指定serverId再查询每个事件的 runs最终组装成部署任务列表返回给 UI 层。OpenAPI 文档由 scripts/generate-openapi.ts 脚本生成并支持 tRPC OpenAPI 规范依赖dokploy/trpc-openapi。11. 通知Notifications部署成功或失败时通过 Slack、Discord、Telegram、Email 等方式推送通知。通知服务实现见 packages/server/src/services/notification.ts。12. 多服务器Multi Server支持将应用远程部署到外部服务器实现分布式管理。相关能力由 packages/server/src/services/server.ts 与 ssh-key.ts 支撑SSH 密钥管理是远程连接的基础服务健康检查见 server-health.ts。13. 自托管Self-HostedDokploy 本身就是为自托管而设计的安装与运行均依赖 Docker 环境具体见下文快速开始。快速开始一条命令完成安装在 VPS 上安装 Dokploy只需执行 README 中给出的安装命令curl -sSL https://dokploy.com/install.sh | bash安装脚本会自动完成环境检测、依赖准备与容器启动。生产环境要求 VPS 上具备 Docker 能力——官方 GUIDES.md 详细给出了 Ubuntuapt 安装 docker-ce/docker-buildx-plugin/docker-compose-plugin、macOS 与 WindowsWSL2 Docker Desktop三种环境的 Docker 安装步骤建议先按文档准备好 Docker 再执行安装命令。生产容器架构Dokploy 镜像里装了什么从仓库根目录的 Dockerfile 可以完整还原生产镜像的组成帮助你理解自托管时 Dokploy 实际依赖哪些运行时基础运行时node:24.4.0-slimcorepack激活的pnpm10.22.0项目根 package.json 的engines亦声明 Node^24.4.0、pnpm9.12.0构建阶段通过pnpm --filterdokploy/server build与pnpm --filter./apps/dokploy run build完成服务端与前端构建再以pnpm --filter./apps/dokploy --prod deploy收集生产依赖运行时组件镜像内安装了 Docker CLIget.docker.com版本 28.5.2与 rclone用于在容器中调用宿主 Docker 与外部存储备份同时内置 Nixpacks、Railpack 与 Buildpacks 三种构建工具使 Dokploy 自身即可驱动应用构建进程管理使用tini作为 PID 1ENTRYPOINT [/usr/bin/tini, --]回收健康检查产生的僵尸进程健康检查HEALTHCHECK每 30 秒探测http://localhost:3000/api/trpc/settings.health见 Dockerfile启动序列CMD依次执行等待 PostgreSQL、运行迁移dist/migration.mjs、再启动主服务dist/server.mjs对应 apps/dokploy/package.json 中的migration:run与start脚本逻辑。镜像对外暴露3000端口EXPOSE 3000这是 Dokploy Web 界面的默认访问端口。本地开发与构建环境若你想基于源码本地运行或二次开发可参考 CONTRIBUTING.md 与根 package.json 的脚本约定。仓库采用 pnpm workspace核心流程为git clone https://gitcode.com/GitHub_Trending/do/dokploy.git cd dokploy pnpm install cp apps/dokploy/.env.example apps/dokploy/.env pnpm run dokploy:setup # 启动所需服务并执行数据库迁移 pnpm run server:script # 切换 server 包指向 src pnpm run dokploy:dev # 启动开发服务器访问 http://localhost:3000常用命令一览均来自根 package.json命令作用pnpm run dokploy:setup初始化环境并运行数据库迁移pnpm run dokploy:dev启动开发服务器pnpm run dokploy:build生产构建pnpm run dokploy:start生产启动先迁移后启动pnpm run test运行 vitest 测试套件配置见 apps/dokploy/test/vitest.config.tspnpm --filterdokploy run reset-password [邮箱]重置用户密码不传邮箱则重置 owner新密码输出到控制台pnpm --filterdokploy run reset-2fa重置两步验证pnpm --filterdokploy run generate:openapi生成 OpenAPI 文档开发时项目使用 Biome 作为格式化与 lint 工具format-and-lint/check脚本贡献 PR 时需遵循 Conventional Commits 提交规范并以canary分支为开发基线、main分支为稳定发布源。部署任务的底层执行模型从事件到任务行了解部署的底层机制有助于排障。Dokploy 的部署请求通过 Inngest 事件系统流转参考 apps/api/src/service.ts 与 apps/api/src/schema.ts事件定义部署任务由deployJobSchema描述按applicationType区分为application、compose与application-preview三类见 schema.ts每类均包含serverId、typedeploy/redeploy等字段事件拉取fetchInngestEvents分页调用 Inngest 的/v1/events接口每页 100 条上限 500 条使用INNGEST_SIGNING_KEY鉴权任务组装fetchDeploymentJobs过滤出与目标serverId匹配的deployment/requested事件最多取 50 个事件查询其 runs再按运行状态queued→pending、running→active、completed、failed、cancelled组装为 BullMQ 风格的队列行供 UI 展示部署队列。结语Dokploy 以自托管 PaaS为核心定位把 Vercel/Netlify/Heroku 的托管体验搬回你自己的服务器一条命令完成安装Web 界面统一管理应用、数据库、备份、域名与监控同时通过 Docker Swarm 与多服务器支持横向扩展。对于希望掌控部署全链路、规避商业平台锁定或数据合规约束的团队Dokploy 提供了一条可落地的开源路径。想要深入了解某个模块如备份恢复、Traefik 配置或权限体系可以直接在仓库 apps/dokploy/test目录找到对应的端到端测试这些测试本身就是最好的使用说明书。赞分享后端前端云原生DevOps容器编排运维【免费下载链接】dokployOpen Source Alternative to Vercel, Netlify and Heroku.项目地址https://gitcode.com/GitHub_Trending/do/dokploy点击查看免费下载相关推荐从0到1用Gausian Native Editor制作AI生成视频的详细教程从0到1用Gausian Native Editor制作AI生成视频的详细教程 Gausian Native Editor是一款基于Rust开发的本地视频编辑如何快速部署应用Dokploy自托管PaaS平台的完整使用指南如何快速部署应用Dokploy自托管PaaS平台的完整使用指南 在现代Web开发中快速、安全的部署策略是成功的关键。Dokploy是一个基于Docker和T后端前端云原生DevOps容器编排运维终极Dokploy指南自托管PaaS平台完整解决方案终极Dokploy指南自托管PaaS平台完整解决方案 在现代Web开发中快速、安全的部署策略是成功的关键。Dokploy是一个基于Docker和Traefi后端前端云原生DevOps容器编排运维上一篇Testing Playground与Cypress集成打造端到端DOM测试流水线的完整指南下一篇gh_mirrors/de/dev-practice项目许可证解析MIT许可下的使用指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考