ubuntu22.04源码部署maxkb

源码下载

maxkb项目中拉取最新源码.

前端依赖

Nodejs

前端依赖下载需要使用较高版本的Nodejs,使用apt查看可下载的Node的版本信息

1
apt list -a nodejs

发现没有较新的22版本,运行下面的命令

1
2
3
4
5
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
# 安装完成后,检查 Node.js 和 npm 的版本
node -v
npm -v

下载源

安装好npm后,需要配置npm源,建议使用以下命令添加国内源

1
npm config set registry https://registry.npmmirror.com

安装依赖

使用以下命令安装前端所需依赖

1
2
cd ui   # 需要先切换至ui目录
npm install

后端依赖

python

python版本不能低于3.11,使用以下命令进行安装

1
2
3
4
sudo apt update  # 更新系统包列表
sudo apt install software-properties-common -y # ​安装依赖项
sudo add-apt-repository ppa:deadsnakes/ppa # 添加 Deadsnakes PPA
sudo apt install python3.11 # ​安装 Python 3.11

poetry

通过以下命令进行安装

1
pip install poetry==1.8.5

安装依赖

使用以下命令安装后端所需依赖(需要较长时间)

1
2
cd ..   # 需要先切换至项目根目录
poetry install

Postgresql(数据库)

安装Postgresql

1
2
3
4
5
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null # 启用它的官方包存储库
sudo apt update # 获取包的最新版本
sudo apt install postgresql postgresql-client postgresql-server-dev-17 -y # 安装服务端,客户端,开发套件
sudo systemctl status postgresql # 验证 PostgreSQL 服务是否启动并运行

更新密码

使用下面命令进入psql, 并更新管理员用户密码

1
2
sudo -u postgres psql
ALTER USER postgres PASSWORD '123123';

输入\q退出

安装插件

执行以下指令,安装vector插件

1
2
3
4
5
cd /tmp
git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git
cd pgvector
make
sudo make install

如果make命令报错,可能需要额外安装gcc和make工具:

1
apt install make gcc

创建数据库

使用psql -h localhost -U postgres输入密码并登录数据库,按行执行下面的sql

1
2
3
CREATE DATABASE "maxkb";
\c "maxkb";
CREATE EXTENSION "vector";

配置文件

将项目根目录下的config_example.yml配置文件拷贝至/opt/maxkb/conf目录下

1
2
sudo mkdir -p /opt/maxkb/conf
sudo cp config_example.yml /opt/maxkb/conf

修在/opt/maxkb/conf/config_example.yml内容如下(如果按照的是上面的步骤,则只需要修改 DB_USER: postgres和 DB_PASSWORD: 123123)

1
2
3
4
5
6
7
8
9
10
11
# 数据库链接信息
DB_NAME: maxkb
DB_HOST: localhost
DB_PORT: 5432
DB_USER: postgres
DB_PASSWORD: 123123
DB_ENGINE: django.db.backends.postgresql_psycopg2

DEBUG: false

TIME_ZONE: Asia/Shanghai

启动

启动后端

1
python3 main.py start
  • 如果抛出异常,可能是有些库没有安装。执行以下指令,安装缺少的库

    1
    pip install -r requirements.txt

启动前端

需要在ui目录下启动

1
2
cd ui
npm run dev

通过浏览器打开http://localhost:3000/ui/, 可以看到Maxkb的登录页面(第一次启动可能需要较长时间)

1
2
用户名:admin
密码:MaxKB@123..

解除限制

需要修改以下文件

user_serializers.py

修改文件: apps/users/serializers/user_serializers.py
修改位置: 注释掉valid_license修饰器。分别大概在188、775行左右
修改后:

application_serializers.py

修改文件: apps/application/serializers/application_serializers.py
修改位置: 注释掉valid_license修饰器。分别大概在513、720行左右
修改后:

dataset_serializers.py

修改文件: apps/dataset/serializers/dataset_serializers.py
修改位置: 注释掉valid_license修饰器。大概在412行左右
修改后:

valid_serializers.py

修改文件: apps/setting/serializers/valid_serializers.py
修改位置: 将count数量调整为999999, 注释掉valid的判断过程,直接返回True
修改后:

Ollama

安装

执行以下命令,安装ollama

1
curl -fsSL https://ollama.com/install.sh | sh

添加模型

浏览器打开MaxKB主界面

依次点击系统设置,模型设置添加模型

填写以下信息(API Key没有的话可以随便写)