Dify 部署到 Linux 服务器完整指南
环境要求
- Linux 服务器(最低 2核 4GB RAM,推荐 4核 8GB)
- 已安装 Docker 和 Docker Compose
- 开放目标端口(本文使用 8180)
一、安装 Docker(已安装可跳过)
curl -fsSL https://get.docker.com | bash
# 验证安装
docker --version
docker compose version
二、查看服务器信息
获取服务器 IP
hostname -I | awk '{print $1}'
查看端口占用,选择空闲端口
ss -tlnp
或快速批量检查候选端口:
for port in 8080 8180 9000 9080; do
ss -tlnp | grep -q ":$port " && echo "$port 已占用" || echo "$port 空闲"
done
三、克隆项目
git clone https://github.com/langgenius/dify.git /opt/dify cd /opt/dify/docker
也可以用gitee:
git clone https://gitee.com/dify_ai/dify.git/opt/dify
四、创建配置文件
cp .env.example .env
五、写入配置
将下方 10.4.1.180 替换为你的实际服务器 IP,整块复制执行:
SERVER_IP="10.4.1.180"
sed -i "s|^EXPOSE_NGINX_PORT=.*|EXPOSE_NGINX_PORT=8180|" .env
sed -i "s|^EXPOSE_NGINX_SSL_PORT=.*|EXPOSE_NGINX_SSL_PORT=8443|" .env
sed -i "s|^CONSOLE_API_URL=.*|CONSOLE_API_URL=http://${SERVER_IP}:8180|" .env
sed -i "s|^CONSOLE_WEB_URL=.*|CONSOLE_WEB_URL=http://${SERVER_IP}:8180|" .env
sed -i "s|^SERVICE_API_URL=.*|SERVICE_API_URL=http://${SERVER_IP}:8180|" .env
sed -i "s|^APP_API_URL=.*|APP_API_URL=http://${SERVER_IP}:8180|" .env
sed -i "s|^APP_WEB_URL=.*|APP_WEB_URL=http://${SERVER_IP}:8180|" .env
sed -i "s|^TRIGGER_URL=.*|TRIGGER_URL=http://${SERVER_IP}:8180|" .env
sed -i "s|^ENDPOINT_URL_TEMPLATE=.*|ENDPOINT_URL_TEMPLATE=http://${SERVER_IP}:8180/e/{hook_id}|" .env
sed -i "s|^NEXT_PUBLIC_SOCKET_URL=.*|NEXT_PUBLIC_SOCKET_URL=ws://${SERVER_IP}:8180|" .env
六、验证配置
grep -E "EXPOSE_NGINX|CONSOLE_API_URL|APP_WEB_URL|NEXT_PUBLIC_SOCKET_URL" .env
预期输出:
EXPOSE_NGINX_PORT=8180
EXPOSE_NGINX_SSL_PORT=8443
CONSOLE_API_URL=http://10.4.1.180:8180
CONSOLE_WEB_URL=http://10.4.1.180:8180
APP_WEB_URL=http://10.4.1.180:8180
NEXT_PUBLIC_SOCKET_URL=ws://10.4.1.180:8180
七、启动服务
docker compose up -d
八、查看运行状态
docker compose ps
等待约 1-2 分钟,所有容器状态应为 Up 或 healthy。
九、访问
浏览器打开:
http://your-server-ip:8180
首次访问会引导创建管理员账号。
常用运维命令
# 停止服务
docker compose down
# 重启服务
docker compose restart
# 查看所有容器状态
docker compose ps
# 查看指定服务日志
docker compose logs -f api
# 更新到最新版本
git pull
docker compose pull
docker compose up -d
常见问题
容器启动失败
docker compose logs -f api
端口被占用
ss -tlnp | grep 8180
换一个空闲端口,重新执行第五步后重启。
数据备份
所有持久化数据存储在 /opt/dify/docker/volumes/ 目录,定期备份此目录即可。
tar -czf dify-backup-$(date +%Y%m%d).tar.gz /opt/dify/docker/volumes/
浙公网安备 33010602011771号