admin 发表于 2025-6-2 00:29:42

文档树 99AI部署文档 99AI部署文档

安装前的环境


本文档以​宝塔面板9.6.0​为基础进行部署安装,其他版本仅供参考,进入到宝塔面板中,我们会有一个初始化的推荐,根据你想安装的方式来进行安装,所有的系统环境都是一样的。


​​


本地版本看一下:


如果你是选择的本地安装方式,在安装的过程中,来到软件商店,可以安装一下​Node.js版本管理器​和​Redis​


​​


会弹出一个页面,选择最新的版本去安装即可,​Reids​同理


然后安装完成,点击​设置​,进入到管理页面,首次进入一定要更新列表


​​


选择一个稳定版本安装即可,推荐20版本以上,点击安装即可


​​


有可能会出现这个问题,文件安装失败,这个是因为镜像中的链接下载之后,和宝塔检测的域名不一致,我们跳转到​/www/server/nodejs/​这个目录下面


​​


将文件夹名称改为​v版本号​,这里版本号自己记住,后面要用


​​


​​


再回到版本管理器中,就可以看到安装成功了


​​


然后点击​模块​,安装需要的模块,输入名称点击安装即可,安装完成如下所示


​​


​​


后面我们来到​/etc​目录下, 找到​profile​文件, 滑到最下面,添加上下面的代码


JS
export NODE_HOME=/www/server/nodejs/v版本号export PATH=$PATH:$NODE_HOME/bin


​​


保存之后打开终端, 刷新环境变量,这里你可以使用宝塔面板中的终端功能来进行操作


​​


刷新后,可以在命令行中输入​pnpm​进行测试是否配置正确, 如果出现了下面一长串内容, 则说明正确


​​


然后我们来配置本地的Mysql数据库


​​


这里的信息自己输入,记住账号密码,记不住也不要紧,能复制粘贴


​​




部署安装


本地安装


在上述环境安装好之后,我们则直接进入部署环节,首先我们先到​https://github.com/AIWeb-Team/AIWeb​中下载部署包


上传到服务器上, 然后进行解压


​​


这里也可以使用git命令进行拉取


BASH
git clone https://github.com/AIWeb-Team/AIWeb.git


这里会要求你输入​GitHub​的账号(你)和校验码


​​


​​




这里注意,使用​git clone​下来的仓库没有​-main​的后缀,因为面向的是小白,我们以上传的安装包文件夹为例


​​


打开​AIWeb-main​文件夹, 目录结构如下所示


​​


我们来配置一些环境变量信息,首先将​.env.example​进行重命名为​.env​


​​


打开之后如下所示,将信息进行修改


​​


修改之后,点击终端


​​


输入下面命令, 用于安装依赖


BASH
pnpm i


安装完成如下所示, 使用宝塔终端同理


​​


确定​.env​中配置无误后, 运行命令启动


BASH
pnpm start


​​


在通过下面的命令查看一下日志信息, 获取机器码


BASH
pm2 log


​​


打开网页授权查询,通过机器码进行授权


​​


输入机器码和期限, 点击确认生成,会出现下面的内容


​​


回到​.env​文件中, 将​LICENSE_KEY​进行输入


​​


系统会自动重启, 然后即可访问


​​





一些非必要操作


有的时候未来方便重启服务器后, 项目能够重新启动, 我比较喜欢设置到宝塔的管理中


首先删除启动的项目, 我们在终端中输入


BASH
pm2 del 0 # 这个是说, 删除pm2中编号为0的项目


打开网站的选项卡, 进入到Node项目中


​​


添加Node项目, 因为这里之前安装过了, 所以勾选不安装


​​


展开更多, 填入端口9520,这里也可以绑定域名


​​


然后状态会不显示,我们使用PM2监控来查看


​​


​​


​​




然后访问​IP:9520​即可访问到我们的99AI


​​


Docker安装


我们在安装了宝塔的Docker后, 首先先进入到​设置​中, 将加速URL进行设置上, 不然后续会很容易出错


如果配置加速时候报错, 则进入到​/etc/docker/daemon.json​, 将​json​中添加以下内容


JSON
{"registry-mirrors": [    "https://registry.docker-cn.com"],"log-opts": {    "max-size": "100m",    "max-file": "5"}}


再回到设置, 进行重启


​​


如果需要配置外部数据库, 请跳转到外部数据库部分, 配置完成数据库后, 请再回到此处


我们回到99AI的目录中, 检查一下​docker-compose.yml​文件是否存在


​​


点击终端


​​


输入命令, 一键进行编排, 时间会很长


BASH
docker compose up -d


​​


来到宝塔可以看到编排查看下面的机器激活码


​​


打开网页授权查询,通过机器码进行授权


​​


输入机器码和期限, 点击确认生成,会出现下面的内容


​​


回到​.env.docker​文件中, 将​LICENSE_KEY​进行输入


​​


然后访问IP:9520


​​


Docker安装(外部数据库)


在配置好加速部分, 我们可以安装一下宝塔面板中的​Mysql​和​Redis​, 在数据库页面, 打开​Mysql选项卡​和​Redis选项卡​, 按照提示进行安装即可


这一步同样是按需安装, 如果你只需要外部的Mysql, 则只需要安装Mysql


Redis同理




​​


在安装完成后


首先添加数据库


​​


这里的信息自己输入,记住账号密码,记不住也不要紧,能复制粘贴


​​


在右侧​安全​选项卡中添加3306和6379


这一步同样要在服务器的安全组里面进行打开


也是按需进行配置



如果只需要外部的Mysql, 则只开3306即可





如果只需要外部的Redis, 则只开6379即可








​​


将配置的数据库文件写入到环境变量中


​​


在​docker-compose.yml​中修改所需要的环境变量, 可以选择​.env.docker​也可以选择​.env​, 但是记得选择自己修改的


​​


如果不需要Mysql


这里需要修改用户访问的权限, 因为宝塔安装的数据访问默认为本地访问, 我们需要先安装​phpmyadmin​, 通过修改​mysql​数据库中的​user表​


​​


​​


找到​99ai​这个用户名


这一步根据你数据库设置的名称来的




​​


将​127.0.0.1​改为​%​, 出现影响了1行, 则为修改成功


修改完成之后, 记得重启一下Mysql数据库


docker-compose.yml


内容应如下


YAML
services:redis:    image: redis    # command: --requirepass "12345678" # redis库密码,不需要密码注释本行    restart: always    # ports:    #   - "6379:6379"    environment:      TZ: Asia/Shanghai # 指定时区    volumes:      - ./data/redis/:/data/99ai:    build:      context: . # Use the current directory as build context      dockerfile: Dockerfile # Specify the Dockerfile name    container_name: 99ai    restart: always    ports:      - '9520:9520'    volumes:      - ./.env:/usr/src/app/.env:rw # 这里要是你修改的那个环境变量      - ./dist:/usr/src/app/dist:ro # 挂载dist目录(只读)      - ./public:/usr/src/app/public:ro # 挂载public目录(只读)      - ./public/file:/usr/src/app/public/file:rw # 挂载public/file目录(读写)      - ./package.json:/usr/src/app/package.json:ro # 挂载package.json(只读)      - ./pm2.conf.json:/usr/src/app/pm2.conf.json:ro # 挂载pm2.conf.json(只读)      - myapp_data:/app/data # Mount the named volume for persistent instance ID    environment:      - TZ=Asia/Shanghai    # depends_on can often be removed if the app handles connection retries    depends_on:      - redisvolumes:myapp_data: # Define the named volume


.env


YAML
# ...其他配置# MySQL---->这里要是外网可以访问的MysqlDB_HOST=<你的地址>DB_PORT=3306DB_USER=<你的用户名>DB_PASS=<你的密码>DB_DATABASE=<你的数据库名>DB_SYNC=true# RedisREDIS_PORT=6379REDIS_HOST=redisREDIS_PASSWORD=REDIS_USER=REDIS_DB=0# ...其他配置


如果不需要Redis


这一步需要修改一下Redis的配置, 选项卡中打开, 将​127.0.0.1​修改为​0.0.0.0​, 这样Redis就可以外网访问了


​​


并且修改添加密码​requirepass​, 在bind下面添加一行


CONF
requirepass <你的密码>


修改成功后, 重载配置


​​


docker-compose.yml


YAML
services:mysql:    image: mysql:8    command: --mysql-native-password=ON --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci    # command: --default-authentication-plugin=caching_sha2_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci    restart: always    volumes:      - ./data/mysql/:/var/lib/mysql/      - ./sql/:/docker-entrypoint-initdb.d/ #数据库文件放此目录可自动导入    # ports:    #   - "3306:3306"    environment:      TZ: Asia/Shanghai      MYSQL_ROOT_PASSWORD: '123456'      MYSQL_DATABASE: 'chatgpt'      MYSQL_USER: 'chatgpt'      MYSQL_PASSWORD: '123456'99ai:    build:      context: . # Use the current directory as build context      dockerfile: Dockerfile # Specify the Dockerfile name    container_name: 99ai    restart: always    ports:      - '9520:9520'    volumes:      - ./.env:/usr/src/app/.env:rw # 这里要是你修改的那个环境变量      - ./dist:/usr/src/app/dist:ro # 挂载dist目录(只读)      - ./public:/usr/src/app/public:ro # 挂载public目录(只读)      - ./public/file:/usr/src/app/public/file:rw # 挂载public/file目录(读写)      - ./package.json:/usr/src/app/package.json:ro # 挂载package.json(只读)      - ./pm2.conf.json:/usr/src/app/pm2.conf.json:ro # 挂载pm2.conf.json(只读)      - myapp_data:/app/data # Mount the named volume for persistent instance ID    environment:      - TZ=Asia/Shanghai    # depends_on can often be removed if the app handles connection retries    depends_on:      - mysqlvolumes:myapp_data: # Define the named volume


.env


YAML
# ...其他配置DB_HOST=mysqlDB_PORT=3306DB_USER=rootDB_PASS=123456DB_DATABASE=chatgptDB_SYNC=true# Redis----> 这里也是需要外网可以访问的RedisREDIS_PORT=6379REDIS_HOST=<你的地址>REDIS_PASSWORD=<你的密码># 这里一定要写密码,因为安全保护措施REDIS_USER=REDIS_DB=0# ...其他配置


如果你都不需要


docker-compose.yml


YAML
services:99ai:    build:      context: . # Use the current directory as build context      dockerfile: Dockerfile # Specify the Dockerfile name    container_name: 99ai    restart: always    ports:      - '9520:9520'    volumes:      - ./.env:/usr/src/app/.env:rw # 这里要是你修改的那个环境变量      - ./dist:/usr/src/app/dist:ro # 挂载dist目录(只读)      - ./public:/usr/src/app/public:ro # 挂载public目录(只读)      - ./public/file:/usr/src/app/public/file:rw # 挂载public/file目录(读写)      - ./package.json:/usr/src/app/package.json:ro # 挂载package.json(只读)      - ./pm2.conf.json:/usr/src/app/pm2.conf.json:ro # 挂载pm2.conf.json(只读)      - myapp_data:/app/data # Mount the named volume for persistent instance ID    environment:      - TZ=Asia/Shanghaivolumes:myapp_data: # Define the named volume


.env


YAML
# ...其他配置# MySQL---->这里要是外网可以访问的MysqlDB_HOST=<你的地址>DB_PORT=3306DB_USER=<你的用户名>DB_PASS=<你的密码>DB_DATABASE=<你的数据库名>DB_SYNC=true# Redis----> 这里也是需要外网可以访问的RedisREDIS_PORT=6379REDIS_HOST=<你的地址>REDIS_PASSWORD=<你的密码># 这里一定要写密码,因为安全保护措施REDIS_USER=REDIS_DB=0# ...其他配置


Docker注意事项


页: [1]
查看完整版本: 文档树 99AI部署文档 99AI部署文档