部署指南
1. 功能概述
DBridge 采用前后端合一的架构,最终打包为单一 Docker 镜像,简化部署流程。同时提供跨平台的构建和启动脚本,支持 Linux、macOS 和 Windows(Git Bash)环境。
核心能力:
- Docker 单镜像部署
- Docker Compose 编排
- 跨平台构建脚本
- 多环境配置
2. 环境要求
| 组件 | 最低版本 | 说明 |
|---|---|---|
| Docker | 20.10+ | 容器运行时 |
| Docker Compose | 2.0+ | 容器编排(可选) |
| Go | 1.26+ | 后端编译(源码部署时需要) |
| Node.js | 20+ | 前端编译(源码部署时需要) |
3. Docker 部署
3.1 快速启动
docker run -d \
--name dbridge \
-p 8082:8082 \
-v dbridge-data:/app/data \
-v dbridge-logs:/app/logs \
-v dbridge-config:/app/configs \
dbridge/dbridge-pro:latest
3.2 端口说明
| 端口 | 说明 |
|---|---|
| 8082 | Web 服务端口 |
3.3 数据卷说明
| 卷 | 说明 |
|---|---|
/app/data |
数据库文件(SQLite) |
/app/logs |
日志文件 |
/app/configs |
配置文件 |
3.4 自定义配置
将自定义的 config.yaml 挂载到容器中:
docker run -d \
--name dbridge \
-p 8082:8082 \
-v ./config.yaml:/app/configs/config.yaml \
-v dbridge-data:/app/data \
-v dbridge-logs:/app/logs \
dbridge/dbridge-pro:latest
4. Docker Compose 部署
4.1 创建 compose.yaml
services:
dbridge:
image: dbridge/dbridge-pro:latest
container_name: dbridge
ports:
- "8082:8082"
volumes:
- dbridge-data:/app/data
- dbridge-logs:/app/logs
- ./configs/config.yaml:/app/configs/config.yaml
environment:
- TZ=Asia/Shanghai
restart: unless-stopped
volumes:
dbridge-data:
dbridge-logs:
4.2 启动服务
docker compose up -d
4.3 查看日志
docker compose logs -f dbridge
4.4 停止服务
docker compose down
4.5 更新版本
docker compose pull
docker compose up -d
5. 源码部署
5.1 克隆代码
git clone https://github.com/your-org/dbridge-pro.git
cd dbridge-pro
5.2 构建
项目提供跨平台构建脚本:
Linux / macOS:
./scripts/build.sh
Windows(Git Bash):
./scripts/build.sh
构建脚本会自动完成以下步骤:
- 编译前端(
web/目录) - 编译后端(
cmd/server/) - 输出到
target/目录
5.3 启动
Linux / macOS:
./scripts/start.sh
Windows(Git Bash):
./scripts/start.sh
5.4 停止
./scripts/stop.sh
6. 配置参考
配置文件位于 configs/config.yaml,主要配置项:
6.1 服务器配置
server:
env: development # development | production
port: 8082 # 服务端口
read_timeout: 30s # 读超时
write_timeout: 300s # 写超时(AI 对话需要较长超时)
6.2 数据库配置
database:
type: sqlite # sqlite | mysql | postgresql
sqlite:
path: ./data/dbridge.db
mysql:
host: localhost
port: 3306
database: dbridge
username: root
password: ""
postgresql:
host: localhost
port: 5432
database: dbridge
username: postgres
password: ""
ssl_mode: disable
6.3 AI 配置
ai:
provider: openai # openai | azure | ollama 等
model: gpt-4
api_key: ""
base_url: ""
temperature: 0.1
max_tokens: 2000
timeout: 30s
daily_quota: 1000
rate_limit: 20
6.4 认证配置
subscription:
enabled: true
auth_mode: "usercenter" # usercenter | password
base_url: "http://localhost:8080"
app_id: "your_app_id"
product_id: "your_product_id"
6.5 缓存配置
cache:
backend: local # local | redis
default_ttl: 300
redis:
addr: localhost:6379
password: ""
db: 0
6.6 日志配置
log:
level: debug # debug | info | warn | error
output: stdout # stdout | file
file_path: ./logs/dbridge.log
format: console # console | json
7. 生产环境建议
7.1 数据库
- 生产环境建议使用 MySQL 或 PostgreSQL,而非 SQLite
- 配置数据库连接池参数(
max_open_conns、max_idle_conns) - 定期备份数据库
7.2 缓存
- 多实例部署时使用 Redis 作为缓存后端
- 单机部署可以使用 local 缓存
7.3 安全
- 修改 JWT Secret 为随机强密码
- 启用 HTTPS(通过反向代理)
- 配置 CORS 允许的域名
- 启用审计日志自动清理
7.4 反向代理
推荐使用 Nginx 作为反向代理:
server {
listen 443 ssl;
server_name dbridge.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://127.0.0.1:8082;
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;
# SSE 支持(AI 对话流式输出)
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 300s;
}
}
7.5 资源要求
| 规模 | CPU | 内存 | 磁盘 |
|---|---|---|---|
| 小型(< 10 数据源) | 2 核 | 4 GB | 20 GB |
| 中型(10-50 数据源) | 4 核 | 8 GB | 50 GB |
| 大型(> 50 数据源) | 8 核 | 16 GB | 100 GB |
8. 常见问题
8.1 端口被占用
修改 config.yaml 中的 server.port,或使用 Docker 端口映射:
docker run -d -p 9090:8082 dbridge/dbridge-pro:latest
8.2 数据库连接失败
检查数据库配置是否正确,确认数据库服务已启动且网络可达。
8.3 AI 功能不可用
检查 AI 配置中的 api_key 和 base_url 是否正确,确认可以访问 AI 服务端点。
8.4 日志在哪里
- Docker 部署:
docker logs dbridge - 源码部署:查看
config.yaml中配置的log.file_path
8.5 如何备份
备份以下数据:
- 数据库文件(
data/目录或外部数据库) - 配置文件(
configs/config.yaml) - 存储文件(如果使用了本地存储)