dify实战-源码安装

启动dify前的准备

安装Postgresql
  • 安装postgresql包
$ apt-get install postgresql
  • 修改配置文件
$ vim /etc/postgresql/16/main/postgresql.conf

把配置文件中的以下变量改成:

listen_addresses = '0.0.0.0'    
  • 修改配置文件
$ vim /etc/postgresql/16/main/pg_hba.conf

在该配置文件中添加一行:

# IPv4 local connections:
host    all             all             0.0.0.0/32            scram-sha-256
创建用户和权限

1.登录数据库

# 切换到用户postgres
$ sudo su - postgres

# 进入控制台
$ psql

2.创建用户和授权

create user difyadmin with password 'admin123';

CREATE DATABASE dify OWNER postgres;

3.为posgres用户设置密码

postgres=# \password postgres
difyai123456

4.创建dify数据库

CREATE DATABASE dify OWNER postgres;
GRANT ALL PRIVILEGES ON DATABASE dify TO postgres;

安装Redis

  • 安装
$ apt-get install redis-server
  • 配置
vim /etc/redis/redis.conf

修改配置文件中的一行:

#bind 127.0.0.1 -::1
bind * -::*

启动dify

启动后台服务和Worker
  1. 进入 api 目录

    Copy

    cd api
    
  2. 复制环境变量配置文件

    Copy

    cp .env.example .env
    
  3. 生成随机密钥,并替换 .envSECRET_KEY 的值

    Copy

    awk -v key="$(openssl rand -base64 42)" '/^SECRET_KEY=/ {sub(/=.*/, "=" key)} 1' .env > temp_env && mv temp_env .env
    
  4. 安装依赖包

    Dify API 服务使用 Poetry 来管理依赖。您可以执行 poetry shell 来激活环境。

    Copy

    poetry env use 3.11
    poetry install
    
  5. 执行数据库迁移

    将数据库结构迁移至最新版本。

    Copy

    poetry shell
    flask db upgrade
    
  6. 修改.env的配置

由于我的redis-server安装在本地,并且没有设置密码,所以这里需要修改一下.env的配置:

#CELERY_BROKER_URL=redis://:difyai123456@localhost:6379/1
CELERY_BROKER_URL=redis://localhost:6379/1

去掉用户名和密码。

  1. 启动 API 服务
flask run --host 0.0.0.0 --port=5001 --debug
  1. 启动 Worker 服务

用于消费异步队列任务,如数据集文件导入、更新数据集文档等异步操作。 Linux / MacOS 启动:

celery -A app.celery worker -P gevent -c 1 --loglevel INFO -Q dataset,generation,mail,ops_trace

安装前端页面

安装npm和nodejs

需要 Node.js v18.x (LTS) and NPM version 8.x.x or Yarn.

$ curl -fsSL https://deb.nodesource.com/setup_18.x -o nodesource_setup.sh
$ sudo -E bash nodesource_setup.sh
$ apt-get install nodejs -y
  • 安装npm依赖
$cd web
$npm install

这里要注意,可能会消耗比较多的时间,此时可以替换镜像的url。修改.npmrc等文件。

  • 配置环境变量文件
$ cp .env.example .env.local 
  • 编译和启动
$npm run build
$npm run start

参考资料

  • https://docs.dify.ai/getting-started/install-self-hosted/local-source-code

  • https://docs.dify.ai/getting-started/install-self-hosted/local-source-code

更多推荐