跳转至

580_Dokploy应用部署

一句话概述:Dokploy 是免费开源的 Docker 应用部署平台,基于 Docker + Traefik,一键安装即可可视化部署应用、管理数据库、自动 SSL,是 Heroku/Vercel 的轻量替代品。

核心知识点表

概念白话解释
Dokploy一个帮你把代码变成可访问网站的工具,不用手动配 Nginx/Docker
TraefikDokploy 内置的反向代理,自动处理域名路由和 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 triggeringGit 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

同类对比

特性DokployCoolifyCapRoverVercel
开源MITMITApache 2.0闭源
价格免费免费免费免费起步
安装难度一行命令一行命令一行命令N/A
内存需求1GB+2GB+1GB+N/A
数据库管理内置内置插件不支持
Docker Swarm原生支持支持内置N/A
AI 日志分析内置不支持不支持不支持
GitHub Stars13k+44k+13k+N/A
社区活跃度非常高N/A

选型建议:Dokploy 比 Coolify 更轻量(1GB 就能跑),AI 日志分析是亮点;Coolify 功能更全面、社区更大。两者都是免费的自托管 PaaS,根据服务器配置选择。