Bella OpenAPI 启动与部署详情
本文档详细介绍了 Bella OpenAPI 的启动和部署流程,包括前提条件、启动服务、环境变量配置、服务管理和系统初始化等内容。
目录
项目概述
Bella OpenAPI是一个综合性的AI开放API平台,提供以下主要组件:
-
项目结构:
api/
: 后端API服务,基于Spring Boot框架web/
: 前端Web应用,基于React和Next.js
-
技术栈:
- 后端:Java、Spring Boot、MySQL、Redis
- 前端:React、Next.js
- 部署:Docker、Docker Compose,需要 Docker Compose 1.13.0+ 版本
- 网关:Nginx(可选,使用脚本启动时会自动在容器中创建)
前提条件
- 安装 Docker
- 安装 Docker Compose
- 执行目录必须在bella-openapi项目的根目录下
启动服务
启动服务时通常需要配置用户登录,方法见:GitHub OAuth配置攻略
./start.sh [选项] (如果本地不存在镜像,会拉取远端镜像)
注意:
- windows下请使用git bash工具执行命令
- 启动脚本只支持部分配置参数,如果需要配置更多参数,可以修改docker-compose.yml文件或修改应用的配置文件
选项:
-b, --build
: 重新构建服务-r, --rebuild
: 强制重新构建服务(不使用缓存)-e, --env ENV
: 指定环境(dev, test, prod)-h, --help
: 显示帮助信息--skip-auth
: 跳过授权步骤--server URL
: 配置服务域名--github-oauth CLIENT_ID:CLIENT_SECRET
: 配置GitHub OAuth登录--google-oauth CLIENT_ID:CLIENT_SECRET
: 配置Google OAuth登录--cas-server URL
: 配置CAS服务器URL--cas-login URL
: 配置CAS登录URL--proxy-host HOST
: 配置代理服务器主机名或IP地址--proxy-port PORT
: 配置代理服务器端口--proxy-type TYPE
: 配置代理类型(socks 或 http)--proxy-domains DOMAINS
: 配置需要通过代理访问的域名,多个域名用逗号分隔--version VERSION
: 指定镜像版本--push
: 构建后推送镜像到仓库--registry username
: 指定docker仓库 (username)--restart-web
: 仅重启前端服务--restart-api
: 仅重启后端服务--nginx-port PORT
: 指定Nginx服务映射到的端口,默认为80--update-image
: 从远程仓库更新镜像,即使本地已存在--service CONTAINER_NAME:DOMAIN:PORT
: 配置额外服务的Nginx转发,格式为服务名:域名:端口,多个服务用逗号分隔,只支持同一docker网络下的服务,使用CONTAINER_NAME转发
示例:
./start.sh # 启动服务,不重新构建,如果本地不存在镜像,会拉取远端镜像
./start.sh -b # 启动服务并重新构建(会使用缓存,增量修改编译较快)
./start.sh -r # 启动服务并强制重新构建(不使用缓存)
./start.sh -e test # 以测试环境启动服务
./start.sh --skip-auth # 启动服务但跳过授权步骤
./start.sh --server http://example.com #配置服务域名
./start.sh --proxy-host 127.0.0.1 --proxy-port 8118 --proxy-type http --proxy-domains github.com,google.com # 配置HTTP代理
./start.sh --proxy-host proxy.com --proxy-port 80 --proxy-type socks # 配置SOCKS代理,不指定特定域名
# 没有修改源码,只想拉取远端镜像,并配置登录方式和服务域名,通常使用以下命令即可:
#不配置域名,通常用于本地部署:
./start.sh --github-oauth ${clientId}:${secret} --google-oauth ${clientId}:${secret} #配置github和google的oauth登录
#配置域名,通常用于服务端部署:
./start.sh --github-oauth ${clientId}:${secret} --google-oauth ${clientId}:${secret} --server http://example.com #配置github和google的oauth登录以及服务域名
#配置域名和代理,用于需要通过代理访问外部服务的环境:
./start.sh --github-oauth ${clientId}:${secret} --google-oauth ${clientId}:${secret} --server http://example.com --proxy-host 127.0.0.1 --proxy-port 8118 --proxy-type http --proxy-domains github.com,google.com
./start.sh --cas-server https://cas.example.com --cas-login https://cas.example.com/login --server http://example.com #配置CAS登录和服务域名,如果既配置cas登录又配置oauth登录,登录时会使用cas登录
docker-compose环境变量配置
环境变量优先级
在Docker环境中,环境变量的优先级从高到低为:
- docker-compose.yml中的environment设置
- Dockerfile中的ENV指令
- .env文件、 yaml文件