sagetvopen-sagetv-server-opendct-java8

sagetvopen-sagetv-server-opendct-java8

Official

Docker app from jusjoken's Repository

Overview

SageTV is an Open Source PVR and Media Player

  • including OpenDCT: An open source digital cable tuner network encoder for SageTV

Configuration

  • /opt/sagetv - This is the base directory for the server and other sagetv related files. Under this location there can be a 'server' directory and if the existing 'server' directory exists it will be upgraded.
  • /var/media - Path for sagetv recordings and videos. Under this directory there should be (or will be created) a 'tv' directory where SageTV recordings will get recorded.
  • /var/tv - Path for tv recordings if you want to store those in an alternate location.
  • /var/mediaext - Path for extra media files. This can be whatever you want, but you will configure SageTV to look for videos, music, pictures, etc from this location.

Permissions

  • PUID - Should be the 'nobody' user for Unraid
  • PGID - Should be the 'users' group for Unraid
  • VIDEO_GUID - Should be the 'video' group for Unraid (used if you use PCI/USB video capture devices)

Notes

  • SageTV will need to use 'host' or 'br0' (set a unique IP) networking, so while the ports are defined, they are not required to be edited. Without 'host' or 'br0', sagetv will think your network clients are connecting as remote placeshifters, and present the placeshifter login. If using br0 mode (preferred) as the IP is unique the WebUI port of 8080 will not have any issues. If running in host mode, make sure you don't have other docker containers that are using port 8080. If you do, then EITHER change SageTV Jetty Port (in plugin configuration) after install, or, update the other docker containers to NOT use port 8080.
  • On every Docker start, it will check for a new version of SageTV and install it, if it exists. You can force it to stay on a sepcific version by setting the Version in the template. The Version must match exactly the version tag from the github releases.
  • There are Java 8, 11, and 16 version of these containers. Java 8 will be the default moving forward, but it currently has issues with the the /apps/ path in the Jetty Web UI.

###Container version: 2.0.7

This file outlines the overall directory layout for the SageTV codebase, what all the various components in it and what you need to build it on different platforms.

Directory Layout

build - build files/scripts for Linux buildwin - misc. files for Windows & Linux installs, and build scripts for non-MS dev built files on Windows i18n - internationalization files images - graphics that are included in the Sage.jar file install - default config files for installs java - java source code native - C/C++ source code, top-level MSDEV projects for Windows native code native/ax - Windows DirectShow filter C++ source code native/Build/ - Windows binaries; created dynamically by building Native code native/common - shared common source/header files native/crosslibs - cross platform native code native/dll - Windows DLL C++ source code native/elf - native executable linux source code native/exe - Windows executable C++ source code native/include - includes files (both platforms) native/so - Linux native library C/C++ code stvs - STV XML, resource and image files third_party - Third party source code is located here.

Various components in SageTV rely on code that is in the third_party directory and utilize it directly in some cases. Some other third party components stand on their own and are just part of the overall distribution.

For building on Linux you should set JDK_HOME to be the directory where the JDK is installed (it should have an include and an include/linux folder at that path).

Extra Linux packages required to build (not exhaustive): lib1394raw-dev, libavc1394-dev, libiec61883-dev, libfreetype6-dev, yasm

jhead is NOT included in the open source distribution due to it being under the ambiguous Public Domain license. It can be acquired separately and is needed for fixing the EXIF JPEG header after rotating pictures.

You can use the build/buildall.sh script on Linux to build the entire platform and have it packaged into tarballs and debian installers.

The Windows components need to be built with Visual Studio 2005, mingw/msys and javac. There is no script for doing this included.

Release Notes for V9

  1. Java compliance level is now 1.5
  2. Read/write locking support in the database (previously, it only had generic rw locks... now there are explicit locks for read and write on each table)
  3. If on a menu w/out full screen video, but video is playing, switch to the full screen video menu when the screen saver timeout expires
  4. Lucene support for search (search API calls are now executed on the server and utilize the Lucene index for performance)
  5. Loads of various bug fixes and performance enhancements :)
  6. New Airing API calls: GetParentalLimitsExceeded, GetPlayableAiring
  7. New Channel API calls: GetChannelLogoURL
  8. New Configuration API calls: SetCurrentlyAiringProgramsStartLive, GetCurrentlyAiringProgramsStartLive
  9. New Database API calls(NTE methods support numeric text input, such as using 228 would match ‘cat’ or ‘bat’, more details in the code): SearchForPeopleNTE, SearchForTitlesNTE, SearchSelectedFieldsNTE, GetMediaMask, HasMediaMask, SearchForChannel
  10. Various filtering, sorting and grouping methods in the Database API are now optimized and don’t go back through the API interpreter for filter/sort/group method execution
  11. Following Database API calls now support extra args to pass to filter/sort/group methods: FilterByBoolMethod, FilterByMethod, GroupByMethod
  12. New Favorite API calls: GetFavoritePresentationName, GetFavoritePresentationPrefix, GetFavoritesForAiring
  13. New Global API calls: SageCommand (with payload), IsTransitioningToMenus, IsTransitioningFromMenus, GetUIComponentPositionXf, GetUIComponentPositionYf, GetUIComponentWidthf, GetUIComponentHeightf, IsClientDisconnected, GetClientServerConnectionProgress, GetEPGUpdateState, SwitchEmbeddedModeTo/AreScreenshotsSupported/SaveScreenshotToFile (these 3 are only useful on embedded)
  14. New MediaPlayer API calls: GetRecentChannels, ClearRecentChannels
  15. New SeriesInfo API calls: GetSeriesImage(bool), GetSeriesImageURL, GetSeriesImageCount, GetSeriesImageAtIndex, GetSeriesImageURLAtIndex, HasSeriesActorImage, GetSeriesActorImage, GetSeriesActorImageURL
  16. New Show API calls: IsMovie, HasMovieImage, GetMovieImage, GetMovieImageURL, GetMovieImageCount, GetMovieImageAtIndex, GetMovieImageURLAtIndex, HasPersonImage, GetPersonImage, GetPersonImageURL, GetPersonDateOfBirth, GetPersonDateOfDeath, GetPersonBirthplace, GetPersonID, GetPersonForID, GetMovieStarRating
  17. New Utility API calls: GetMetaImageAspectRatio, GetMetaImageBytes, GetLocalFileAsString, ConvertNteChars, StringIndexOfNTE, StringStartsWithNTE, DumpServerThreadStates
  18. Person is a new database object (rather than just being Stringer objects as they were previously)
  19. Series/person/character image information now exists in the database (follows TMS naming conventions)
  20. Thread monitoring and regular logging of CPU usage of various threads
  21. Significant performance improvements to overall database system
  22. Licensing/key checking code removed
  23. “Spoiler Protection” when watching live TV, it will not default to a channel which could possibly ‘spoil’ something else you care about. It also tries to avoid selecting anything that needs parental control by default.
  24. Codebase from EMBEDDED (HD300) merged with main SageTV codebase (NOTE: This will no longer run on the HD300 because it’s not Java 1.5 source rather than Java 1.4)
  25. Added new hooks: RecordRequestLiveMultiConflict, WatchRequestLiveMultiConflict (these allow processing all conflicts for watch/record requests at once rather than one at a time; if these hooks are not in the STV then the non-Multi hooks that have always existed will be called instead)
  26. TVTV support removed
  27. Added property “hdmi_always_select_best” which defaults to false, but if set true will auto select the best HDMI resolution for extender clients
  28. Added property “studio/alert_on_syntax_error” which defaults to false, but if true will popup an alert in the Studio if a syntax error is entered (i.e. an expression the parser cannot properly compile)
  29. Support for rendering of CEA-708 closed captions (i.e. Digital TV closed captions)
  30. Added downloader for Weather Underground data (API license key required to use)
  31. CVS integration for SageTV Studio (although not that useful since this is hosted on GIT now; but it’s done in an abstract way so GIT support could be added)
  32. Added RemotePusherClient support. This allows for a separate process that handles the streaming (push & pull mode) for SageTV rather than running this through the Java classes.
  33. On Windows, the global environment variable SAGETVUSERKEY should be set to be your license key if you’re using the EXE built from the open source codebase. This will then allow you to communicate with the SageTV EPG server.

Install sagetvopen-sagetv-server-opendct-java8 on Unraid in a few clicks.

Find sagetvopen-sagetv-server-opendct-java8 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 sagetvopen-sagetv-server-opendct-java8 Review the template variables and paths Click Install

Download Statistics

1,625
Total Downloads

Details

Repository
sagetvopen/sagetv-server-opendct-java8
Last Updated2022-08-28
First Seen2022-01-09

Runtime arguments

Web UI
http://[IP]:[PORT:8080]/
Network
host
Privileged
true

Template configuration

SageTV WebUIPorttcp

SageTV WebServer Port

Target
8080
Default
8080
Value
8080
OpenDCT WebUIPorttcp

OpenDCT WebUI Port

Target
9091
Default
9091
Value
9091
Port 2Porttcp

Container Port: 42024

Target
42024
Default
42024
Value
42024
Port 3Porttcp

Container Port: 7818

Target
7818
Default
7818
Value
7818
Port 4Portudp

Container Port: 8270

Target
8270
Default
8270
Value
8270
Port 5Portudp

Container Port: 31100

Target
31100
Default
31100
Value
31100
Port 6Porttcp

Container Port: 31099

Target
31099
Default
31099
Value
31099
Port 7Portudp

Container Port: 16867

Target
16867
Default
16867
Value
16867
Port 8Portudp

Container Port: 16869

Target
16869
Default
16869
Value
16869
Port 9Porttcp

Container Port: 16881

Target
16881
Default
16881
Value
16881
SageTV Appdata PathPathrw

SageTV base directory

Target
/opt/sagetv
Default
/mnt/user/appdata/sagetv/
Value
/mnt/user/appdata/sagetv/
Media PathPathrw

SageTV Media Directory (for recordings, etc)

Target
/var/media
Default
/mnt/user/media/sagetv/
Value
/mnt/user/sagemedia/
Extra Media PathPathrw

SageTV videos directory for other imported video files

Target
/var/mediaext
Default
/mnt/user/media/videos/
Value
/mnt/user/media/videos/
unRAID Share PathPathrw

Container Path: /unraid

Target
/unraid
Default
/mnt/user
Value
/mnt/user
OpenDCT ConfigurationPathrw

Configuration

Target
/etc/opendct
Default
/mnt/user/appdata/opendct/etc
Value
/mnt/user/appdata/opendct/etc
OpenDCT LogPathrw

Log

Target
/var/log/opendct
Default
/mnt/user/appdata/opendct/log
Value
/mnt/user/appdata/opendct/log
OpenDCT HomePathrw

OpenDCT Home

Target
/opt/opendct
Default
/mnt/user/appdata/opendct/opt
Value
/mnt/user/appdata/opendct/opt
SageTV versionVariable

SageTV Version

Target
VERSION
Default
latest
Value
latest
OpenDCT VersionVariable

OpenDCT Version

Target
OPENDCT_VERSION
Default
latest
Value
latest
JVM MemoryVariable

Java Memory in MB

Target
JAVA_MEM_MB
Default
1024
Value
1024
License KeyVariable

SageTV License Key

Target
LICENCE_DATA
Install GentunerVariable

Install Gentuner Plugin

Target
OPT_GENTUNER
Default
Y
Value
Y
Install CommandIRVariable

Install CommandIR files

Target
OPT_COMMANDIR
Default
N
Value
N
Install Native ComskipVariable

Install native comskip files

Target
OPT_COMSKIP
Default
Y
Value
Y
Set permissionsVariable

Set permissions on startup

Target
OPT_SETPERMS
Default
Y
Value
Y
Enable LIRCVariable

Enable LIRC Daemon with Configuration from SageTV lirc.d Directory

Target
OPT_LIRC
Default
N
Value
N