OneAPI开源AI中转站Docker一键部署教程
OneAPI开源AI中转站Docker一键部署:零基础也能轻松搭建
如果你需要管理多个AI模型的API密钥,或者想为团队提供一个统一的中转入口,OneAPI开源AI中转站是一个很实用的选择。
它支持多种主流大模型,通过Docker一键部署,几分钟就能上线一个稳定、可管理的中转服务。
本文面向刚接触服务器的用户,从零开始带你在Linux服务器上完成部署。
部署前需要准备什么
- 一台云服务器(推荐Ubuntu 20.04或CentOS 7以上版本,2核2G够用)。
- 服务器已安装并运行Docker。如果没有,请先登录服务器执行以下命令安装:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl start docker
sudo systemctl enable docker
- 服务器开放一个端口(比如3000),用于访问OneAPI后台。如果使用云服务商,记得在安全组/防火墙放行该端口。
一键拉取并运行OneAPI容器
OneAPI官方提供了Docker镜像,一行命令就能启动:
docker run -d --restart=always -p 3000:3000 --name one-api justsong/one-api
这条命令的作用:
-d:后台运行。--restart=always:容器意外退出时自动重启,保证服务稳定。-p 3000:3000:将服务器的3000端口映射到容器内部的3000端口。--name one-api:给容器命名,方便管理。justsong/one-api:官方镜像名。
运行后,通过 http://你的服务器IP:3000 就可以访问OneAPI后台。
首次访问会引导你创建管理员账号。
注意:如果你的服务器上已经有服务占用3000端口,可以改为其他端口,比如 -p 4000:3000,然后通过4000端口访问。
避坑指南:常见问题与解决方法
1. 容器启动后无法访问后台
- 检查端口是否在云服务商安全组中放行(如阿里云/腾讯云的“安全组规则”)。
- 在服务器本地用
curl http://127.0.0.1:3000测试,如果返回HTML说明服务正常,问题出在网络或防火墙。 - 使用
docker ps确认容器状态为“Up”。若未启动,用docker logs one-api查看日志。
2. 容器重启后数据丢失
默认情况下,OneAPI使用容器内部SQLite数据库,容器被删除后数据会丢失。
建议挂载本地目录持久化数据:
docker run -d --restart=always -p 3000:3000 \
-v /root/one-api/data:/app/data \
--name one-api justsong/one-api
这样数据库文件会保存在宿主机的 /root/one-api/data 目录下。
3. 如何升级到新版
先拉取最新镜像 docker pull justsong/one-api,然后停掉旧容器、删除、再按上面命令重新创建即可。
数据卷若已挂载,升级后数据不丢失。
验证部署是否成功
完成上述步骤后,我们可以做几件事确认系统正常工作:
- 打开浏览器访问
http://你的IP:3000,能看到登录/注册页面。 - 注册并登录后台,进入“渠道”界面添加一个API密钥(比如OpenAI的Key)。
- 在“令牌”界面生成一个用于调用的中转令牌。
- 使用命令行测试接口:
curl http://你的IP:3000/v1/chat/completions \
-H "Authorization: Bearer 你的令牌" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "Hello"}]}'
如果返回包含 choices 的JSON,说明中转成功。
高频问题解答
Q:OneAPI支持哪些模型?
支持OpenAI、Azure、Claude、文心一言、通义千问等主流模型,在后台渠道中可配置。
Q:部署后需要配置HTTPS吗?
生产环境建议用Nginx反向代理并配置SSL,避免API Key明文传输。
Nginx配置可参考:
server {
listen 443 ssl;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Q:可以多节点部署吗?
OneAPI本身是单机服务,但可以通过负载均衡在其前方添加多个实例。
如果你追求高可用,建议结合数据库(MySQL/PostgreSQL)部署,不过对新手来说单机已经足够。
写在最后
通过本文的Docker一键部署教程,你应该已经成功跑起了OneAPI开源AI中转站。
整个过程只需要几条命令,重点在于端口放通和数据持久化。
后续你可以在后台自由添加渠道、生成令牌,为你的应用提供统一的API中转能力。
如果在操作中遇到报错,优先检查端口、日志、安全组这三个环节,大部分问题都能解决。