找回密码
 立即注册

[AI] 文档树 99AI部署文档 99AI部署文档

[复制链接]
admin 发表于 2025-6-2 00:29:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
[size=1.75em]安装前的环境


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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvbmdGVmNxZkpwQmpFOXdzLnBuZw==.jpg



本地版本看一下:


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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvTTdoTnRSRUJIMTlZTDh5LnBuZw==.jpg



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


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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvR1l1QlEybmhnWHZKRDRLLnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYva0l1ZVpQTWZ0aDJIMXhvLnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvS1ZYSHJ6NDZOR3V4VTNqLnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvTFkzdFBiY05CN2pUbGs4LnBuZw==.jpg



aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvaGY5ZFl3enhYcGFVMWxMLnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvdFljVEVXc2RPQndlcjNwLnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvNTFrY0JvRnN3ZHU3V216LnBuZw==.jpg



aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvNlA5a0tSMzJxSHdwWThzLnBuZw==.jpg



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


JS
[backcolor=transparent !important]export NODE_HOME=/www/server/nodejs/v版本号export PATH=$PATHNODE_HOME/bin



aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvMlhLT01SMUVHV0NEd1NwLnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvcWoxaHlMY1NrOUtBZUNpLnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvV3AyUTR4SWQ5N010RlpELnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYveFVDWWUySHdpVnpodmNkLnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvVHZBUTU2d29iQkpQODFwLnBuZw==.jpg





[size=1.75em]部署安装


[size=1.55em]本地安装


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


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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvTHM4dE1uM29yVUlXYkJ6LnBuZw==.jpg



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


BASH
[backcolor=transparent !important] git clone https://github.com/AIWeb-Team/AIWeb.git



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvc2g2cWxUZGFOVVdRNEVMLnBuZw==.jpg



YXNzZXRzL2ltYWdlLTIwMjUwNTI2MTcyNzEzLXhmaTF4b3UucG5n.jpg





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


YXNzZXRzL2ltYWdlLTIwMjUwNTI2MTcyOTE2LXhmcGRzaGwucG5n.jpg



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


YXNzZXRzL2ltYWdlLTIwMjUwNTI2MTczNDMwLTdzNnJpZTIucG5n.jpg



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


YXNzZXRzL2ltYWdlLTIwMjUwNTI2MTc0MjUwLXY4MTZwZXAucG5n.jpg



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


YXNzZXRzL2ltYWdlLTIwMjUwNTI2MTc0NTU1LWhzZGUxNmIucG5n.jpg



修改之后,点击终端


YXNzZXRzL2ltYWdlLTIwMjUwNTI2MTc0NzMzLXN2bmk0YnQucG5n.jpg



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


BASH
[backcolor=transparent !important]pnpm i



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


YXNzZXRzL2ltYWdlLTIwMjUwNTI2MTc1MzQyLXZiYWNkOHQucG5n.jpg



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


BASH
[backcolor=transparent !important]pnpm start



aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvVnNxMlFKN0s4cGhhVERDLnBuZw==.jpg



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


BASH
[backcolor=transparent !important]pm2 log



aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvNFByVzdLWUJ5WmdUaHZELnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvRzl6eHFWMklKeWttQUtCLnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvVnNSdGwyR3JZODZ4MXlMLnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvUmdPRUFCeExjalp1bFZoLnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvem1reU02OGl1eEJXOTJwLnBuZw==.jpg






一些非必要操作


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


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


BASH
[backcolor=transparent !important]pm2 del 0 # 这个是说, 删除pm2中编号为0的项目



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvM0JOVVZxb0tBc1NwTGFpLnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvcm5DYUhjMkltalFaSzZiLnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvdjh3b2xjWldFaHFiMjY3LnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvdUs3cXdvNnJBSVlrWEI5LnBuZw==.jpg



aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvQVVzOEtlMkNUT0RTeFZ0LnBuZw==.jpg



aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvOFVSc1ZoTWI1cVBvWGxULnBuZw==.jpg





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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvdDJLT1J6RmtWb3F2TUlFLnBuZw==.jpg



[size=1.55em]Docker安装


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


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


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



再回到设置, 进行重启


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvUHZGTmhmbHBHeGt3SURjLnBuZw==.jpg



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


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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvZEhyUnQ5YkRYSWpVZUNLLnBuZw==.jpg



点击终端


YXNzZXRzL2ltYWdlLTIwMjUwNTI2MTkwMjExLTB4NG4zMTUucG5n.jpg



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


BASH
[backcolor=transparent !important]docker compose up -d



YXNzZXRzL2ltYWdlLTIwMjUwNTI2MTkxNzAzLXBrOHIwNGEucG5n.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvd0pzMlNqZmlaRkVSTkhhLnBuZw==.jpg



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





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





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





然后访问IP:9520





[size=1.35em]Docker安装(外部数据库)


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


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


Redis同理




aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvQWd6NWVac3lIWFZ4dTE4LnBuZw==.jpg



在安装完成后


首先添加数据库





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





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


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


也是按需进行配置



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





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








aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvWGlGMmRPQUpaM0QxS1JILnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvVktzQVdmSFBnaWRudnRGLnBuZw==.jpg



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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvMjNRTWRDVVJvMUJWcXptLnBuZw==.jpg



[size=1.2em]如果不需要Mysql


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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvelNvUVhIZ2NxS2ZlQ01ZLnBuZw==.jpg



aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvUFN1OG5GendIeFFqRTFSLnBuZw==.jpg



找到​99ai​这个用户名


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




aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvNkdiODI5bWlySk5BVVJxLnBuZw==.jpg



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


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


[size=1.1em]docker-compose.yml


内容应如下


YAML
[backcolor=transparent !important]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



[size=1.1em].env


YAML
[backcolor=transparent !important]# ...其他配置# 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# ...其他配置



[size=1.2em]如果不需要Redis


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


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvVDFsYmlLTWptckR2VzUzLnBuZw==.jpg



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


CONF
[backcolor=transparent !important]requirepass <你的密码>



修改成功后, 重载配置


aHR0cHM6Ly9jZG4uc2EubmV0LzIwMjUvMDUvMjYvREk0OXc3emxKbnJlTjNnLnBuZw==.jpg



[size=1.1em]docker-compose.yml


YAML
[backcolor=transparent !important]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



[size=1.1em].env


YAML
[backcolor=transparent !important]# ...其他配置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# ...其他配置



[size=1.2em]如果你都不需要


[size=1.1em]docker-compose.yml


YAML
[backcolor=transparent !important]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



[size=1.1em].env


YAML
[backcolor=transparent !important]# ...其他配置# 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# ...其他配置



[size=1.75em]Docker注意事项


更多图片 小图 大图
组图打开中,请稍候......
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|网站地图|Archiver|手机版|小黑屋|精研社 ( 粤ICP备2021041072号-2 )|网站地图

GMT+8, 2025-8-2 21:11 , Processed in 0.105784 second(s), 31 queries .

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表