一、简介
YApi是去哪儿网开源的API管理平台,提供了API的可视化管理、Mock服务、自动化测试等功能。本文介绍如何在已有MongoDB的情况下,通过1Panel快速部署YApi。
二、前置条件
- 已安装1Panel面板
- 已有可用的MongoDB实例
- 服务器已安装Docker和Docker Compose
三、部署步骤
3.1 准备MongoDB
如果你的MongoDB需要为YApi创建专用数据库和用户,执行以下操作:
// 连接到MongoDB
use yapi
// 创建用户(可选,根据安全需求)
db.createUser({
user: "yapi_user",
pwd: "yapi_password",
roles: [{ role: "readWrite", db: "yapi" }]
})3.2 创建Docker Compose配置
在1Panel中进入 容器 → 编排,创建新的编排项目:
项目名称: yapi
docker-compose.yml 内容:
version: '3'
services:
yapi:
image: yapipro/yapi:latest
container_name: yapi
ports:
- "3000:3000"
environment:
# 管理员账号配置
- YAPI_ADMIN_ACCOUNT=admin@admin.com
- YAPI_ADMIN_PASSWORD=admin123
# MongoDB连接配置
- YAPI_DB_SERVERNAME=你的MongoDB地址
- YAPI_DB_PORT=27017
- YAPI_DB_DATABASE=yapi
- YAPI_DB_USER=yapi_user # 如果MongoDB需要认证
- YAPI_DB_PASS=yapi_password # 如果MongoDB需要认证
# 其他配置
- YAPI_CLOSE_REGISTER=true # 关闭注册功能
- YAPI_PORT=3000
restart: unless-stopped3.3 环境变量配置说明
必填项
| 环境变量 | 说明 | 示例 |
|---|---|---|
YAPI_ADMIN_ACCOUNT |
管理员邮箱账号 | admin@admin.com |
YAPI_ADMIN_PASSWORD |
管理员密码 | admin123 |
YAPI_DB_SERVERNAME |
MongoDB服务器地址 | 192.168.1.100 或 mongo容器名 |
YAPI_DB_PORT |
MongoDB端口 | 27017 |
YAPI_DB_DATABASE |
数据库名称 | yapi |
可选项
| 环境变量 | 说明 | 默认值 |
|---|---|---|
YAPI_DB_USER |
MongoDB用户名 | - |
YAPI_DB_PASS |
MongoDB密码 | - |
YAPI_DB_AUTH_SOURCE |
认证数据库 | admin |
YAPI_CLOSE_REGISTER |
关闭注册功能 | false |
YAPI_MAIL_ENABLE |
启用邮件通知 | false |
3.4 网络配置(如果MongoDB在同一Docker网络)
如果MongoDB也是通过Docker部署的,需要确保YApi能访问到它:
version: '3'
services:
yapi:
image: yapipro/yapi:latest
container_name: yapi
ports:
- "3000:3000"
environment:
- YAPI_ADMIN_ACCOUNT=admin@admin.com
- YAPI_ADMIN_PASSWORD=admin123
- YAPI_DB_SERVERNAME=mongo # 使用MongoDB容器名
- YAPI_DB_PORT=27017
- YAPI_DB_DATABASE=yapi
restart: unless-stopped
networks:
- mongodb-network # 连接到MongoDB所在网络
networks:
mongodb-network:
external: true # 使用已存在的网络3.5 启动服务
在1Panel中点击 启动 按钮,或使用命令行:
docker-compose up -d查看日志确认启动成功:
docker logs -f yapi四、访问和初始化
-
访问地址:
http://你的服务器IP:3000 -
首次登录:
- 邮箱:配置文件中的
YAPI_ADMIN_ACCOUNT - 密码:配置文件中的
YAPI_ADMIN_PASSWORD
- 邮箱:配置文件中的
-
安全建议:
- 登录后立即修改管理员密码
- 确认已关闭注册功能
- 配置反向代理和HTTPS(可选)
五、常见问题
5.1 无法连接MongoDB
症状: YApi启动后无法访问,日志显示MongoDB连接失败
解决方案:
- 检查MongoDB地址是否正确
- 确认MongoDB端口是否开放
- 验证MongoDB用户名密码是否正确
- 检查Docker网络配置
5.2 端口冲突
症状: 启动失败,提示端口被占用
解决方案:
修改docker-compose.yml中的端口映射:
ports:
- "3001:3000" # 将主机端口改为30015.3 数据持久化
YApi的数据都存储在MongoDB中,只需确保MongoDB数据持久化即可。
六、进阶配置
6.1 配置Nginx反向代理
server {
listen 80;
server_name yapi.yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}6.2 配置HTTPS
在1Panel中使用 网站 → 证书 功能申请Let's Encrypt证书,然后配置反向代理。
七、总结
通过1Panel部署YApi非常简单,关键是配置好MongoDB连接信息。本文提供的配置适用于已有MongoDB的场景,避免了重复部署数据库服务。
八、参考资料
更新时间: 2024-12-12
作者: Ahmad
默认评论
Halo系统提供的评论