马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
[size=1.75em]安装前的环境
本文档以宝塔面板9.6.0为基础进行部署安装,其他版本仅供参考,进入到宝塔面板中,我们会有一个初始化的推荐,根据你想安装的方式来进行安装,所有的系统环境都是一样的。
本地版本看一下:
如果你是选择的本地安装方式,在安装的过程中,来到软件商店,可以安装一下Node.js版本管理器和Redis
会弹出一个页面,选择最新的版本去安装即可,Reids同理
然后安装完成,点击设置,进入到管理页面,首次进入一定要更新列表
选择一个稳定版本安装即可,推荐20版本以上,点击安装即可
有可能会出现这个问题,文件安装失败,这个是因为镜像中的链接下载之后,和宝塔检测的域名不一致,我们跳转到/www/server/nodejs/这个目录下面
将文件夹名称改为v版本号,这里版本号自己记住,后面要用
再回到版本管理器中,就可以看到安装成功了
然后点击模块,安装需要的模块,输入名称点击安装即可,安装完成如下所示
后面我们来到/etc目录下, 找到profile文件, 滑到最下面,添加上下面的代码
JS
[backcolor=transparent !important]export NODE_HOME=/www/server/nodejs/v版本号export PATH=$PATH NODE_HOME/bin
保存之后打开终端, 刷新环境变量,这里你可以使用宝塔面板中的终端功能来进行操作
刷新后,可以在命令行中输入pnpm进行测试是否配置正确, 如果出现了下面一长串内容, 则说明正确
然后我们来配置本地的Mysql数据库
这里的信息自己输入,记住账号密码,记不住也不要紧,能复制粘贴
[size=1.75em]部署安装
[size=1.55em]本地安装
在上述环境安装好之后,我们则直接进入部署环节,首先我们先到https://github.com/AIWeb-Team/AIWeb中下载部署包
上传到服务器上, 然后进行解压
这里也可以使用git命令进行拉取
BASH
[backcolor=transparent !important] git clone https://github.com/AIWeb-Team/AIWeb.git
这里会要求你输入GitHub的账号(你)和校验码
这里注意,使用git clone下来的仓库没有-main的后缀,因为面向的是小白,我们以上传的安装包文件夹为例
打开AIWeb-main文件夹, 目录结构如下所示
我们来配置一些环境变量信息,首先将.env.example进行重命名为.env
打开之后如下所示,将信息进行修改
修改之后,点击终端
输入下面命令, 用于安装依赖
BASH
[backcolor=transparent !important]pnpm i
安装完成如下所示, 使用宝塔终端同理
确定.env中配置无误后, 运行命令启动
BASH
[backcolor=transparent !important]pnpm start
在通过下面的命令查看一下日志信息, 获取机器码
BASH
[backcolor=transparent !important]pm2 log
打开网页授权查询,通过机器码进行授权
输入机器码和期限, 点击确认生成,会出现下面的内容
回到.env文件中, 将LICENSE_KEY进行输入
系统会自动重启, 然后即可访问
一些非必要操作
有的时候未来方便重启服务器后, 项目能够重新启动, 我比较喜欢设置到宝塔的管理中
首先删除启动的项目, 我们在终端中输入
BASH
[backcolor=transparent !important]pm2 del 0 # 这个是说, 删除pm2中编号为0的项目
打开网站的选项卡, 进入到Node项目中
添加Node项目, 因为这里之前安装过了, 所以勾选不安装
展开更多, 填入端口9520,这里也可以绑定域名
然后状态会不显示,我们使用PM2监控来查看
然后访问IP:9520即可访问到我们的99AI
[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" }}
再回到设置, 进行重启
如果需要配置外部数据库, 请跳转到外部数据库部分, 配置完成数据库后, 请再回到此处
我们回到99AI的目录中, 检查一下docker-compose.yml文件是否存在
点击终端
输入命令, 一键进行编排, 时间会很长
BASH
[backcolor=transparent !important]docker compose up -d
来到宝塔可以看到编排查看下面的机器激活码
打开网页授权查询,通过机器码进行授权
输入机器码和期限, 点击确认生成,会出现下面的内容
回到.env.docker文件中, 将LICENSE_KEY进行输入
然后访问IP:9520
[size=1.35em]Docker安装(外部数据库)
在配置好加速部分, 我们可以安装一下宝塔面板中的Mysql和Redis, 在数据库页面, 打开Mysql选项卡和Redis选项卡, 按照提示进行安装即可
这一步同样是按需安装, 如果你只需要外部的Mysql, 则只需要安装Mysql
Redis同理
在安装完成后
首先添加数据库
这里的信息自己输入,记住账号密码,记不住也不要紧,能复制粘贴
在右侧安全选项卡中添加3306和6379
这一步同样要在服务器的安全组里面进行打开
也是按需进行配置
如果只需要外部的Mysql, 则只开3306即可
如果只需要外部的Redis, 则只开6379即可
将配置的数据库文件写入到环境变量中
在docker-compose.yml中修改所需要的环境变量, 可以选择.env.docker也可以选择.env, 但是记得选择自己修改的
[size=1.2em]如果不需要Mysql
这里需要修改用户访问的权限, 因为宝塔安装的数据访问默认为本地访问, 我们需要先安装phpmyadmin, 通过修改mysql数据库中的user表
找到99ai这个用户名
这一步根据你数据库设置的名称来的
将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就可以外网访问了
并且修改添加密码requirepass, 在bind下面添加一行
CONF
[backcolor=transparent !important]requirepass <你的密码>
修改成功后, 重载配置
[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注意事项
|