Streama Docker Compose终极部署指南:与MySQL和Nginx完美联动
Streama是一款功能强大的自托管流媒体服务器,让您能够搭建属于自己的Netflix式视频平台。通过Docker Compose配置,您可以快速部署包含数据库和反向代理的完整Streama环境。😊
为什么选择Streama Docker部署?
Streama的Docker Compose配置提供了开箱即用的完整解决方案,包含三个核心服务:
- MySQL数据库:用于存储用户数据、视频元数据和观看记录
- Streama应用:核心流媒体服务,提供视频播放和管理功能
- Nginx反向代理:处理SSL终止、负载均衡和静态文件服务
快速部署步骤详解
环境准备与项目克隆
首先克隆项目到本地:
git clone https://gitcode.com/gh_mirrors/st/streama
cd streama/docker
一键启动完整服务
在docker目录下执行以下命令启动所有服务:
docker-compose up -d
这个命令会同时启动MySQL数据库、Streama应用和Nginx反向代理。系统会自动创建必要的网络和存储卷。
核心配置文件解析
Docker Compose配置:docker/docker-compose.yml 定义了三个关键服务:
- MySQL服务使用官方MySQL 5.7镜像,预设了streama数据库和用户
- Streama应用构建自当前目录,配置了MySQL连接参数
- Nginx代理暴露80端口,提供WebSocket支持和文件上传优化
数据库配置:grails-app/conf/application.yml 包含了多环境数据源设置,支持H2和MySQL数据库。
关键配置参数说明
MySQL数据库配置
在docker-compose.yml中,MySQL服务预设了以下环境变量:
MYSQL_ROOT_PASSWORD: streama_root_passwordMYSQL_USER: streamaMYSQL_PASSWORD: streama_passwordMYSQL_DATABASE: streama
Streama应用配置
Streama容器通过环境变量连接到MySQL:
ACTIVE_PROFILE: mysqlMYSQL_HOST: mysqlMYSQL_PORT: 3306MYSQL_DB: streama
Nginx反向代理优化
Nginx配置 docker/nginx/nginx.conf 针对流媒体场景进行了专门优化:
- 支持128GB大文件上传
- WebSocket连接支持
- 正确的代理头设置
数据持久化策略
配置中定义了多个持久化卷确保数据安全:
db_data: MySQL数据库文件app_data: Streama应用数据proxy_reverse_data: Nginx配置数据
常见问题解决方案
数据库连接失败
检查MySQL容器是否正常启动,确认环境变量配置正确。可以通过以下命令查看日志:
docker logs mysql
文件上传大小限制
Nginx已配置支持超大文件上传(128GB),如需调整可在nginx.conf中修改client_max_body_size参数。
性能优化建议
- 内存分配:为MySQL分配足够内存处理视频元数据
- 网络配置:确保容器间网络通信正常
- 存储优化:使用SSD存储提升视频加载速度
安全配置要点
- 修改默认的数据库密码
- 配置适当的防火墙规则
- 定期备份数据库和配置文件
通过这个完整的Docker Compose配置,您可以在几分钟内部署功能齐全的Streama流媒体服务器,享受自托管视频平台的便利与自由!🚀
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考






