部署
Docker Compose 部署
提示
如果还没有安装 Docker,请移步 Get Docker 先在部署环境中安装 Docker 服务。
将以下代码保存到文件 docker-compose.yml
中。
yaml
version: '3.8'
services:
minaplay-mysql:
image: "mysql:8"
container_name: minaplay-mysql
networks:
- minaplay-network
environment:
- TZ=Asia/Shanghai
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
- MYSQL_DATABASE=minaplay
restart: always
volumes:
- mysql-data:/var/lib/mysql
minaplay-redis:
image: "redis:latest"
container_name: minaplay-redis
networks:
- minaplay-network
restart: always
minaplay:
image: "nepsyn/minaplay:latest"
container_name: minaplay
networks:
- minaplay-network
volumes:
- ./data:/app/data
environment:
- DB_HOST=minaplay-mysql
- REDIS_HOST=minaplay-redis
- MS_ANNOUNCED_ADDRESS=127.0.0.1 # 在需要放映室语音通话服务的情况下改为宿主机外部访问地址
ports:
- "3000:3000"
- "12000-12999:12000-12999"
depends_on:
- minaplay-mysql
- minaplay-redis
restart: unless-stopped
volumes:
mysql-data:
networks:
minaplay-network:
使用命令运行 MinaPlay 服务。
shell
$ docker compose up -d
Docker cli 部署
使用 Docker 部署 MinaPlay。 复制以下命令并修改相关配置。
shell
# 创建 volume
$ docker volume create mysql-data
# 创建网络
$ docker network create minaplay-network
# 启动 MySQL
$ docker run -d \
--name minaplay-mysql \
--network minaplay-network \
--restart always \
-v mysql-data:/var/lib/mysql \
-e TZ=Asia/Shanghai \
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes \
-e MYSQL_DATABASE=minaplay \
mysql:8
# 启动 Redis
$ docker run -d \
--name minaplay-redis \
--network minaplay-network \
--restart always \
redis:latest
# 启动 MinaPlay
# 在需要放映室语音通话服务的情况下,将命令中 `-e MS_ANNOUNCED_ADDRESS=127.0.0.1` 更改为宿主机的外部访问地址
$ docker run -d \
--name minaplay \
--network minaplay-network \
--restart unless-stopped \
-v ./data:/app/data \
-p 3000:3000 \
-p 12000-12999:12000-12999 \
-e DB_HOST=minaplay-mysql \
-e REDIS_HOST=minaplay-redis \
-e MS_ANNOUNCED_ADDRESS=127.0.0.1 \
nepsyn/minaplay:latest
本地部署
准备工作
在宿主机环境下安装以下服务。
启动服务
- 启动 Aria2 服务并启用 RPC 功能(可选)。
- 启动 MySQL 服务并创建
minaplay
数据库。 - 启动 Redis 服务。
开始部署
克隆或下载本仓库到本地。
shell
$ git clone https://github.com/nepsyn/minaplay
编译服务端
使用包管理器安装依赖。
shell$ cd minaplay/packages/server $ pnpm install
注意
部分情况下, 依赖 Mediasoup 会安装不成功。可以参考如下的解决方法:
重新执行安装。
shell$ MEDIASOUP_WORKER_BIN=1 pnpm install
访问 Mediasoup 源码仓库发布页 。
下载对应平台的预编译文件压缩包。
创建目录
node_modules/mediasoup/worker/out/Release
。解压压缩包中的可执行文件到
node_modules/mediasoup/worker/out/Release
目录下。为可执行文件添加执行权限。
复制并修改配置文件。
shell$ cp .env.template .env $ vi .env
编译 MinaPlay 服务端应用程序。
shell$ pnpm run build
编译网页端
使用包管理器安装依赖。
shell$ cd ../web $ pnpm install
编译 MinaPlay 网页应用程序。
shell$ pnpm run build
移动编译后文件到后端静态资源文件夹。
shell$ mv dist ../server/dist/public
启动 MinaPlay
shell
$ cd ../server
$ node dist/main