Ubuntu本地源码部署Dify(超详细,附可能遇到的问题及解决方案)

Dify本地源码部署主要涉及两部分:后端api部署和前端web部署

一、后端api部署

1.从github克隆 Dify 源代码到本地:

git clone https://github.com/langgenius/dify.git

2.启动 docker-compose 堆栈,后端需要一些中间件,包括 PostgreSQL、Redis 和 Weaviate,可以使用 一起启动.

cd ../docker
cp middleware.env.example middleware.env
docker compose -f docker-compose.middleware.yaml --profile weaviate -p dify up -d

注:在此之前如果之前用过docker部署过其他容器,最好查看一下docker状态,将其关闭,避免后面dify中的容器端口与之前的端口冲突。

3.配置api环境

cd ../api
cp .env.example .env 
sed -i "/^SECRET_KEY=/c\SECRET_KEY=$(openssl rand -base64 42)" .env

4.由于Dify使用的是poetry来管理所有依赖,因此还需要提前安装好poetry,然后激活环境并安装依赖。(我这里之前安装过依赖了,所以显示无依赖安装更新)

poetry env use 3.12
poetry shell
poetry install

注:这里在执行poetry install时,你大概率会遇到的一个问题,是所有依赖一直处于pending状态,卡住很久也没有downloading。原因是keyring在尝试访问系统密钥服务时发生时延。

解决方案:禁用keyring,就可以继续下载了。

export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring

5.运行 migrate,在首次启动之前,请将数据库迁移到最新版本。

poetry run python -m flask db upgrade

6.启动后端(注意启动完,不要关闭,可以另开一个终端去配置前端web环境,文末解释原因)

poetry run python -m flask run --host 0.0.0.0 --port=5001 --debug

二、Dify前端部署

在启动web服务之前,需要提前准备好一些环境: Node.js v18.x (LTS)和 NPM 版本 8.x.x

1.安装依赖项:

npm install

注:但由于官方镜像资源下载不下来,因此需要使用国内镜像,国内我试了最好的镜像是淘宝源镜像。

npm install --registry=https://registry.npmmirror.com

2.然后,配置环境变量。在当前目录中创建一个名为 的文件,并从 中复制内容。根据您的要求修改这些环境变量的值:

cp .env.example .env.local

3.最后,运行开发服务器:

npm run dev

三、将配置好的源码部署到本地服务器上

1.首先,构建用于生产的应用程序:

npm run build

2.启动服务器,就完成了Dify本地源码的部署了:

npm run start

3.最后只需要在浏览器输入http://localhost:3000 即可访问本地部署的Dify:

注:在部署后端api的时候,启动完后端不要关掉(poetry run python -m flask run --host 0.0.0.0 --port=5001 --debug),可以再开一个终端来配置前端,否则,最后启动项源码会发现一直在加载窗口进不去:

### 关于在Linux上部署Dify项目源码 #### 准备工作 为了顺利部署Dify项目,在Linux环境下需提前完成一些准备工作。确保已安装必要的依赖项,如Python环境、Git工具以及Docker服务等[^1]。 #### 安装并配置WSL2(针对Windows用户) 对于来自Windows平台的开发者来说,通过安装WSL2来创建一个兼容的Linux开发环境是一个不错的选择。具体而言,选择Ubuntu作为发行版可以提供稳定的支持和服务。 #### 获取最新版本源码 访问[Dify官方GitHub仓库](https://github.com/dify-ai/dify),克隆最新的分支到本地机器上。这一步骤能够保证获取到最接近当前发布的功能特性集合[^2]。 ```bash git clone https://github.com/dify-ai/dify.git cd dify ``` #### 设置环境变量与配置文件调整 依据实际需求修改`.env`文件中的参数设置,特别是数据库连接字符串等相关信息。这部分操作可能涉及到敏感数据的安全处理,请谨慎对待[^3]。 #### 启动所需的服务组件 利用Docker Compose简化多个微服务的同时启动过程。编辑好对应的compose文件后执行如下命令即可一键拉起整个应用栈: ```yaml version: '3' services: postgresql: image: postgres:latest environment: POSTGRES_USER: user POSTGRES_PASSWORD: password POSTGRES_DB: dbname volumes: - ./data/postgresql:/var/lib/postgresql/data redis: image: redis:alpine command: ["redis-server", "--appendonly", "yes"] volumes: - ./data/redis:/data weaviate: image: semitechnologies/weaviate:latest ports: - "8080:8080" environment: AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: "true" ``` ```bash docker-compose up -d ``` 上述脚本定义了一个包含PostgreSQL、Redis和Weaviate三个主要组成部分的基础架构,并指定了它们之间的交互方式及端口映射关系。 #### 进行初次构建与测试验证 当所有前置条件都满足之后,就可以尝试编译应用程序并对基本功能做初步检验了。通常情况下,按照官方文档指示依次运行指定的任务就能顺利完成这一阶段的工作。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值