-
-
Notifications
You must be signed in to change notification settings - Fork 267
Deployment
USER_TOKEN_SECRET
必填,否则无法启动。
SESSION_SECRET
推荐填写,否则每次重启后已登录用户的 cookie 将失效。
以下是使用 Docker 进行部署的命令:
docker run -d -p 3000:3000 \
--name one-api \
--restart always \
-e TZ=Asia/Shanghai \
-e USER_TOKEN_SECRET="user_token_secret" \
-e SESSION_SECRET="session_secret" \
-v /home/ubuntu/data/one-api:/data \
ghcr.io/martialbe/one-api
在 SQLite 的基础上,添加 -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi"
。请根据实际情况修改数据库连接参数。
docker run -d -p 3000:3000 \
--name one-api \
--restart always \
-e TZ=Asia/Shanghai \
-e USER_TOKEN_SECRET="user_token_secret" \
-e SESSION_SECRET="session_secret" \
-e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" \
-v /home/ubuntu/data/one-api:/data \
ghcr.io/martialbe/one-api
docker run -d -p 3000:3000 \
--name one-api \
--restart always \
-e TZ=Asia/Shanghai \
-e USER_TOKEN_SECRET="user_token_secret" \
-e SESSION_SECRET="session_secret" \
-e SQL_DSN="postgres://postgres:123456@localhost:5432/oneapi" \
-v /home/ubuntu/data/one-api:/data \
ghcr.io/martialbe/one-api
注意:
-
-p 3000:3000
中的第一个3000
是宿主机的端口,可以根据需要进行修改。 - 数据和日志将会保存在宿主机的
/home/ubuntu/data/one-api
目录,请确保该目录存在且具有写入权限,或者更改为合适的目录。 - 如果启动失败,请添加
--privileged=true
,具体参考 issue #482。 - 如果你的并发量较大,务必设置
SQL_DSN
。
部署完毕后,访问 http://localhost:3000
即可。
注意:虽然启动方式有所不同,但参数设置保持不变。具体的参数设置请参考基于 Docker 部署部分。
以下是使用 Docker Compose 进行部署的步骤:
-
请在你本机创建一个目录用于存放数据,例如
/home/ubuntu/data/one-api
, 注意:以下操作都是基于你处于/home/ubuntu/data/one-api
目录下进行的。如果你的目录不是/home/ubuntu/data/one-api
,请自行进入到你的目录。 -
在你的本地目录下创建
./data/mysql
文件 和./data/one-api
文件, 也在你本地目录下执行以下命令:
mkdir -p ./data/mysql
mkdir -p ./data/one-api
-
下载 docker-compose.yml 文件到你的本地目录 (上面的列子是:
/home/ubuntu/data/one-api
)。 -
修改
docker-compose.yml
文件,将你需要的环境变量填入。 如果你想使用配置文件,可以下载配置文件,并重命名为config.yaml
放入./data/one-api
目录中。 -
启动服务
docker-compose up -d
- 启动服务后,你可以通过运行以下命令来查看部署状态:
docker-compose ps
请确保所有的服务都已经成功启动,并且状态为 'Up'。
以下是手动部署的步骤:
-
获取源码:从 GitHub Releases 下载最新的可执行文件,或者直接从源码编译。如果你选择编译源码,可以使用以下命令:
git clone https://github.com/MartialBE/one-api.git
-
构建:进入代码目录,构建:
cd one-api make
-
运行应用:为构建的应用添加执行权限,并运行:
chmod u+x one-api ./one-api --port 3000 --log-dir ./logs
-
访问应用:在浏览器中访问 http://localhost:3000/ 并登录。初始账号用户名为
root
,密码为123456
。 -
重新编译:如果需要重新编译,可以使用以下命令:
make clean make
请确保在执行以上步骤时,你的环境已经安装了必要的工具,如 Git、Node.js、yarn 和 Go。
- 所有服务器
SESSION_SECRET
设置一样的值。 - 必须设置
SQL_DSN
,使用 MySQL 数据库而非 SQLite,所有服务器连接同一个数据库。 - 所有从服务器必须设置
NODE_TYPE
为slave
,不设置则默认为主服务器。 - 设置
SYNC_FREQUENCY
后服务器将定期从数据库同步配置,在使用远程数据库的情况下,推荐设置该项并启用 Redis,无论主从。 - 从服务器可以选择设置
FRONTEND_BASE_URL
,以重定向页面请求到主服务器。 - 从服务器上分别装好 Redis,设置好
REDIS_CONN_STRING
,这样可以做到在缓存未过期的情况下数据库零访问,可以减少延迟。 - 如果主服务器访问数据库延迟也比较高,则也需要启用 Redis,并设置
SYNC_FREQUENCY
,以定期从数据库同步配置。
环境变量的具体使用方法详见环境变量。