本帖最后由 clion007 于 2024-12-22 11:03 编辑
折腾缘由:
之前因为一些原因,折腾制作适合中国网友使用的Jellyfin,并分享到了恩山,详情可见我之前的帖子,Jellyfin 中国特别优化版--比官方更好的jellyfin 镜像选择 。因为众所周知的原因,大家都知道电视APP全都用不了了,于是就想把它一起集成到Jellyfin和kodi(电视端)中,网上找到一些直播源,我看论坛里面也有好多坛友抓取了分享的直播源,但是每个人抓取的格式规范不一,另外单一源的限制也比较明显,并且管理上很不方便,后来在网上看到有个大神在3年前写了一个软件叫xteve,可以说是管理频道和源的神器,这个软件本身非常小,是德国人搞的,还支持缓存的功能(我认为这个功能没啥用),但是网上能找到的可用docker几乎都是支持缓存的,里面集成了一堆解码和编码的软件包,导至镜像体积非常的大。因此,这两天花点时间研究了一下,自己做了一个适合中国,需要小体积的,不用缓存的网友的docker镜像。
关于xteve的具体功能和作用,我就不在这里一一做介绍了,网上搜一下,有比较详细的介绍文章和视频的。这个帖子也不是介绍xteve的,所以不做过多介绍。
我看网上分享源和xteve如何使用的文章视频比较多,好像还没有人做过类似的项目,因此分享出来,给有需要的朋友。相关的镜像我已经发布到阿里云和dockerhub的容器仓库,国内使用,推荐阿里云,速度上dockerhub你懂的。
镜像特点: - 镜像是基于alpine linux的,体积非常小,一共只有8M;
- 所含软件包来自开源的xteve官方及alpine官方,安全有保障,不含其它任何不必要的东西;
- 不支持xteve端进行视频的缓存,减掉不必要的包,专注于频道及peg信息的管理;
- 默认使用80端口运行,要求给容器分配独立的内网ip(可使用虚拟网桥,macvlan或ipvlan),以便m3u及xml文件url不需要带端口访问;
- 可以在配置文件中修改为自定义的非80端口运行;
- 配置文件支持宿主机本地持久化,无需每次运行都进行配置;
- 容器以非root用户运行,加强容器和服务器的安全性;
- 默认时区为中国的东8区,不会出现时间错误的问题;
- xteve官方3年前就停止了更新,最新版本为2.2.0,如果以后官方更新,镜像会自动更新;
- 本镜像只支持X86平台,不支持其它平台,以后也不打算支持。
更多关于本docker镜像的详细信息,如有兴趣,可以访问我的github代码仓库中查看:
Github项目上的说明介绍:
Xteve is a m3u proxy server for Plex DVR and Emby Live TV, it is also could be used for jellyfin, kodi, potplayer and other software which is support m3u stream player on pc or Apps on mobiole and smart TV.
This docker project is based on xteve-project without ffmpeg and vlc player, with only 8M size from my base alpine linux image.
使用方法我就不再一一写中文了,直接把代码仓库的说明文档内容复制过来。
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
docker-compose - networks:
- vnet:
- name: vnet
- driver: bridge
- ipam:
- driver: default
- config:
- - gateway: 10.0.0.1
- subnet: 10.0.0.0/24
- driver_opts:
- com.docker.network.bridge.name: vnet
- services:
- xteve:
- container_name: Xteve
- image: registry.cn-chengdu.aliyuncs.com/clion/Xteve:latest
- environment:
- - UMASK=022
- - PUID=1000
- - PGID=1000
- - TZ=Asia/Shanghai
- networks:
- vnet:
- ipv4_address: 10.0.0.9
- volumes:
- - /etc/localtime:/etc/localtime:ro
- - /path/to/xteve/config:/config
- ports:
- - 34400:34400 #optional
- restart: unless-stopped
复制代码
Docker cli - docker run -d \
- --name=Xteve \
- --net='vnet' \
- --ip='10.*.*.*' \
- -e 'UMASK'='022' \
- -e PUID=1000 \
- -e PGID=1000 \
- -p 34400:34400 `#optional` \
- -v /path/to/config:/config \
- --restart unless-stopped \
- registry.cn-chengdu.aliyuncs.com/clion/xteve
复制代码
注:上面命令中的vnet是我在宿主机上创建的网桥网络,需要改成自己的虚拟网络,使用compose的方式部署会自动创建vnet虚拟网络;/path/to/config是指想要保存配置文件的宿主机中的路径。
我自己测试使用一切都正常,如有什么需要交流的问题,可以回复留言,我会隔三差五来论坛看看,然后尽量答复。
补充:
1、想要实现内网通过本地自定义的域名访问,可以在内网路由器上将Xteve的ip绑定到一个自定义的本地域名上,然后就可以通过域名访问了; 2、如果觉得进入管理页面每次url地址域名后面还要输入一个/web路径比较麻烦,可路由器或者nas上搭建Nginx服务器,可以配置 / 根路径302重定向到/web路径,重载nginx后直接访问域名就进入管理页面了,可以参考配置如下:
- server {
- listen 80;
- listen [::]:80;
- # listen 443 ssl;
- # listen [::]:443 ssl;
- http2 on;
- server_name tvpd.net; #改成你自己的域名
-
- # The default `client_max_body_size` is 1M, this might not be enough for some posters, etc.
- client_max_body_size 20M;
- location = / {
- return 302 http://$host/web/;
- #return 302 https://$host/web/;
- }
- location / {
- # Proxy main Xteve traffic
- proxy_pass http://10.0.0.9; #改成你自己的ip
- proxy_set_header Host $http_host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $remote_addr;
- proxy_set_header X-Forwarded-Proto $scheme;
- proxy_set_header X-Forwarded-Protocol $scheme;
- proxy_set_header X-Forwarded-Host $host;
- proxy_http_version 1.1;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection upgrade;
- # Disable buffering when the nginx proxy gets very resource heavy upon streaming
- proxy_buffering off;
- }
- }
复制代码
发帖注意事项
请勿胡乱发帖:https://www.right.com.cn/forum/thread-8307840-1-1.html
账户手机验证:https://www.right.com.cn/forum/home.php?mod=spacecp&ac=plugin&id=jzsjiale_sms:home
|