580_Dokploy应用部署
一句话概述:Dokploy 是免费开源的 Docker 应用部署平台,基于 Docker + Traefik,一键安装即可可视化部署应用、管理数据库、自动 SSL,是 Heroku/Vercel 的轻量替代品。
核心知识点表
| 概念 | 白话解释 |
|---|
| Dokploy | 一个帮你把代码变成可访问网站的工具,不用手动配 Nginx/Docker |
| Traefik | Dokploy 内置的反向代理,自动处理域名路由和 HTTPS |
| Nixpacks | 自动检测项目语言并打包成 Docker 镜像的工具 |
| Buildpack | 类似 Heroku 的构建包,自动识别并构建项目 |
| Docker Compose | 用 YAML 文件定义多容器应用的编排工具 |
| Webhook | 代码推送后自动触发重新部署的钩子 |
安装配置
环境要求
# 最低配置:1 vCPU + 1GB RAM
# 推荐配置:2 vCPU + 2GB RAM
# 操作系统:Ubuntu 20.04+ / Debian 11+
# 需要:Docker(Dokploy 会自动安装)
一键安装
# 在 VPS 上运行安装脚本
curl -sSL https://dokploy.com/install.sh | sh
# 安装过程约 3-5 分钟,自动完成:
# 1. 安装 Docker(如果没有)
# 2. 初始化 Docker Swarm
# 3. 拉取 Dokploy 镜像
# 4. 配置 Traefik 反向代理
# 5. 启动服务
# 安装完成后,Dokploy 运行在端口 3000
首次访问
# 浏览器打开:http://你的服务器IP:3000
# 创建管理员账号(设置强密码!)
# 建议立即开启两步验证(2FA)
基本使用
部署应用(Git 仓库)
# 在 Dokploy 面板操作:
# 1. 创建项目(Project)→ 给项目起个名字
# 2. 在项目中添加 Application
# 3. 选择来源:
# - Git(GitHub/GitLab/Gitea/Bitbucket)
# - Docker Image(直接用现成镜像)
# - Docker Compose
# 4. 配置构建方式:
# - Nixpacks(自动检测,最简单)
# - Dockerfile(使用项目中的 Dockerfile)
# - Buildpack(Heroku 风格)
# 5. 添加域名 → Dokploy 自动配置 SSL
# 6. Deploy!
部署数据库
# 在项目中添加 Database:
# 支持的数据库:
# - PostgreSQL → 默认端口 5432
# - MySQL → 默认端口 3306
# - MariaDB → 默认端口 3306
# - MongoDB → 默认端口 27017
# - Redis → 默认端口 6379
# - LibSQL → SQLite 的服务器版
# 自动生成连接字符串,复制到应用的环境变量中即可
配置域名和 SSL
# 1. 在域名提供商处添加 A 记录:
# your-app.example.com → 你的服务器IP
# 2. 在 Dokploy 应用设置 → Domains → 添加域名
# 输入:your-app.example.com
# 3. Dokploy 自动通过 Let's Encrypt 申请 SSL 证书
# HTTPS 自动生效,无需任何额外配置
# 4. 证书自动续期
环境变量管理
# 在应用设置 → Environment Variables 中添加:
#
# DATABASE_URL=postgresql://user:pass@db:5432/mydb
# REDIS_URL=redis://redis:6379
# SECRET_KEY=your-secret-key
# NODE_ENV=production
#
# 支持分类:
# - Build Time(构建时使用)
# - Runtime(运行时使用)
高级用法
Docker Compose 部署
# 对于需要多个服务的复杂应用,使用 Docker Compose
# 在 Dokploy 中选择 "Docker Compose" 类型
# 粘贴或上传 docker-compose.yml:
services:
web:
build: . # 从 Dockerfile 构建
ports:
- "3000" # 暴露端口(Traefik 自动路由)
environment:
- DATABASE_URL=${DATABASE_URL} # 引用 Dokploy 中的环境变量
depends_on:
- postgres
postgres:
image: postgres:16-alpine # PostgreSQL 数据库
environment:
POSTGRES_DB: myapp # 数据库名
POSTGRES_USER: myuser # 用户名
POSTGRES_PASSWORD: mypass # 密码
volumes:
- pgdata:/var/lib/postgresql/data # 持久化存储
volumes:
pgdata: # 命名卷
多服务器部署
# Dokploy 支持部署到远程服务器:
# 1. Settings → Servers → Add Server
# 2. 填入:
# - 服务器名称
# - IP 地址
# - SSH 端口(默认 22)
# - SSH 私钥
# 3. Dokploy 自动在远程服务器配置 Docker
# 4. 创建应用时可选择部署到哪台服务器
Docker Swarm 扩容
# Dokploy 基于 Docker Swarm,支持水平扩展:
# 在应用设置 → Advanced → Replicas
# 设置副本数(如 3),Dokploy 自动:
# 1. 启动多个容器实例
# 2. Traefik 自动负载均衡
# 3. 健康检查和自动重启
一键部署模板
# Dokploy 提供预配置模板:
# 在项目中 → Add Template
# 可用模板包括:
# - Plausible(网站分析)
# - PocketBase(轻量后端)
# - Cal.com(日程预约)
# - Uptime Kuma(状态监控)
# - 更多...
# 选择模板 → 配置参数 → 一键部署
AI 日志分析(v0.29+)
# Dokploy 内置 AI 日志分析:
# 当应用部署失败或容器异常时:
# 1. 查看应用 → Logs
# 2. 点击 "AI Analysis" 按钮
# 3. AI 自动分析日志,给出错误原因和修复建议
CLI 工具
# 安装 Dokploy CLI
npm install -g @dokploy/cli # 全局安装
# 认证
dokploy auth login --token YOUR_API_KEY # 使用 API Key 登录
# 常用命令(449 个命令可用)
dokploy app list # 列出所有应用
dokploy app deploy APP_ID # 部署指定应用
dokploy db list # 列出所有数据库
dokploy server status # 查看服务器状态
常见报错
| 报错信息 | 原因 | 解决方案 |
|---|
Build failed: OOM | 内存不足导致构建失败 | 增加 Swap 或升级服务器配置 |
SSL error: DNS not resolved | 域名未指向服务器 | 检查 DNS A 记录是否正确 |
Container unhealthy | 容器健康检查失败 | 检查应用日志和端口配置 |
Webhook not triggering | Git Webhook 未配置 | 在 Git 仓库设置中检查 Webhook URL |
Permission denied | 安装需要 root 权限 | 使用 sudo 运行安装脚本 |
Port 3000 in use | 端口被其他服务占用 | 停止占用端口的服务或修改 Dokploy 端口 |
速查表
# === 安装与管理 ===
curl -sSL https://dokploy.com/install.sh | sh # 安装
# 面板地址:http://IP:3000
# 数据目录:/etc/dokploy/
# === 支持的构建方式 ===
# Nixpacks → 自动检测语言(Node.js/Python/Go/Rust/...)
# Dockerfile → 使用自定义 Dockerfile
# Buildpack → Heroku 兼容构建包
# Docker Compose → 多容器编排
# === 支持的 Git 平台 ===
# GitHub | GitLab | Gitea | Bitbucket
# === 支持的数据库 ===
# PostgreSQL | MySQL | MariaDB | MongoDB | Redis | LibSQL
# === 备份 ===
# 数据库自动备份到外部存储(S3 等)
# 在 Database → Backups → Configure
同类对比
| 特性 | Dokploy | Coolify | CapRover | Vercel |
|---|
| 开源 | MIT | MIT | Apache 2.0 | 闭源 |
| 价格 | 免费 | 免费 | 免费 | 免费起步 |
| 安装难度 | 一行命令 | 一行命令 | 一行命令 | N/A |
| 内存需求 | 1GB+ | 2GB+ | 1GB+ | N/A |
| 数据库管理 | 内置 | 内置 | 插件 | 不支持 |
| Docker Swarm | 原生支持 | 支持 | 内置 | N/A |
| AI 日志分析 | 内置 | 不支持 | 不支持 | 不支持 |
| GitHub Stars | 13k+ | 44k+ | 13k+ | N/A |
| 社区活跃度 | 高 | 非常高 | 中 | N/A |
选型建议:Dokploy 比 Coolify 更轻量(1GB 就能跑),AI 日志分析是亮点;Coolify 功能更全面、社区更大。两者都是免费的自托管 PaaS,根据服务器配置选择。