docker create \
--name sstvproxy \
--hostname sstvproxy \
-p 8098:8098 -p 8099:8099 \
-e PUID=<UID> -e PGID=<GID> \
-e TZ=<timezone> \
-e YAP_USERNAME=<username> -e YAP_PASSWORD=<password> \
-e YAP_SERVICE=<short_code_for_smoothstreams_service> \
-v </path/to/appdata>:/config \
stokkes/sstvproxy
This container is based on alpine linux with s6 overlay from LinuxServer. For shell access whilst the container is running do docker exec -it sstvproxy /bin/bash.
Currently only the master branch is available from YAP.
The parameters are split into two halves, separated by a colon, the left hand side representing the host and the right the container side. For example with a port -p external:internal - what this shows is the port mapping from internal to external of the container. So -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 http://192.168.x.x:8080 would show you what's running INSIDE the container on port 80.
So INSIDE the container, 8098 is mapped to the local port and 8099 is mapped to the external port. You can map those to your host on any port you want. The right side of the colon must always be 8098/8099 or this container won't work.
-p 8098
- YAP exposed local port-p 8099
- YAP exposed external port-v /config
- YAP App data (settings files and cache)-e PGID
for GroupID - see below for explanation-e PUID
for UserID - see below for explanation-e TZ
for timezone EG. Europe/London, America/NewYork-e YAP_GIT_BRANCH
for specifying which branch to use (master
ordev
), defaults tomaster
if not set-e YAP_SERVICE
for code for SS service EG.viewms
, etc.-e YAP_USERNAME
for SS username-e YAP_PASSWORD
for SS password-e YAP_SERVER
for SS server EG.dnae2
,dmaw2
, etc.-e YAP_QUALITY
for quality (1
for HD,2
for HQ,3
for SD)-e YAP_STREAM
for stream type (rtmp
orhls
)-e YAP_EXTERNALIP
for specifying external IP to use-e YAP_KODIPORT
for Kodi port
Sometimes when using data volumes (-v
flags) permissions issues can arise between the host OS and the container. We avoid this issue by allowing you to specify the user PUID
and group PGID
. Ensure the data volume directory on the host is owned by the same user you specify and it will "just work" ™.
In this instance PUID=1001
and PGID=1001
. To find yours use id user
as below:
$ id <dockeruser>
uid=1001(dockeruser) gid=1001(dockergroup) groups=1001(dockergroup)
The /config
folder in the container contains the two settings files (proxysettings.json
and advancedsettings.json
) as well as the cache
folder.
You'll notice the app is not in this folder. During the container initialization process, symlinks are created withini the app folder (located in /app/sstvproxy
in the container). This is done to allow new versions of YAP without erasing your custom configurations.
You'll notice there are many environment variables for YAP that you can pass when creating the container. Environment variables will take precedence over manual changes to proxysettings.json
and will persist across container restarts. This means that if you set the YAP_USERNAME
and YAP_PASSWORD
for instance when you create the container, these will always be placed in the proxysettings.json
file, even if you edit the file manually with a text editor.
If you prefer not having this occur, do not pass any environment variables and instead just edit the proxysettings.json file manually and drop it in your local folder mapped to /config
inside the container.
This behaviour may change at a later time.
Refer to vorghahn's Plex setup image as a starting point.
It's recommended you set a --hostname
for each of your containers to make inter-container communication easier (that way you don't have to use IP addresses).
- Login to Plex Web
- Click on the settings icon in the top left
- Click on the
Live TV & DVR
section on the left - Click the button to
SETUP PLEX DVR
(orAdd Device
if you had another device already setup) - In the popup that appears, click on
Don't see your device? Enter its network address manually
- In the Device Address field, enter
http://sstvproxy:8098/sstv
(or whatever container name you've given to your docker container) and clickConnect
- The
Continue
button should turn orange, allowing you to continue. ClickContinue
- In the nex screen, ensure
Cable
is selected on the left and choose your country. Then clickContinue
- You'll now setup the Electronic Program Guide (EPG), click on
Have an XMLTV program guide on your server? Click here to use that instead
. - In the XMLTV PROGRAM GUIDE field, enter
http://sstvproxy:8098/sstv/epg.xml
(or whatever container name you've given to your docker container) and clickContinue
- NB: It's possible you receive an error:
Invalid or missing file
. If that's the case, clickPrevious
and try again. It should work after a few attempts - On the next DVR Setup screen, click
Continue
(or if there are any channels you don't want, de-select them from the list first). - Your setup is complete. Plex will pull in the EPG data which could take a few minutes.
Docker-compose is a quick way to get containers up and running in a project together. They are all linked on the same docker network and it's easy to group containers together (i.e.:, Plex, this image, sonarr, radarr, etc.)
This is the easiest way to get going. Below is an example docker-compose.yml
version 2 file.
version: '2'
services:
plex:
container_name: plex
hostname: plex
image: plexinc/pms-docker
restart: unless-stopped
ports:
- 32400:32400/tcp
environment:
- TZ=America/Toronto
- PLEX_UID=1000
- PLEX_GID=1000
volumes:
- ./appdata/plex:/config
- ./appdata/plex/transcode:/transcode
- /path/to/media:/media
- /tmp:/tmp
sstvproxy:
container_name: sstvproxy
hostname: sstvproxy
image: stokkes/sstvproxy
restart: unless-stopped
ports:
- 8098:8098/tcp
- 8099:8099/tcp
environment:
- TZ=America/Toronto
- PUID=1000
- PGID=1000
- YAP_SERVICE=viewms
- YAP_USERNAME=USERNAME
- YAP_PASSWORD=PASSWORD
- YAP_STREAM=rtmp
- YAP_QUALITY=1
- YAP_SERVER=dnae4
volumes:
- ./appdata/sstvproxy:/config
If you just want to create a container manually, here's an example command that uses all the variables (change to suit):
docker create \
--name sstvproxy \
--hostname sstvproxy \
-p 8098:8098 -p 8099:8099 \
-e PUID=1000 -e PGID=1000 \
-e TZ=America/Toronto \
-e YAP_USERNAME=MYUSERNAME -e YAP_PASSWORD=MYPASSWORD \
-e YAP_SERVICE=viewms -e YAP_STREAM=rtmp \
-e YAP_QUALITY=1 -e YAP_SERVER=dnae4 \
-v /home/user/.config/sstvproxy:/config \
stokkes/sstvproxy
2017-12-21: Pull latest version from git on create, allow specifying git branch to pull 2017-12-18: Initial release