dify本地源码部署



官方文档 本地源码启动 | Dify 一、下载源码 仓库地址:https://github.com/langgenius/dify.git 二、安装所需组件 需要docker环境部署所需组件,分别是 redis postgres weaviate(向量数据库) #注意除了映射地址之外尽量不要改动,账号密码在项目中已有默认配置,改动的话要做相应的改动 docker run -d –name redis –restart=always -v /data/redis/data:/data -p 6379:6379 redis:6-alpine redis-server –requirepass difyai123456 docker run -it –name postgres –restart always -e POSTGRES_PASSWORD=‘difyai123456’ -e POSTGRES_DB=‘dify’ -e PGDATA=’/var/lib/postgresql/data/pgdata’ -v /data/db/data:/var/lib/postgresql/data -p 5432:5432 -d postgres:15-alpine docker run -it –name weaviate –restart=always -v /data/weaviate:/var/lib/weaviate -e QUERY_DEFAULTS_LIMIT=25 -e AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=‘false’ -e PERSISTENCE_DATA_PATH=’/var/lib/weaviate’ -e DEFAULT_VECTORIZER_MODULE=‘none’ -e CLUSTER_HOSTNAME=‘node1’ -e AUTHENTICATION_APIKEY_ENABLED=‘true’ -e AUTHENTICATION_APIKEY_ALLOWED_KEYS=‘WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih’ -e AUTHENTICATION_APIKEY_USERS='hello@dify.ai ’ -e AUTHORIZATION_ADMINLIST_ENABLED=‘true’ -e AUTHORIZATION_ADMINLIST_USERS='hello@dify.ai ’ -p 8080:8080 -d semitechnologies/weaviate:1.19.0 三、配置后端环境 1、进入到项目目录的api下 cd api 2、复制环境变量配置文件 cp .env.example .env 3、生成随机密钥,并替换 .env 中 SECRET_KEY 的值 openssl rand -base64 42 sed -i ’s/SECRET_KEY=.*/SECRET_KEY=<your_value>/’ .env 4、使用conda 创建新的环境 conda create -n dify310 python=3.10

conda activate dify310 5、安装pytorch 参考pytorch的安装 6、安装依赖 Dify API 服务使用 Poetry 来管理依赖。您可以执行 poetry shell 来激活环境。 可以先安装 npm install poetry poetry env use 3.10 poetry install 7、执行数据库迁移 poetry shell flask db upgrade 四、配置前端环境 1、进入 web 目录 cd web 2、安装依赖包 npm install 3、配置环境变量。在当前目录下创建文件 .env.local,并复制.env.example中的内容。根据需求修改这些环境变量的值:

For production release, change this to PRODUCTION

NEXT_PUBLIC_DEPLOY_ENV=DEVELOPMENT

The deployment edition, SELF_HOSTED

NEXT_PUBLIC_EDITION=SELF_HOSTED

The base URL of console application, refers to the Console base URL of WEB service

if console domain is

different from api or web app domain.

example: http://cloud.dify.ai/console/api

NEXT_PUBLIC_API_PREFIX=http://localhost:5001/console/api

The URL for Web APP, refers to the Web App base URL of WEB service if web app

domain is different from

console or api domain.

example: http://udify.app/api

NEXT_PUBLIC_PUBLIC_API_PREFIX=http://localhost:5001/api

SENTRY

NEXT_PUBLIC_SENTRY_DSN=

NEXT_PUBLIC_SENTRY_ORG= NEXT_PUBLIC_SENTRY_PROJECT= 4、构建代码 npm run build 五、启动项目 1、启动 API 服务 flask run –host 0.0.0.0 –port=5001 –debug 2、启动 Worker 服务 用于消费异步队列任务,如数据集文件导入、更新数据集文档等异步操作。 Linux / MacOS 启动: celery -A app.celery worker -P gevent -c 1 -Q dataset,generation,mail,ops_trace – loglevel INFO 如果使用 Windows 系统启动,请替换为该命令: celery -A app.celery worker -P solo –without-gossip –without-mingle -Q dataset,generation,mail,ops_trace –loglevel INFO 3、启动 web 服务(前端启动可能会报cp不是内部命令错误,请使用git bash启动) npm run start

or

yarn start

or

pnpm start 六、访问 Dify 最后,访问http://127.0.0.1:3000即可使用本地部署的 Dify。 参考文档 从零开始之Dify源码部署篇_dify开源-CSDN博客