Docker一键部署学习直播平台

💡
SyncTV的项目,它提供了远程同步观看电影、视频教育和直播的功能。这个项目的一些主要特点包括:1、同步观看:确保每个观看视频的人都在视频的同一点,支持暂停、倒带或快进同步;2、 剧场特性:提供聊天和弹幕聊天功能,以便在观看视频时进行交流;3、 代理功能:帮助观看可能连接到源服务器较慢的视频和直播。 4、视频和直播解析:支持各种格式,如Alist、Bilibili和Emby的视频以及直播。
重要提示:这个程序是一个免费的开源项目。它的目标是在互联网上播放视频文件,方便多人一起观看视频和学习。使用时请遵守相关法律法规,切勿滥用。在使用本程序前,你应了解并承担相应的风险,包括但不限于版权纠纷、法律的限制等。
官网Demo 项目地址

环境准备:

  • VPS一台 最低配置1核1G 带宽1M即可
  • 服务器系统:本文演示的系统是ubuntu20.04(LTS)
  • 域名一个
  • 安装好Docker、Docker-compose
Nginx Proxy Manager安装教程
  • SSH工具:
FinalShell官网

部署过程:

一、系统初始化,更新索引

#更新索引库
sudo apt-get update

二、创建synctv容器

#切换到root用户
sudo -i

#在root目录下递归的创建一些文件夹,如果父目录不存在则先创建出来
mkdir -p /root/data/docker_workspace/synctv

#进入到synctv目录下
cd /root/data/docker_workspace/synctv

#创建一个docker-compose.yml配置文件
touch docker-compose.yml

#编辑该文件
vim docker-compose.yml

将下面代码复制到docker-compose.yml中保存即可(指定的端口事先要在服务器内部和云服务商后台开放)

version: '3.3'  # 指定使用的 Docker Compose 文件版本

services:
  synctv:  # 定义一个名为 synctv 的服务
    image: 'synctvorg/synctv:latest'  # 指定服务使用的镜像,这里使用最新版本的 synctv 镜像
    container_name: synctv  # 设置容器的名称为 synctv
    restart: always  # 设置容器总是重启,无论退出状态如何
    ports:
      - '8080:8080/tcp'  # 将容器的 8080 端口(TCP)映射到宿主机的 8080 端口
      - '9090:8080/udp'  # 将容器的 8080 端口(UDP)映射到宿主机的 9090 端口
    volumes:
      - '/root/data/docker_workspace/synctv:/root/.synctv'  # 将宿主机的 /root/data/docker_workspace/synctv 目录挂载到容器的 /root/.synctv 目录
    environment:
      - PUID=0  # 设置容器中进程的用户 ID 为 0(通常是 root 用户)
      - PGID=0  # 设置容器中进程的组 ID 为 0(通常是 root 组)
      - UMASK=022  # 设置文件创建的权限掩码为 022
      - TZ=Asia/Shanghai  # 设置容器的时区为亚洲/上海

UMASK值实际上是一个“减去”的过程,从完全开放的权限(通常是666对于文件和777对于目录)中减去UMASK值,来得到新创建文件或目录的默认权限。

如果UMASK被设置为022,那么:

对于文件,默认权限将是666 - 022 = 644,即所有者有读写权限,组用户和其他用户只有读权限。
对于目录,默认权限将是777 - 022 = 755,即所有者有读写执行权限,组用户和其他用户只有读执行权限。

#拉取项目镜像并在后台启动容器
docker-compose up -d

登录配置:

打开浏览器,地址栏内输入服务器IP:8080端口形式访问。默认登录用户名和密码均为root。

点击右上角的Root用户名修改账号密码,并进入“平台绑定”中添加自己的相应的账号即可播放自己想要的视频源。

以添加Bilibili视频源为例:

注意,如果你不登录B站的账号,默认的分辨率是较低的,如果你有会员账号,那么通过你账号分享直播出去的链接对方也可以自行选择高清分辨率(只会分享你的直播信息源,对方并不会用到你的账号,说白了就是个投屏直播)。

该项目也可以直接通过你云盘账号的分享链接给对方在线观看、或者是你本地电影的分享以及在线直播等。

支持开启联合验证登录

测试完后,就可以去自己的NPM中将你的域名和IP进行绑定了。某些测试场景必须要绑定域名后才能实现,例如链接分享。