一、常用工具类服务
1. d2c:Docker run 命令转 Compose 配置工具
version: '3.9'services:d2c:image: crpi-xg6dfmt5h2etc7hg.cn-hangzhou.personal.cr.aliyuncs.com/cherry4nas/d2c:latestcontainer_name: d2cvolumes:- /var/run/docker.sock:/var/run/docker.sock:ro # 读取Docker套接字以获取容器信息- /vol2/1000/docker/composeout:/app/compose # Compose文件输出目录(需提前创建)environment:NAS: debian # 系统类型(可自定义)CRON: "once" # 运行模式:once(单次)/ 定时任务(如0 0 * * *)TZ: Asia/Shanghai # 时区设置NETWORK: true # 网络配置(保持默认)restart: always # 容器重启策略:始终重启
2. pt-accelerator:PT下载加速的hosts修改工具
version: '3.9'services:pt-accelerator:image: eternalcurse/pt-accelerator:latestcontainer_name: pt-acceleratorrestart: alwaysports:- "23333:23333" # 服务访问端口(可自定义)environment:TZ: Asia/Shanghaivolumes:- /etc/hosts:/etc/hosts # 映射主机hosts文件(修改会影响全局网络)- /vol2/1000/docker/pt-accelerator/config:/app/config # 配置文件目录- /vol2/1000/docker/pt-accelerator/logs:/app/logs # 日志文件目录
mp、jellyfin、tmm都需要tmdb的网络,也可以使用dnschecker手动添加
3. watchtower:自动更新Docker镜像服务
version: '3.9'services:watchtower:image: containrrr/watchtower:latestcontainer_name: watchtowerenvironment:TZ: Asia/Shanghaivolumes:- /var/run/docker.sock:/var/run/docker.sock # 必需映射,用于操作Docker容器restart: alwayscommand: --schedule "0 0 3 * * *" allinone --cleanup # 每天凌晨3点更新所有镜像并清理旧版
注意:需要配置schedule,百度一下
4. cookiecloud:网站Cookie同步管理服务(需配合浏览器插件)
version: '3.9'services:cookiecloud:image: easychen/cookiecloud:latestcontainer_name: cookiecloud-apprestart: alwaysvolumes:- /data:/data/api/data # Cookie数据存储目录ports:- "8088:8088" # 服务访问端口(可自定义)
注意:cookiecloud需要浏览器安装cookiecloud插件,mp pt站点可能需要
======================
二、电视类服务
1. allinone:电视源订阅管理服务(需官方申请密钥)
version: '3.9'services:allinone:image: youshandefeiyang/allinone:latestcontainer_name: allinoneprivileged: true # 特权模式(部分功能需要)restart: alwaysenvironment:TZ: Asia/Shanghaiports:- "35455:35455" # 服务端口(勿修改,需与客户端匹配)network_mode: host # 主机网络模式(直接使用主机端口)command: -tv=true -aesKey=xxxxx -userid=xxxxxx -token=xxxxxx # 必需参数(需替换为官方申请值)
需要使用tg申请key,网络需要魔法,没有域名情况,可以用host模式,使用ipv6地址远程使用
2. allinone_format:allinone的电视源格式转换拓展
version: '3.9'services:allinone_format:image: yuexuangu/allinone_format:latestcontainer_name: allinone_formatrestart: alwaysnetwork_mode: hostports:- "35456:35456" # 拓展服务端口(可自定义)volumes:- /path/to/config:/app/config # 配置文件目录(需替换为实际路径)
3. iptv-sources:IPTV电视源聚合与检测服务
version: '3.9'services:iptv-sources:image: herberthe0229/iptv-sources:latestcontainer_name: iptv-sourcesrestart: alwaysports:- "8081:8080" # 服务访问端口volumes:- /data:/app/m3u # IPTV源文件存储目录(M3U格式)environment:ENABLE_IPTV_CHECKER: "true" # 启用源检测功能IPTV_CHECKER_URL: "http://localhost:8084" # 检测服务地址(可自定义)CUSTOM_GITHUB_RAW_SOURCE_PROXY_URL: "https://ghproxy.net" # GitHub代理(加速源获取)
注意:容器端口不能修改,还需要使用iptv-update.sh更新源,具体百度一下!
#!/bin/sh定义日志文件路径LOG_FILE="/vol1/1000/docker/iptv-sources/update-sources.log"执行内部更新命令并重定向输出(覆盖模式)docker exec iptv-sources /bin/sh /app/update-sources.sh > $LOG_FILE 2>&1
4. iptv_api:IPTV电视源API接口服务
version: '3.9'services:iptv_api:container_name: iptv-apiimage: guovern/iptv-api:latestrestart: alwaysports:- "8124:8124" # API服务端口environment:APP_WORKDIR: /iptv-api # 工作目录LITE: 'False' # 完整模式(非精简版)APP_PORT: '8124' # 内部端口(保持一致)APP_HOST: http://localhost # 服务主机地址network_mode: hostvolumes:- /vol2/1000/docker/IPTV-API/config:/iptv-api/config # 配置文件目录- /vol2/1000/docker/IPTV-API/output:/iptv-api/output # 电视源输出目录
直接输入IP+端口就能获取电视源文件
5. php-epg:IPTV电视源管理系统(含MySQL数据库)
version: '3.9'services:php-epg:image: taksss/php-epg:latestcontainer_name: php-epgvolumes:- /epg/data:/htdocs/data # EPG数据存储目录ports:- "5678:80" # Web界面端口(可自定义)depends_on:- mysql # 依赖MySQL数据库- phpmyadmin # 依赖数据库管理工具restart: alwaysphp-epg依赖的MySQL数据库mysql:image: mysql:8.0container_name: mysqlenvironment:MYSQL_ROOT_PASSWORD: root_password # 数据库root密码(需修改为强密码)MYSQL_DATABASE: phpepg # 数据库名称MYSQL_USER: phpepg # 数据库用户MYSQL_PASSWORD: phpepg # 数据库用户密码ports:- "3306:3306" # MySQL端口(建议仅内网访问)restart: alwaysphp-epg依赖的数据库管理工具phpmyadmin:image: phpmyadmin/phpmyadmin:latestcontainer_name: phpmyadminports:- "8082:80" # Web管理界面端口environment
MA_HOST: mysql # 数据库主机名(指向mysql服务)PMA_PORT: 3306 # 数据库端口depends_on:- mysql # 依赖MySQL服务启动
访问web页面为IP+端口/manage.php 更多学习资料访问EPG-Server项目
======================
三、视频类服务
1. jellyfin:开源媒体播放平台(支持硬件转码)
version: '3.9'services:jellyfin:image: nyanmisaka/jellyfin:latestcontainer_name: jellyfinports:- "8096:8096" # Web管理界面端口- "8920:8920" # 媒体流端口devices:- /dev/dri:/dev/dri # Intel核显硬解(需主机支持)volumes:- /vol3/1000/影视库1:/media1 # 媒体文件存储目录1(需替换为实际路径)- /vol5/1000/影视库2:/media2 # 媒体文件存储目录2(需替换为实际路径)- /vol2/1000/docker/jellyfin/cache:/cache # 缓存目录- /vol2/1000/docker/jellyfin/config:/config # 配置文件目录restart: alwaysenvironment:TZ: Asia/ShanghaiPUID: 0 # 用户ID(建议改为非root用户,如1000)PGID: 0 # 组ID(建议与PUID一致)network_mode: host # 主机网络模式(避免端口冲突)
没有域名想远程访问可以容器网络改成host,ipv6访问
2. tinymediamanager:电影电视元数据刮削工具
version: '3.9'services:tinymediamanager:image: dzhuang/tinymediamanager:latest-v5 # 支持中文界面的版本container_name: tinymediamanagerports:- "5811:5800" # Web界面端口(5800为容器内部端口,勿修改)- "5900:5900" # VNC访问端口environment:TZ: Asia/ShanghaiPUID: 1000 # 请修改为当前系统用户ID(如1000)PGID: 1000 # 请修改为当前系统用户组IDvolumes:- /vol2/1000/docker/tinyMediaManager/config:/config # 配置文件目录- /vol3/1000/影视库1:/media/media1 # 媒体文件目录1(需与jellyfin一致)- /vol5/1000/影视库2:/media/media2 # 媒体文件目录2(需与jellyfin一致)restart: always
注意:使用需要tmdb的apikey,自己申请一下!界面支持中文,输入需要使用粘贴板!中文不支持
3. mkvtoolnix: 视频文件封装与处理工具
version: '3.9'services:mkvtoolnix:image: jlesage/mkvtoolnix:latestcontainer_name: mkvtoolnixrestart: alwaysports:- "5800:5800" # Web界面端口volumes:- /vol2/1000/docker/mkvtoolnix/config:/config # 配置文件目录- /vol5/1000/影视库2/Download:/storage # 待处理媒体文件目录(需替换)environment:TZ: Asia/ShanghaiENABLE_CJK_FONT: 1 # 启用中文字体支持(自动下载)
这个有对应的Windows的gui版本,可以增加减少视频的字幕文件和音轨等处理
4. moviepilot:PT资源管理服务
version: '3.9'services:moviepilot:container_name: container_name: moviepilot-v2 # 服务名称hostname: moviepilot-v2 # 主机名image: jxxghp/moviepilot-v2:latest # 镜像地址restart: alwaysstdin_open: truetty: trueports:- "3000:3000" # 服务端口1- "3001:3001" # 服务端口2volumes:- /vol3/1000/影视库1:/media # 媒体文件目录1- /vol5/1000/影视库2:/media2 # 媒体文件目录2- /vol2/1000/docker/moviepilot v2/config:/config # 配置文件目录- /vol2/1000/docker/moviepilot v2/core:/moviepilot/.cache/ms-playwright # 核心配置目录- /var/run/docker.sock:/var/run/docker.sock:ro # 读取Docker套接字(管理容器用)environment:NGINX_PORT: 3000 # Nginx端口PORT: 3001 # 服务端口PUID: 0 # 用户ID(建议改为非root)PGID: 0 # 组ID(建议与PUID一致)UMASK: 000 # 权限掩码TZ: Asia/ShanghaiAUTH_SITE: PT站点 # PT站点名称(需替换)XXX_UID: 站点ID # 站点用户ID(需替换为多个站点信息)XXX_PASSKEY: 站点key # 站点Passkey(需替换)GITHUB_PROXY: https://gh-proxy.com/ # GitHub加速代理
注意:使用需要PT站点,需要一个已经过考核的站点,配置好,使用过程中如果搜索不到pt站点的资源,关闭站点里面的模拟登陆
======================
四、音乐类服务
1. music-tag-web:音乐文件元数据刮削工具
version: '3.9'services:music-tag:image: xhongc/music_tag_web:latestcontainer_name: music-tag-webports:- "8002:8002" # Web界面端口(可自定义)volumes:- /vol3/1000/音乐:/app/media:rw # 音乐文件目录(需替换为实际路径)- /vol2/1000/docker/music_tag_web/config:/app/data # 配置文件目录restart: always
Windows端有musictag.exe代替
2. xiaomusic:小米音箱本地音乐播放控制
version: '3.9'services:xiaomusic:container_name: xiaomusicimage: hanxi/xiaomusic:latestrestart: alwaysports:"58090:8090" # 服务端口(可自定义)environment:XIAOMUSIC_PUBLIC_PORT: 58090 # 对外暴露端口(需与ports一致)TZ: Asia/ShanghaiXIAOMUSIC_SEARCH: bilisearch # 搜索源(默认 bili 搜索)XIAOMUSIC_HOSTNAME: 192.168.0.30 # NAS内网IP(需替换为实际IP)MI_PASS: xxxxx # 小米账号密码(需替换)MI_USER: 'xxxxx' # 小米账号ID(需替换)MI_DID: XXXXXX,XXXXXX,XXXXXX # 音箱设备ID(多个用逗号分隔,需替换)volumes:/vol2/1000/docker/xiaomusic:/app/conf:rw # 配置文件目录/vol3/1000/音乐:/app/music:rw # 音乐文件目录(需与music-tag一致)