本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

本镜像基于OliveTin构建,专为Channels DVR用户设计,提供一站式管理解决方案。通过集成多DVR服务器支持、邮件通知、日志管理及Portainer集成等功能,帮助用户简化Channels DVR的日常运维与监控。
适用于所有使用Channels DVR的用户,尤其适合:
| 环境变量 | 默认值 | 描述 |
|---|---|---|
| TAG | latest | 镜像标签,可选值:latest、test |
| DOMAIN | ***用户的Tailnet(如tailxxxxx.ts.net)或本地域名 | |
| HOST_PORT | 1337 | 主机映射端口,容器内固定使用1337端口 |
| CHANNELS_DVR_HOST | Channels DVR主服务器主机名或IP | |
| CHANNELS_DVR_PORT | 8089 | Channels DVR主服务器端口 |
| CHANNELS_DVR2_HOST | 备用DVR服务器2主机名或IP(可选) | |
| CHANNELS_DVR2_PORT | 备用DVR服务器2端口(可选) | |
| CHANNELS_DVR3_HOST | 备用DVR服务器3主机名或IP(可选) | |
| CHANNELS_DVR3_PORT | 备用DVR服务器3端口(可选) | |
| CHANNELS_CLIENTS | 接收通知的Channels DVR客户端列表(空格分隔) | |
| ALERT_SMTP_SERVER | 发送告警邮件的SMTP服务器(如smtp.gmail.com:587) | |
| ALERT_EMAIL_FROM | 告警邮件发送地址 | |
| ALERT_EMAIL_PASS | SMTP应用密码(非日常***密码) | |
| ALERT_EMAIL_TO | 告警邮件接收地址 | |
| UPDATE_YAMLS | true | 是否自动更新配置文件yaml |
| UPDATE_SCRIPTS | true | 是否自动更新所有脚本 |
| TZ | 时区设置(如US/Eastern、Asia/Shanghai) | |
| PORTAINER_TOKEN | Portainer API令牌 | |
| PORTAINER_HOST | $CHANNELS_DVR_HOST | Portainer主机名或IP |
| PORTAINER_PORT | 9443 | Portainer HTTPS端口 |
| PORTAINER_ENV | 2 | Portainer环境ID |
| PERSISTENT_LOGS | false | 是否启用日志持久化 |
| 卷挂载路径 | 用途 | 配置说明 |
|---|---|---|
| /config | 配置文件存储 | 通过HOST_DIR环境变量指定主机目录,格式:HOST_DIR=/path/to/host/dir |
| /mnt/[hostname-port] | DVR媒体文件共享 | 通过DVR_SHARE指定主机目录或Docker卷,映射到DVR服务器的媒体共享 |
| /mnt/[hostname-port]_logs | DVR日志共享 | 通过LOGS_SHARE指定主机目录或Docker卷,映射到DVR服务器的日志共享 |
| /mnt/[hostname-port]_ta | TubeArchivist视频共享 | 通过TUBEARCHIVIST_SHARE指定主机目录或Docker卷,映射到TubeArchivist视频共享 |
| /var/run/docker.sock | Docker socket | 用于与Docker引擎通信,实现容器管理功能 |
version: '3.9' services: olivetin: image: bnhf/olivetin:${TAG:-latest} container_name: ${OLIVETIN_NAME:-olivetin} hostname: ${OLIVETIN_NAME:-olivetin} dns_search: ${DOMAIN:+${DOMAIN}} ports: - ${HOST_PORT:-1337}:1337 environment: - OLIVETIN_COMPOSE=2025.03.26 - CHANNELS_DVR=${CHANNELS_DVR_HOST}:${CHANNELS_DVR_PORT:-8089} - ${CHANNELS_DVR2_HOST:+CHANNELS_DVR_ALTERNATES=${CHANNELS_DVR2_HOST}:${CHANNELS_DVR2_PORT}} ${CHANNELS_DVR3_HOST:+${CHANNELS_DVR3_HOST}:${CHANNELS_DVR3_PORT}} - CHANNELS_CLIENTS=${CHANNELS_CLIENTS} - ALERT_SMTP_SERVER=${ALERT_SMTP_SERVER} - ALERT_EMAIL_FROM=${ALERT_EMAIL_FROM} - ALERT_EMAIL_PASS=${ALERT_EMAIL_PASS} - ALERT_EMAIL_TO=${ALERT_EMAIL_TO} - UPDATE_YAMLS=${UPDATE_YAMLS:-true} - UPDATE_SCRIPTS=${UPDATE_SCRIPTS:-true} - TZ=${TZ} - PORTAINER_TOKEN=${PORTAINER_TOKEN} - PORTAINER_HOST=${PORTAINER_HOST:-$CHANNELS_DVR_HOST} - PORTAINER_PORT=${PORTAINER_PORT:-9443} - PORTAINER_ENV=${PORTAINER_ENV:-2} - PERSISTENT_LOGS=${PERSISTENT_LOGS:-false} volumes: - ${HOST_DIR:-/unused}${HOST_DIR:+/olivetin:/config} - ${DVR_SHARE:-/unused}${DVR_SHARE:+:/mnt/${CHANNELS_DVR_HOST}-${CHANNELS_DVR_PORT}} - ${LOGS_SHARE:-/unused}${LOGS_SHARE:+:/mnt/${CHANNELS_DVR_HOST}-${CHANNELS_DVR_PORT}_logs} - ${TUBEARCHIVIST_SHARE:-/unused}${TUBEARCHIVIST_SHARE:+:/mnt/${CHANNELS_DVR_HOST}-${CHANNELS_DVR_PORT}_ta} - /var/run/docker.sock:/var/run/docker.sock restart: unless-stopped static-file-server: image: halverneus/static-file-server:latest container_name: ${SFS_NAME:-static-file-server} dns_search: ${DOMAIN} ports: - ${HOST_SFS_PORT:-0}:8080 environment: - FOLDER=${FOLDER:-/web} volumes: - ${HOST_DIR:-/unused}${HOST_DIR:+/olivetin/data:${FOLDER:-/web}} restart: unless-stopped
TAG=latest DOMAIN=localdomain tailxxxxx.ts.net HOST_PORT=1337 CHANNELS_DVR_HOST=local-server CHANNELS_DVR_PORT=8089 CHANNELS_DVR2_HOST=another-server CHANNELS_DVR2_PORT=8089 CHANNELS_CLIENTS=appletv4k firestick-master amazon-aftkrt ALERT_SMTP_SERVER=smtp.gmail.com:587 ALERT_EMAIL_FROM=*** ALERT_EMAIL_PASS=xxxxxxxxxxxxxxxx ALERT_EMAIL_TO=*** UPDATE_YAMLS=true UPDATE_SCRIPTS=true TZ=US/Mountain HOST_DIR=/data DVR_SHARE=/mnt/dvr LOGS_SHARE=/mnt/channelsdvr TUBEARCHIVIST_SHARE=/mnt/dvr HOST_SFS_PORT=8080 FOLDER=/web PORTAINER_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx PORTAINER_HOST=docker-host PORTAINER_PORT=9443 PORTAINER_ENV=2 PERSISTENT_LOGS=false
.env,根据实际需求配置参数docker-compose.yml 文件,复制上述基础配置docker-compose up -dhttp://<主机IP>:<HOST_PORT>(默认1337端口)打开Web界面如需管理多个DVR服务器,需配置:
CHANNELS_DVR2_HOST 和 CHANNELS_DVR2_PORT:第二台DVR服务器信息CHANNELS_DVR3_HOST 和 CHANNELS_DVR3_PORT:第三台DVR服务器信息DVR2_SHARE、LOGS2_SHARE、TUBEARCHIVIST2_SHARE 等如需使用Docker外部卷挂载共享目录,可取消注释 volumes 部分并配置:
volumes: channels-dvr: external: true channels-dvr-logs: external: true tubearchivist: external: true
然后在环境变量中设置 DVR_SHARE=channels-dvr 等对应卷名。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429