的保姆级安装教程,本地可用了,如果服务搭建好了之后想放到线上用怎么办,来了,今天苏米又来填坑了!
之前有一台服务器我把1Panel 装上了,而且分享了,那么今天继续来把Dify也部署到线上,可以直接通过域名随时随地访问执行工作流和任务岂不快哉~
安装过程我也看参考了一些其他网友分享,但都不够详细和全面,本次教程过程会相对详细完整一些,因为不仅仅是部署还需要配置域名访问。
什么是1Panel
1Panel是一款开源免费的现代化 Linux 服务器运维管理面板,类似宝塔面板。
1Panel 目前官方应用商店是没有上架Dify的,不像n8n可以一键安装所以配置的信息较多,不过手动安装也很方便。
Dify安装教程
一、下载Dify
Dify GitHub 地址:https://github.com/langgenius/dify(下载地址已经打包在网盘)
二、更改配置文件
解压出来后进入docker
目录

将docker/.env.example
复制一份,并改名为1panel.env

接下来需要改一些配置(重要):
必须修改的值
需要部署到线上用于域名访问,因为http的80端口和https的443端口,是要提供给网站服务使用的,所以就不能直接默认端口,需要修改掉
打开1panel.env
文件
# HTTP port
NGINX_PORT=80 #修改http端口
# SSL settings are only applied when HTTPS_ENABLED is true
NGINX_SSL_PORT=443 #修改https端口
有两处需要修改
# ------------------------------
# Docker Compose Service Expose Host Port Configurations
# ------------------------------
EXPOSE_NGINX_PORT=80 #修改http端口
EXPOSE_NGINX_SSL_PORT=443 #修改https端口

打开docker-compose.yaml
文件
environment:
NGINX_SERVER_NAME: ${NGINX_SERVER_NAME:-_}
NGINX_HTTPS_ENABLED: ${NGINX_HTTPS_ENABLED:-false}
NGINX_SSL_PORT: ${NGINX_SSL_PORT:-443} #80需要修改
NGINX_PORT: ${NGINX_PORT:-80} #443需要修改
另一处
ports:
- '${EXPOSE_NGINX_PORT:-80}:${NGINX_PORT:-80}' #80需要修改
- '${EXPOSE_NGINX_SSL_PORT:-443}:${NGINX_SSL_PORT:-443}' #443需要修改

建议修改的值
打开1panel.env
文件
SECRET_KEY
# A secret key that is used for securely signing the session cookie
# and encrypting sensitive information on the database.
# You can generate a strong key using `openssl rand -base64 42`.
SECRET_KEY=sk-9f73s3ljTXVcMT3Blb3ljTqtsKiGHXVcMT3BlbkFJLK7U # 修改此值
DB Password
DB_USERNAME,DB_PORT可以考虑不修改
# ------------------------------
# Database Configuration
# The database uses PostgreSQL. Please use the public schema.
# It is consistent with the configuration in the 'db' service below.
# ------------------------------
DB_USERNAME=postgres
DB_PASSWORD=difyai123456 # 修改此值
DB_HOST=db
DB_PORT=5432
DB_DATABASE=dify
Redis Password
如果使用的是Sentinel模式或集群,请对应的配置
# ------------------------------
# Redis Configuration
# This Redis configuration is used for caching and for pub/sub during conversation.
# ------------------------------
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_USERNAME=
REDIS_PASSWORD=difyai123456 # 修改此值
REDIS_USE_SSL=false
REDIS_DB=0
注意:这个修改后对应的环境变量CELERY_BROKER_URL
也需要修改
# Use redis as the broker, and redis db 1 for celery broker.
# Format as follows: `redis://:@:/`
# Example: redis://:difyai123456@redis:6379/1
# If use Redis Sentinel, format as follows: `sentinel://:@:/`
# Example: sentinel://localhost:26379/1;sentinel://localhost:26380/1;sentinel://localhost:26381/1
CELERY_BROKER_URL=redis://:difyai123456@redis:6379/1 # 修改此值
BROKER_USE_SSL=false
Waviate API Key
dify默认使用的是Waviate作为向量数据库
# The type of vector store to use.
# Supported values are `weaviate`, `qdrant`, `milvus`, `myscale`, `relyt`, `pgvector`, `pgvecto-rs`, `chroma`, `opensearch`, `tidb_vector`, `oracle`, `tencent`, `elasticsearch`, `elasticsearch-ja`, `analyticdb`, `couchbase`, `vikingdb`, `oceanbase`, `opengauss`, `tablestore`.
VECTOR_STORE=weaviate
# The Weaviate endpoint URL. Only available when VECTOR_STORE is `weaviate`.
WEAVIATE_ENDPOINT=http://weaviate:8080
WEAVIATE_API_KEY=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih # 修改此值
注意:这个修改后对应的服务的环境变量WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS
也需要修改
# ------------------------------
# Environment Variables for weaviate Service
# (only used when VECTOR_STORE is weaviate)
# ------------------------------
...
WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih # 修改此值
WEAVIATE_AUTHENTICATION_APIKEY_USERS=hello@dify.ai
WEAVIATE_AUTHORIZATION_ADMINLIST_ENABLED=true
WEAVIATE_AUTHORIZATION_ADMINLIST_USERS=hello@dify.ai
具体环境变量说明请参考dify官方说明:
三、安装部署Dify
创建持久化文件夹
进入1Panel「控制台」->「系统」->「文件」创建一个文件夹用于本地持久化存储,可以直接在opt下面创建:/opt/dify

上传刚才修改配置的docker
文件夹到上面创建的文件夹,可以先打包成压缩包上传

上传成功后再解压缩出来

创建容器编排
在1Panel「控制台」->「容器」->「编排」点击「创建编排」

来源选择填写路径选择,并填写上传文件夹docker-composer.yaml
对应文件地址,如:/opt/dify/docker/docker-compose.yaml
,环境变量可以为空

点击确认,等待docker镜像启动完成,显示创建编排 成功

到1Panel「控制台」->「容器」查看容器状态,全都运行中说明正常启动了~

如果你的服务器没有端口限制,这个时候用IP:端口应该是正常访问的

四、设置域名访问
接下来就是配置1Panel的反向代理域名访问了,进入1Panel「网站」,如果提示没有安装OpenResty
,那就要先去安装

安装很简单,直接点「安装」->「确认」就自动安装了,如果提示端口问题,那就是你的Dify没有修改端口导至占用了,需要回到前面去改过来!

安装过程基本上就是全自动的,等待安装完成!

创建反向代理网站:点「创建网站」->选「反向代理」填写域名,代理地址填127.0.0.1:端口
,端口就是刚才测试的那个端口。

网站正常启动就可以访问了

访问http://你的域名/页面 设置管理员账号&密码

访问http://你的域名/,开始你的AI应用之旅吧!
常见问题
1、检查docker镜像是否都启动成功了
2、修改的端口尽量避免与现有服务出现冲突
总结
整个过程走下来,我的感觉是:一点也不难!
服务器访问体验确实不一样,不过重点还是得看你的服务器配置,后续的玩法尽请关注「苏米客」公众号,如果你和我一样想在服务器上体验 Dify,希望这篇文章能帮你少踩一些坑。
我把所有安装包都打包放在网盘了,如果你使用官网下载不方便,可以直接使用我打包好的