本文档面向新用户,详细介绍如何配置、部署和更新 StreamerHelper。
- Docker 20.10+
- Docker Compose v2+
- jq (JSON 处理工具)
- Node.js 18+ (仅配置工具需要)
- 至少 4GB 可用内存
# Ubuntu/Debian
sudo apt update
sudo apt install -y docker.io docker-compose-v2 jq nodejs npm
# macOS (使用 Homebrew)
brew install docker jq node
# 启动 Docker 服务 (Linux)
sudo systemctl enable docker
sudo systemctl start dockergit clone https://github.com/StreamerHelper/infra.git
cd infra
npm install运行交互式配置工具:
./bin/configure init按提示输入:
- HTTP 端口 (默认 7080)
- 数据库密码 (留空自动生成)
- MinIO 密钥 (留空自动生成)
配置会保存到 ~/.streamer-helper/settings.json。
./bin/control infra up等待所有服务健康检查通过 (约 30 秒):
- PostgreSQL
- Redis
- MinIO
./bin/control migrate首次运行会创建所有数据库表。
./bin/control app up等待后端健康检查通过后,即可访问:
| 服务 | 地址 |
|---|---|
| 应用首页 | http://localhost:7080 |
| MinIO 控制台 | http://localhost:7091 |
上述步骤也可以用一条命令完成:
./bin/control up~/.streamer-helper/
├── settings.json # 主配置文件
└── .docker-env # Docker 环境变量 (自动生成)
./bin/configure show敏感信息 (密码、密钥) 会脱敏显示。
./bin/configure edit选择要修改的配置项,按提示操作。
修改配置后需要重启服务:
./bin/control app down
./bin/control app up| 配置项 | 说明 | 默认值 |
|---|---|---|
http.port |
HTTP 端口 | 7080 |
http.httpsPort |
HTTPS 端口 | 7443 |
database.password |
数据库密码 | 自动生成 |
s3.accessKey |
MinIO 访问密钥 | minioadmin |
s3.secretKey |
MinIO 私密密钥 | 自动生成 |
minio.apiPort |
MinIO API 端口 | 7090 |
minio.consolePort |
MinIO 控制台端口 | 7091 |
recorder.maxRecordingTime |
最大录制时长 (秒) | 86400 |
poller.checkInterval |
轮询间隔 (秒) | 60 |
注意:
http.port、http.httpsPort、minio.apiPort、minio.consolePort是宿主机暴露端口。- Docker 内置 MinIO 默认也统一使用
minio:7090。 - 因此如果你改了 MinIO 的 API 端口,
s3.endpoint和s3.publicEndpoint默认都会跟着改。 - 后端容器内部监听端口固定为
7001。如需更改对外访问端口,请修改http.port,不要修改app.port。
./bin/control status输出示例:
NAMES STATUS PORTS
streamer-nginx Up 2 hours 0.0.0.0:7080->80/tcp
streamer-frontend Up 2 hours (healthy) 3000/tcp
streamer-backend Up 2 hours (healthy) 7001/tcp
streamer-postgres Up 2 hours (healthy) 5432/tcp
streamer-redis Up 2 hours (healthy) 6379/tcp
streamer-minio Up 2 hours (healthy) 0.0.0.0:7090-7091->7090-7091/tcp
# 所有服务
./bin/control logs
# 指定服务
./bin/control logs backend
./bin/control logs frontend# 停止应用 (保留数据库)
./bin/control app down
# 停止全部
./bin/control down# 重启全部
./bin/control down
./bin/control up
# 只重启应用
./bin/control app down
./bin/control app up# 1. 拉取最新镜像
docker pull umuoy1/streamerhelper-backend:latest
docker pull umuoy1/streamerhelper-frontend:latest
# 2. 重启应用
./bin/control app down
./bin/control migrate # 运行新的数据库迁移
./bin/control app up# 1. 更新代码
cd ../web-server && git pull
cd ../web && git pull
cd ../infra
# 2. 构建并启动
./bin/control dev upcd infra
git pull
npm install# 导出数据库
docker exec streamer-postgres pg_dump -U postgres streamerhelper > backup.sql
# 恢复数据库
cat backup.sql | docker exec -i streamer-postgres psql -U postgres streamerhelperMinIO 数据存储在 Docker Volume 中:
# 查看 Volume
docker volume inspect infra_minio_data
# 备份 (需要停止服务)
docker run --rm -v infra_minio_data:/data -v $(pwd):/backup alpine \
tar czf /backup/minio-backup.tar.gz /datacp ~/.streamer-helper/settings.json ~/settings-backup.jsonPostgreSQL 密码仅在首次启动时设置。如果修改了配置文件中的密码但数据库已初始化:
方法一:手动同步密码
docker exec streamer-postgres psql -U postgres -c "ALTER USER postgres WITH PASSWORD '新密码';"方法二:重置数据库 (会丢失所有数据)
./bin/control down
docker volume rm infra_postgres_data
./bin/control up修改配置中的端口:
./bin/configure edit
# 选择 HTTP Settings,修改端口或者停止占用端口的服务:
# 查看占用端口的进程
lsof -i :7080确认 MinIO 服务正在运行:
./bin/control status | grep minio检查端口映射是否正确 (应显示 0.0.0.0:7091->7091/tcp)。
-
检查日志:
./bin/control logs backend
-
确认数据库已启动:
docker exec streamer-postgres pg_isready -
确认配置文件存在:
ls -la ~/.streamer-helper/settings.json
# 停止并删除所有容器和数据
./bin/control down
docker volume rm infra_postgres_data infra_redis_data infra_minio_data
# 删除配置
rm -rf ~/.streamer-helper
# 重新部署
./bin/configure init
./bin/control up