保姆级教程,国内国外服务器通用,附一键部署脚本!

很多朋友买了腾讯云轻量应用服务器后,发现预装的镜像是OpenClaw(一个AI Agent工具),想部署Dify却不知道怎么下手。今天这篇教程,就带你在OpenClaw镜像基础上手动部署Dify平台,并接入当下大火的DeepSeek云端模型,打造属于你自己的AI应用中心!

无论你的服务器在国内还是国外(比如东京地域),这套方法都适用。全程实操,照着做就能成功!
在这里插入图片描述

关注我,领取一月“plus”会员福利

前言:为什么要自己搭建AI平台?

市面上虽然有很多AI工具,但要么收费高,要么数据安全没保障,要么功能受限。自己部署Dify,你可以:

  • 完全掌控数据:所有对话记录、知识库文件都存放在你自己的服务器上。
  • 自由选择模型:支持DeepSeek、OpenAI、腾讯混元、智谱等多种模型,随时切换。
  • 成本极低:2核4G服务器一年只要一百多块钱,DeepSeek的API费用几乎可以忽略不计。
  • 功能强大:可视化工作流、知识库问答、API集成……满足各种需求。

接下来,我们就开始这场奇妙的AI部署之旅!

一、准备工作

1.1 服务器环境确认

在这里插入图片描述

项目 说明
服务器类型 腾讯云轻量应用服务器(2核4GB)
当前镜像 OpenClaw(基于Ubuntu)
操作系统 Ubuntu 24.04(或其他版本)
地域 东京(国外) / 国内均可

注意:即使你使用的是国内服务器,本文也会给出镜像加速等解决方案,不用担心网络问题。

1.2 连接服务器

使用SSH工具连接到服务器(推荐腾讯云自带的OrcaTerm,或本地终端):

ssh root@你的服务器IP

如果是第一次连接,会提示确认指纹,输入 yes 即可。

1.3 检查系统环境

# 查看系统版本
cat /etc/os-release

# 查看内存和磁盘
free -h
df -h

确保磁盘剩余空间大于20GB,内存至少2GB。

1.4 开放端口

在腾讯云控制台 → 防火墙规则中,确保以下端口开放:

端口 用途
22 SSH登录
80 Dify Web界面(或自定义端口)
443 HTTPS(如需配置SSL)

如果后续要用域名访问,记得提前解析域名。

二、安装Docker环境

Dify官方推荐使用Docker Compose部署,这是最稳定、最省事的方式。

2.1 更新系统并安装基础工具

apt update
apt install -y curl git wget vim

2.2 安装Docker

使用官方一键脚本安装(国内用户可能需要配置镜像源,我们后面会处理):

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

在这里插入图片描述
在这里插入图片描述

2.3 安装Docker Compose插件

apt install -y docker-compose-plugin

2.4 配置镜像加速(国内服务器必做!)

如果你是国内服务器,Docker拉取镜像会很慢,需要配置镜像加速器。

创建/编辑 /etc/docker/daemon.json

mkdir -p /etc/docker
cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn"
  ]
}
EOF

重启Docker:

systemctl daemon-reload
systemctl restart docker

国外服务器(如东京)可以跳过这一步,直接使用默认源即可。

2.5 验证安装

docker --version
docker compose version

看到版本号输出即成功。

在这里插入图片描述

三、部署Dify平台

3.1 下载Dify源代码

cd /opt
git clone https://github.com/langgenius/dify.git
cd dify/docker

如果git clone速度慢(国内服务器),可以使用代理或直接下载ZIP包。

在这里插入图片描述

备用方案(手动下载ZIP):

cd /opt
wget https://github.com/langgenius/dify/archive/refs/heads/main.zip
unzip main.zip
mv dify-main dify
cd dify/docker

3.2 配置环境变量

复制环境变量模板:

cp .env.example .env

关键配置(可选,一般保持默认即可):

  • 如需修改访问端口:编辑 docker-compose.yaml,找到 nginx 服务下的 ports,将 "80:80" 改为 "8080:80"(外部8080映射内部80)。
  • 如需自定义数据存储路径:修改 .env 中的 DIFY_DATA_DIR

3.3 启动Dify服务

docker compose up -d

首次启动会拉取镜像,可能需要几分钟(国内服务器可能稍慢,耐心等待)。

在这里插入图片描述

3.4 检查服务状态

docker compose ps

你应该看到类似这样的输出:

在这里插入图片描述

所有服务状态为 running 即正常。

3.5 查看日志(可选)

如果某些服务没起来,可以查看日志排查:

# 查看所有日志
docker compose logs

# 查看特定服务日志
docker compose logs api

常见问题:端口占用、磁盘空间不足、镜像拉取失败等。

四、初始化Dify

4.1 访问安装页面

在浏览器中输入:

http://你的服务器IP

如果你修改了端口,则为 http://你的服务器IP:8080

在这里插入图片描述

首次访问会跳转到管理员注册页面:

  • 填写邮箱(建议用真实邮箱)
  • 设置用户名
  • 设置密码

这个密码是Dify的管理员密码,请务必牢记。

4.2 登录系统

注册成功后,使用邮箱和密码登录,进入Dify主界面。

在这里插入图片描述

现在,Dify已经成功运行了!你可以先随便聊几句,体验一下内置的模型(如果有的话)。接下来我们接入DeepSeek模型。

五、接入DeepSeek云端模型

DeepSeek是目前性价比最高的模型之一,128K上下文,价格极低,非常适合个人开发者。

5.1 获取DeepSeek API Key

  1. 访问 DeepSeek开放平台(需注册)。
  2. 登录后进入「API Keys」页面,点击「创建API Key」。
  3. 复制生成的Key,保存好。

注意:DeepSeek新用户通常有免费额度,足够测试使用。

在这里插入图片描述

5.2 在Dify中添加模型

  1. 登录Dify,点击右上角头像 →「设置」。
  2. 左侧菜单选择「模型供应商」。
  3. 点击「添加模型」或「自定义模型」。
  4. 填写信息:
字段
模型类型 LLM
模型名称 deepseek-chat(或deepseek-reasoner等)
模型供应商 选择「OpenAI-API-compatible」
API端点 https://api.deepseek.com/v1
API Key 粘贴你的DeepSeek API Key
模型支持的功能 勾选「对话」即可

在这里插入图片描述

  1. 点击「保存」完成配置。

如果希望使用DeepSeek-R1推理模型,模型名称填 deepseek-reasoner

5.3 测试模型

回到「工作室」,创建一个聊天助手应用,在模型选择下拉框中应该能看到刚添加的DeepSeek模型。选中后开始对话,看看是否正常响应。

如果返回错误,检查API Key和端点是否正确,以及服务器能否访问DeepSeek的API(国内服务器可能需要设置代理)。

在这里插入图片描述

六、优化建议:让Dify跑得更稳更快

6.1 资源限制

Dify默认各容器无资源限制,可能会占用过多内存。建议在 docker-compose.yaml 中添加限制:

services:
  api:
    image: langgenius/dify-api:1.7.2
    restart: always
    mem_limit: 1G          # 限制最大内存 1GB
    memswap_limit: 1G      # 限制内存+交换分区总和,与 mem_limit 相同则禁用 swap
    ...
  worker:
    image: langgenius/dify-api:1.7.2
    restart: always
    mem_limit: 1G
    memswap_limit: 1G
    ...
  web:
    image: langgenius/dify-web:1.7.2
    restart: always
    mem_limit: 512M        # Web 服务可以给少一些
    memswap_limit: 512M
    ...

修改后重启服务:

docker compose down && docker compose up -d

验证内存限制是否生效:

docker stats --no-stream

在这里插入图片描述

6.2 启用Redis缓存

默认已经启用了Redis,可以大幅提升会话读取速度。检查Redis容器是否正常运行:

docker compose ps redis

6.3 配置HTTPS(推荐)

为Dify配置SSL证书,通过Nginx反向代理实现HTTPS访问,提高安全性。有两种方式:一是修改Dify自带的Nginx容器配置,二是在宿主机上单独部署Nginx做反向代理。我们采用第二种方式,更灵活且不影响Dify升级。

6.3.1 安装Nginx
apt install -y nginx
6.3.2 获取SSL证书

可以使用Let’s Encrypt免费证书(推荐),或腾讯云免费证书。

方法一:Let’s Encrypt(需要域名已解析)

# 安装certbot
apt install -y certbot python3-certbot-nginx

# 自动获取证书并配置Nginx(需域名已解析到服务器IP)
certbot --nginx -d your-domain.com

方法二:腾讯云免费证书

  1. 登录腾讯云控制台 → SSL证书 → 申请免费证书。
  2. 下载证书(Nginx格式),将证书文件上传到服务器,比如放在 /etc/nginx/ssl/ 目录。
6.3.3 配置Nginx反向代理

创建Nginx配置文件 /etc/nginx/sites-available/dify

server {
    listen 80;
    server_name your-domain.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name your-domain.com;

    ssl_certificate /etc/nginx/ssl/your-domain.com.crt;
    ssl_certificate_key /etc/nginx/ssl/your-domain.com.key;

    # 安全增强配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    # 日志
    access_log /var/log/nginx/dify-access.log;
    error_log /var/log/nginx/dify-error.log;

    # 反向代理到Dify容器(Dify运行在80端口)
    location / {
        proxy_pass http://127.0.0.1:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket支持(Dify可能需要)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    # 限制上传大小(Dify上传文件可能较大)
    client_max_body_size 100M;
}

启用站点并测试:

ln -s /etc/nginx/sites-available/dify /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx

注意:Dify本身运行在80端口,Nginx监听443并将请求转发到80。如果Dify修改过端口,请相应调整proxy_pass地址。

6.3.4 调整防火墙

开放443端口,并确保80端口仍开放(用于重定向)。

6.4 定期备份

数据是核心资产,必须定期备份。Dify的数据包括:

  • PostgreSQL数据库:存储用户、应用、对话等结构化数据。
  • Weaviate向量数据库:存储知识库的向量索引(默认使用Weaviate)。
  • 上传文件:用户上传到知识库的原始文件(存储在 volumes/storage 目录)。

以下脚本将备份这些数据,并上传到腾讯云COS(可选)。创建备份脚本 /root/backup_dify.sh

#!/bin/bash
# Dify 备份脚本
# 使用方法:chmod +x /root/backup_dify.sh && /root/backup_dify.sh

BACKUP_DIR="/root/dify_backups"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_NAME="dify_backup_$DATE"
BACKUP_PATH="$BACKUP_DIR/$BACKUP_NAME"

mkdir -p "$BACKUP_PATH"

cd /opt/dify/docker

# 1. 备份数据库(PostgreSQL)
echo "正在备份PostgreSQL..."
docker compose exec -T db pg_dump -U postgres dify > "$BACKUP_PATH/dify_db.sql"

# 2. 备份向量数据库(Weaviate)的数据目录
echo "正在备份Weaviate数据..."
cp -r volumes/weaviate "$BACKUP_PATH/weaviate_data"

# 3. 备份上传文件
echo "正在备份上传文件..."
cp -r volumes/storage "$BACKUP_PATH/storage"

# 4. 压缩打包
cd "$BACKUP_DIR"
tar -czf "$BACKUP_NAME.tar.gz" "$BACKUP_NAME"
rm -rf "$BACKUP_PATH"

# 5. 保留最近7天的备份,删除更早的
find "$BACKUP_DIR" -name "*.tar.gz" -mtime +7 -delete

# 6. 可选:上传到腾讯云COS(需安装coscli)
# /usr/local/bin/coscli cp "$BACKUP_DIR/$BACKUP_NAME.tar.gz" cos://bucket-name/dify_backups/

echo "备份完成:$BACKUP_DIR/$BACKUP_NAME.tar.gz"

赋予执行权限并测试:

chmod +x /root/backup_dify.sh
/root/backup_dify.sh

设置定时任务(每天凌晨2点执行):

crontab -e
# 添加以下行
0 2 * * * /root/backup_dify.sh >> /var/log/dify_backup.log 2>&1

如果使用了腾讯云COS,可以安装coscli工具,并将备份文件自动上传到对象存储,实现异地容灾。

6.5 监控与告警

如果担心服务挂掉,可以配置Docker的自动重启策略,并利用腾讯云监控。

自动重启:在 docker-compose.yaml 中为服务添加 restart: always,例如:

services:
  api:
    restart: always
  worker:
    restart: always

腾讯云监控:在腾讯云控制台为服务器配置「云监控」,设置CPU、内存、磁盘使用率告警。

简单健康检查脚本:可以写一个脚本检查Dify服务是否正常,异常时自动重启或发送通知。

#!/bin/bash
# 健康检查脚本
if ! curl -s -f http://localhost/health > /dev/null; then
    echo "Dify服务异常,尝试重启..."
    cd /opt/dify/docker && docker compose restart
fi

加入cron,每5分钟执行一次。

七、使用场景推荐

1. 企业内部知识库问答

上传公司制度、产品手册、培训资料,员工随时提问,AI基于内部文档回答。

2. 个人学习助手

上传学习笔记、教材PDF,让AI帮你总结、答疑、出题。

3. 智能客服

将Dify嵌入网站,7x24小时自动回复用户问题,降低人工成本。

4. 内容创作辅助

训练AI写文章、做方案、生成创意文案,提高创作效率。

5. 代码辅助

上传代码库文档,让DeepSeek帮你写代码、调试、解释代码逻辑。

八、常见问题与解决方案

Q1:访问Dify页面显示502 Bad Gateway?

A:服务还没完全启动,等待1-2分钟刷新重试。如果长时间不行,检查nginx容器是否正常运行:docker compose logs nginx

Q2:Docker拉取镜像超时(国内服务器)?

A:确认已经配置镜像加速器(见2.4节)。如果仍然失败,可以尝试手动拉取:docker pull langgenius/dify-api:latest

Q3:DeepSeek API调用失败,提示401?

A:API Key错误或已过期,重新生成一个试试。

Q4:国内服务器无法访问DeepSeek API?

A:DeepSeek的API目前国内可直接访问(无需代理),但如果你的服务器在某些特殊网络环境下,可能需要配置HTTP代理。可以通过环境变量设置代理,或使用境外服务器部署。

Q5:如何更新Dify到最新版?

A:进入 /opt/dify/docker 目录,执行 git pull,然后 docker compose down && docker compose up -d

Q6:OpenClaw和Dify会冲突吗?

A:不会,它们运行在不同端口(OpenClaw通常监听某个端口,Dify默认80),只要不占用同一端口即可。

Q7:配置HTTPS后,Dify内部API调用失败?

A:需要在Dify的环境变量中配置正确的URL。编辑 .env,设置 APP_URL=https://your-domain.com,然后重启服务。

Q8:备份脚本执行时提示“docker compose: command not found”?

A:脚本中使用了 docker compose,确保系统已安装Docker Compose插件。或者将 docker compose 替换为 docker-compose(旧版命令)。

九、一键部署脚本(完整版)

为了方便大家,我编写了一个一键部署脚本,支持国内/国外服务器,自动安装Docker、配置镜像加速、部署Dify。只需一行命令即可完成所有操作!

使用方法

curl -sSL https://your-server.com/dify-deploy.sh | bash

如果你希望直接复制代码,可以保存为 deploy_dify.sh 并执行:

chmod +x deploy_dify.sh
./deploy_dify.sh

下面是脚本完整内容:

#!/bin/bash
# Dify + DeepSeek 一键部署脚本
# 适用于 Ubuntu 22.04/20.04,自动处理国内镜像加速

set -e

echo "========================================="
echo "   Dify + DeepSeek 一键部署脚本"
echo "   适用于腾讯云2核4G服务器"
echo "========================================="

# 检测是否国内服务器(根据DNS或ping)
echo "正在检测网络环境..."
if ping -c 1 -W 2 baidu.com >/dev/null 2>&1; then
    IS_CN=true
    echo "检测到国内网络,将配置镜像加速..."
else
    IS_CN=false
    echo "检测到境外网络,使用默认源..."
fi

# 1. 更新系统并安装基础工具
echo "步骤1:更新系统..."
apt update && apt upgrade -y
apt install -y curl git wget vim

# 2. 安装 Docker
echo "步骤2:安装 Docker..."
if ! command -v docker &> /dev/null; then
    curl -fsSL https://get.docker.com -o get-docker.sh
    sh get-docker.sh
fi

# 3. 安装 Docker Compose 插件
echo "步骤3:安装 Docker Compose..."
apt install -y docker-compose-plugin

# 4. 配置国内镜像加速(如果国内)
if [ "$IS_CN" = true ]; then
    echo "步骤4:配置 Docker 镜像加速..."
    mkdir -p /etc/docker
    cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn"
  ]
}
EOF
    systemctl daemon-reload
    systemctl restart docker
fi

# 5. 克隆 Dify 仓库
echo "步骤5:下载 Dify 源码..."
cd /opt
if [ -d "dify" ]; then
    echo "Dify 目录已存在,更新代码..."
    cd dify
    git pull
else
    git clone https://github.com/langgenius/dify.git
    cd dify
fi

# 6. 配置环境变量
echo "步骤6:配置环境变量..."
cd docker
cp .env.example .env

# 可选:修改端口(如果想改,取消下面注释)
# sed -i 's/80:80/8080:80/g' docker-compose.yaml

# 7. 启动服务
echo "步骤7:启动 Dify 服务..."
docker compose up -d

# 8. 等待服务启动
echo "步骤8:等待服务启动(约30秒)..."
sleep 30

# 9. 获取IP地址
IP=$(curl -s ifconfig.me)

# 10. 输出访问信息
echo "========================================="
echo "部署完成!"
echo "访问地址:http://$IP"
if grep -q "8080:80" docker-compose.yaml; then
    echo "(如修改过端口,请使用 http://$IP:8080)"
fi
echo ""
echo "下一步:"
echo "1. 在浏览器中打开上述地址,完成管理员注册"
echo "2. 登录后进入「设置」-「模型供应商」,添加 DeepSeek 模型"
echo "3. DeepSeek API 端点:https://api.deepseek.com/v1"
echo "4. 模型名称:deepseek-chat 或 deepseek-reasoner"
echo ""
echo "脚本执行完毕!"
echo "========================================="

脚本说明

  • 自动检测国内/境外网络,国内自动配置镜像加速。
  • 安装Docker、Docker Compose,拉取Dify源码并启动。
  • 最后输出访问地址和后续操作指南。

如果git clone失败,可以手动替换为国内镜像源,如 https://gitee.com/langgenius/dify.git

十、结语

至此,你已经成功在腾讯云2核4G服务器上部署了Dify,并接入了DeepSeek模型。现在,你可以尽情探索Dify的各种功能,构建属于自己的AI应用。

无论是打造个人知识库,还是搭建企业智能客服,这套方案都能轻松应对。而且成本极低,一年服务器费用不到200元,加上DeepSeek的API费用,每天几毛钱就能享受强大的AI能力。

如果在部署过程中遇到任何问题,欢迎在评论区留言,我会尽力解答。也欢迎分享你使用Dify搭建的有趣应用!

关注我,获取更多AI实战教程!

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐