cabernet

cabernet

Docker app from JPDVM2014's Repository

Overview

Cabernet allows control of IPTV streams. Plugins supports DaddyLive, Pluto TV, XUMO, M3U/XMLTV.XML files (SamsungTV, STIRR, DistroTV, Plex TV)

NOTICE:

By default this app doesn't provide any video sources, only the plugins access the providers streams for personal use.

Installation

1. Requirements

  • Python 3.10.12+
  • python cryptography module
  • python httpx[http2] module
  • (optional) streamlink module
  • ffmpeg and ffprobe

2. Installation

  • Download source
  • Unzip source in the installation folder
  • Launch the app by running the command "python3 tvh_main.py". This should create a data folder and a config.ini inside that folder
  • Bring up browser and go to http://ip address:6077/
  • From Plugins, install PlutoTV plugin
  • Restart Cabernet twice from Scheduled Tasks > Applications > Restart
  • Go to settings and make changes you want.
    • Logging: Change log level from warning to info if needed
  • From XML/JSON Links try some of the links

3. Services

4. Docker

You can either use docker-compose or the docker cli.

Architecture Available
X86-64
arm64
armhf

NOTES:

  • Volume for /app/.cabernet must be provided before enabling encryption.
  • armhf not available due to python cryptography only supports 64bit systems. Cryptography supported platforms

a. Using docker-compose

To install Cabernet:

1. Grab the cabernet source and unpack into a folder
2. Edit docker-compose.yml and set the volume folder locations
3. docker-compose pull cabernet
4. docker-compose up -d cabernet

b. docker cli

docker run -d \
  --name=cabernet \
  -e PUID=1000 `#optional` \
  -e PGID=1000 `#optional` \
  -e TZ=Etc/UTC `#optional` \
  -p 6077:6077 \
  -p 5004:5004 \
  -v /path/to/cabernet/data:/app/data `#optional` \
  -v /path/to/plugins_ext:/app/plugins_ext `#optional` \
  -v /path/to/cabernet/secrets:/app/.cabernet `#optional` \
  --restart unless-stopped \
  ghcr.io/cabernetwork/cabernet:latest
Parameters
Parameter Function
-p 6077 Cabernet WebUI
-p 5004 Cabernet stream port
-e PUID=1000 for UserID
-e PGID=1000 for GroupID
-e TZ=Etc/UTC specify a timezone to use, see this list.
-v /app/data Where Cabernet should store its database and config.
-v /app/plugins_ext External Plugins
-v /app/.cabernet Where encryption key is stored

c. Other Docker Info

Cabernet configuration setting Clients > Web Sites > plex_docker_ip should be set to your computers IP address and not the internal IP inside the docker container. This will allow the channels.m3u file to have the correct IP address for streaming.

d. Updating Info

Via Docker Compose:

  • Update the image:
docker-compose rm --stop -f cabernet
docker-compose pull cabernet
docker-compose up -d cabernet

Via Docker Run:

  • Update the image:

docker pull ghcr.io/cabernetwork/cabernet:latest

  • Stop the running container:

docker stop cabernet

  • Delete the container:

docker rm cabernet

  • You can also remove the old dangling images:

docker image prune

e. Via Watchtower auto-updater

docker run --rm \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower \
  --run-once cabernet

5. Default Ports

  • 6007 Web UI
  • 5004 Stream port
  • 1900 SSDP (if enabled)
  • 65001 HDHomeRun (if enabled)

6. Notes

  • URL used can include plugin and instance levels to filter down to a specific set of data
  • config.ini group tag requirements when creating an instance
    • All lower case
    • Underscore is a key character in section tags and separates the plugin name from the instance name
    • Use a single word if possible for the instance name
    • Do not change the instance name unless you go into data management and remove the instance first.
    • [plutotv_mychannels]

7. Guides

Beginners Setup: https://github.com/cabernetwork/cabernet/issues/78

8. Forum

Latest Forum: https://tvheadend.org/d/7455-daddylive-plutotv-xumo-m3u-xmltv-samsungtv-plex-tvguide-interfaces-appliance

Archived Legacy Forum: https://web.archive.org/web/20221015111333/https://tvheadend.org/boards/5/topics/43052

Enjoy

Install Cabernet on Unraid in a few clicks.

Find Cabernet in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Cabernet Review the template variables and paths Click Install

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/cabernetwork/cabernet:latest
Last Updated2026-07-17
First Seen2024-04-05

Runtime arguments

Web UI
http://[IP]:[PORT:6077]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

AppdataPathrw
Target
/app/data
Value
/mnt/user/appdata/cabernet
PluginsPathrw
Target
/app/plugins_ext
Value
/mnt/user/appdata/cabernet/plugins_ext
TimezoneVariable
Target
TZ
Value
America/New_York
WebUIPorttcp
Target
6077
Value
6077
Streaming PortPorttcp
Target
5004
Default
5004
Value
5004
Encyprtion KeyPathrw
Target
/app/.cabernet
Value
/mnt/user/appdata/cabernet/secrets
PUIDVariable
Value
99
PGIDVariable
Value
100