Recommended by xTeVe
Image Maintainer: LeeD <hostmaster@dnsforge.com>
If you enjoy our docker image and would like to buy us a beer, well.. we're not going to stop you!! click here
For support click below to visit our xTeVe Discord server:
xTeVe is a M3U proxy server for Plex, Emby and any client and provider which supports the .TS and .M3U8 (HLS) streaming formats.
xTeVe emulates a SiliconDust HDHomeRun OTA tuner, which allows it to expose IPTV style channels to software, which would not normally support it. This Docker image includes the following packages and features:
The recommended default container settings are listed in the docker run command listed below:
docker run -it -d --name=xteve --network=host --restart=always -v $PATH/xteve:/home/xteve/conf dnsforge/xteve:latest
To isolate the container in bridge mode use 'docker run' as follows. **Only use bridge mode if you fully understand its use** Generally for most users we recommend host mode.
In bridge mode the docker container will assign it's own dockernet ip address (usually in the 172.17.x network).
docker run -it -d --name=xteve -p 34400:34400 --restart=always -v $PATH/xteve:/home/xteve/conf dnsforge/xteve:latest
If you plan to use guide2go simply, include the GUIDE2GO Volume to be able to access your files directly from the host. Existing users can also copy their existing .yaml configuration files in to this location.
docker run -it -d --name=xteve --network=host --restart=always -v $PATH/xteve:/home/xteve/conf -v $PATH/guide2go:/home/xteve/guide2go/conf dnsforge/xteve:latest
The default Locale is configured as: America/New_York (EST) and the Web UI can be accessed at http://$HOST_IP:34400/web/
You can customize the container installation by passing options with 'docker run' or by selecting the "Environment" tab in your docker GUI. Below are a few examples of customizing the container configuration. Please see the "Parameters" table below for a list of all supported options.
Custom Locale (Timezone):
docker run -it -d --name=xteve --network=host --restart=always -e TZ=Europe/London -v $PATH/xteve:/home/xteve/conf dnsforge/xteve:latest
Custom Port and Locale:
docker run -it -d --name=xteve --network=host --restart=always -e TZ=Europe/London -e XTEVE_PORT=8080 -v $PATH/xteve:/home/xteve/conf dnsforge/xteve:latest
This container is configured with the following default environmental variables, for reference, here are the paths of the xTeVe installation:
Variable | Path |
---|---|
$XTEVE_HOME | /home/xteve |
$XTEVE_BIN | /home/xteve/bin |
$XTEVE_CONF | /home/xteve/conf |
$XTEVE_CONF/data | /home/xteve/conf/data |
$XTEVE_CONF/backup | /home/xteve/conf/backup |
$GUIDE2GO_HOME | /home/xteve/guide2go |
$GUIDE2GO_CONF | /home/xteve/guide2go/conf |
Parameter | Description |
---|---|
--name | Name of container image |
--network | Set network type [ host | bridge ] |
--restart | Enable auto restart for this container |
-e TZ=Europe/London | Set custom Locale |
-p 34400 | Default container port mapping [ 127.0.0.1:34400:34400 ] |
-e XTEVE_PORT=8080 | Set custom xTeVe Port |
-e XTEVE_BRANCH=beta | Set xTeVe git branch [ master|beta ] Default: master |
-e XTEVE_DEBUG=1 | Set xTeVe debug level [ 0-3 ] Default: 0=OFF |
-e XTEVE_API=0 | Enable/Disable API [ beta ] Default: 1=ON |
-e GUIDE2GO_SERVER_HOST=10.0.0.1 | Guide2go Token server [ host | ip ] |
-e GUIDE2GO_SERVER_PORT=31337 | Guide2go Token port [ port ] |
-v | Set volume mapping [ -v ~xteve:/home/xteve/conf ] |
dnsforge/xteve:latest | Latest Docker image |
To connect to the xTeVe container to run local commands, use the following docker command to start a bash shell:
docker exec -it < container_name > /bin/bash
You will automatically be logged in as the root user. Type "su - xteve" to change to the xTeve user.
Run the container with the 'docker run' command with any desired parameters from the table above.
mkdir -p $PATH/xteve
docker run -it -d --name=xteve --network=host --restart=always -v $PATH/xteve:/home/xteve/conf dnsforge/xteve:latest
Linux with Guide2go:
mkdir -p $PATH/xteve
mkdir -p $PATH/guide2go
docker run -it -d --name=xteve --network=host --restart=always -v $PATH/xteve:/home/xteve/conf -v $PATH/guide2go:/home/xteve/guide2go/conf dnsforge/xteve:latest
Run the container with the 'docker run' command with any desired parameters from the table above. Alternatively you can launch this image in the Synology Docker GUI which is equivalent to 'docker run'.
mkdir /volume1/docker/xteve
docker run -it -d --name=xteve --network=host --restart=always -v /volume1/docker/xteve:/home/xteve/conf dnsforge/xteve:latest
Synology with Guide2go:
mkdir /volume1/docker/xteve
mkdir /volume1/docker/guide2go
docker run -it -d --name=xteve --network=host --restart=always -v /volume1/docker/xteve:/home/xteve/conf -v /volume1/docker/guide2go:/home/xteve/guide2go/conf dnsforge/xteve:latest
To use this feature you will need to purchase a Schedules Direct subscription for $25.00/yr. You can configure your guide2go lineup using the following command:
guide2conf --username < username > --password < password > --max-days < max_days [1-14] > --name < lineup_name >When prompted configure your lineup and channels using these options:
Select "2. Add lineup" from the menu
Choose Country
Choose Postcode
Choose Provider
Select "4. Manage channels" from the menu
Choose "ALL" for your selected lineup.
NOTE: We do NOT recommend adding more than (1) Lineup to a single configuration file. If you want to run multiple lineups, follow the directions below for "Additional Guide2go Lineups".
Choose "0" to exit and then follow the prompts to run the initial lineup and automatically add a cron job to automate the guide2go data download..
You can now use the new guide2conf command line utility to automatically create a daily cron job. Alternatively you can manually modify the crontab by running 'crontab -e -u xteve' from a command prompt inside the container. You will need to add the guide2go XMLTV file located in $XTEVE_CONF/data/guide2go.xml to xTeVe->XMLTV in the xTeVe UI once it has been generated on the first run.
Manual crontab configuration:
# Run Schedules Direct crontab daily at 1:15 AM EST
15 1 * * * /home/xteve/bin/guide2conf --config /home/xteve/guide2go/conf/< lineup_name >.yaml
You can have up to (4) separate guide2go lineups with one SD subscription. If you choose to create additional lineups we recommend you create separate guide2go configuration (YAML) files for each one. We also recommend staggering the lineup cron times, as Schedules Direct does limit how many concurrent connections you can have to their API at any one time. Follow the following steps to create additional lineups and crons.
guide2conf --username < username > --password < password > --max-days < max_days [1-14] > --name < lineup_name >
Select "2. Add lineup" from the menu
Choose Country
Choose Postcode
Choose Provider
Select "4. Manage channels" from the menu
Choose "NONE" for your original lineup
Choose "ALL" for your new lineup
Choose "0" to exit
The YAML file will now be written to $GUIDE2GO_CONF/< lineup_name >.yaml
Optionally automatically create a daily cron by following the prompts, otherwise you can manually add a cron later with the following command:
crontab -e -u xteve
Manual crontab configuration:
# Run Schedules Direct crontab daily at 1:15 AM EST
15 1 * * * /home/xteve/bin/guide2conf --config /home/xteve/guide2go/conf/< lineup_name >.yaml
To create an automated lineup and cron to run the zap2XML configuration on a daily basis, you will need to sign up for a free Zap2it account. You can then create the crontab using either the guide2conf utility or manually create the crontab by running the 'crontab -e -u xteve' command from a command prompt inside the container. You will need to add the zap2XML XMLTV file located in $XTEVE_CONF/data/< lineup_name >.xml to xTeVe->XMLTV once it has been generated on the first run.
guide2conf --username < username@domain.com > --password < password > --max-days < max_days[1-14] > --name < lineup_name >
Manual crontab configuration:
# Run zap2it crontab daily at 1:15 AM EST
15 1 * * * /home/xteve/bin/zap2xml.pl -u username@domain.com -p ******** -U -c $XTEVE_CACHE/zap2xml/< lineup_name> -o $XTEVE_CONF/data/< lineup_name >.xml
NOTE: Support for the tvguide.com service is no longer available as the service was discontinued.
Enjoy!