Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

16 Good

About MowMdown

  • Rank
    Advanced Member

Recent Profile Visitors

643 profile views
  1. One thing I like: My favorite part is the integration between dockers and the file system. One thing I want to see: 2-Factor Authentication when logging in via remote browser.
  2. It does not use the regular endpoint. It uses: https://artifacts.plex.tv/plex-media-server-alpha/ Unfortunately there is no way to get this container to update to this.
  3. Is this why I keep getting this spammed in my container logs? 2019-08-19 17:27:29,249 DEBG 'watchdog-script' stdout output: [info] microsocks not running
  4. I'm not sure what you guys are doing but using the latest LISO Plex container with the latest NVDEC script and it works fine for me on UNRAID 6.7 w/ an Nvidia GTX970. Some of you might be using an outdated NVDEC patch script.
  5. Hydra doesn't work that way if you aren't accessing it by local ip (it's weird I know). I don't think the dev has any plans on changing that either. Basically if I visit "hydra.mydomain.tld" it generates the links as "hydra.mydomain.tld/getnzb/..." instead of "…" It's fine though, I found a work around for it, thanks though.
  6. Just an FYI something is broken with hydra on the 2.6.4 update, the dev isn't sure why it's broken. 2.6.2 seems to be stable. Edit: Looks like 2.6.6 fixes this issue.
  7. Basically I want to be able to whitelist the /getnzb endpoint so I can fetch the URL without needing http auth. Sabnzbd has two methods of retrieving nzb files. you can upload the data to sab OR you can have sab fetch the data from a URL. The URL needed to fetch the data is behind hydra.mydomain.tld/getnzb/some_nzb_file.nzb however because I put hydra.mydomain.tld behind http_auth, sab is greeted with a 401 error (no authorization) (maybe what I am asking is not possible due to limitations of nginx) I either need to whitelist the /getnzb endpoint ONLY so no http auth is required OR somehow allow sab through the auth. It's not the end of the world but I would prefer the fetch method over upload. I was trying to edit the .conf using this documentation with no sucsess Edit: I think I figured it out, I went in and created a custom location "/getnzb" and used the same IP:PORT as the main proxy and it seems to work. however if you try to normally access it, it will give you an AUTH form so it's not accessible from a browser. Safe enough for me.
  8. Question. I have HTTP AUTH enabled for my dockers proxied, however I need to expose an endpoint for SAB to be able to fetch from Hydra. Obviously when SAB goes to do that currently, its met with a 401 not authorized. is there a way to expose the endpoint needed to fetch The NZB from hydra without exposing the entire domain? hydra.mydomain.tld/getnzb is what I need to expose for this to work. Is what I need possible with NPM? Or... is there a way to whitelist SAB from requiring authorization?
  9. I'm getting a bunch of this spammed repeatedly in my syslog right after all my dockers are initializing, not sure what's suddenly causing it: root: ACPI action volumeup is not defined root: ACPI action volumedown is not defined I do have a keyboard attached to the machine but it doesn't get touched as nobody is home near my server.
  10. @munit85 Sounds like you have something mis-configured at the least. Force an update on the container then just try it with transcoding to ram, if that works we can rule out the Nvidia script. do it in layers until you find the problem.
  11. It allows you to use NVDEC with Plex. Basically what happens is it uses the GPU to decode the media before sending it to the client so the client doesn't have to decode the stream. You will still need plexpass to be able to use Hardware Transcoding.
  12. There is a bug in your new code specifically: command="/usr/lib/plexmediaserver/plex-nvdec-patch.sh" if [ "$codec_arguments" ]; then #This line is recursive, it duplicates the codecs in the Plex Transcoder file (we don't need it) #command+="${codec_arguments}" docker exec -i "$con" /bin/sh -c "${command}${codec_arguments}" else docker exec -i "$con" /bin/sh -c "${command}" fi What ends up happening is that in the "Plex Transcoder" file, you end up with ALLOWED_CODECS=("h264" "hevc" "h264" "hevc") Removing that line of code fixes the issue. You don't need to concatenate the "command+="${codec_arguments}" because it's already being taken care of at the next line where the docker exec code is taking place.
  13. I found a new/updated plex NVDEC script off the Plex Forums, it allows you to set specific codecs that are allowed to be decoded by the GPU, the rest get CPU decoded. #!/bin/bash # This should always return the name of the docker container running plex - assuming a single plex docker on the system. con="$(docker ps --format "{{.Names}}" | grep -i plex)" echo -n "<b>Applying hardware decode patch... </b>" # Check to see if patch script exists first. exists=$(docker exec -i "$con" stat "/usr/lib/plexmediaserver/Plex Transcoder2" >/dev/null 2>&1; echo $?) if [ "$exists" -eq 1 ]; then # If it doesn't, we run the clause below # For Legibility and future updates - if needed, use a heredoc to create the wrapper: docker exec -i "$con" /bin/sh -c 'sed "s/\(^\t\t\)//g" > "plex-nvdec-patch.sh";' <<'@EOF' #!/bin/bash PLEX_PATH="/usr/lib/plexmediaserver" CODECS=() ALLOWED_CODECS=("h264" "hevc" "mpeg2video" "mpeg4" "vc1" "vp8" "vp9") USAGE="Usage: $(basename $0) [OPTIONS] -p, --path Manually define the path to the folder containing the Plex Transcoder -c, --codec Whitelistes codec to enable NVDEC for. When defined, NVDEC will only be enabled for defined codecs. Use -c once per codec -u, --uninstall Remove the NVDEC patch from Plex Available codec options are: h264 (default) H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 hevc (default) H.265 / HEVC (High Efficiency Video Coding) mpeg2video MPEG-2 video mpeg4 MPEG-4 part 2 vc1 SMPTE VC-1 vp8 (default) On2 VP8 vp9 (default) Google VP9" contains() { typeset _x; typeset -n _A="$1" for _x in "${_A[@]}" ; do [ "$_x" = "$2" ] && return 0 done return 1 } while (( "$#" )); do case "$1" in -p|--path) PLEX_PATH=$2 shift 2 ;; -c|--codec) if contains ALLOWED_CODECS "$2"; then CODECS+=("$2") else echo "ERROR: Incorrect codec $2, please refer to --help for allowed list" >&2 exit 1 fi shift 2 ;; -u|--uninstall) uninstall=1 shift 1 ;; -h|--help|*) echo "$USAGE" exit ;; esac done if [ ${#CODECS[@]} -eq 0 ]; then CODECS=("h264" "hevc" "vp8" "vp9") fi if [ "$EUID" -ne 0 ]; then echo "Please run as root or with sudo" exit 1 fi if [ ! -f "$PLEX_PATH/Plex Transcoder" ]; then if [ -f "/usr/lib64/plexmediaserver/Plex Transcoder"]; then PLEX_PATH="/usr/lib64/plexmediaserver" else echo "ERROR: Plex transcoder not found. Please ensure plex is installed and use -p to manually define the path to the Plex Transcoder" >&2 exit 1 fi fi pcheck=$(tail -n 1 "$PLEX_PATH/Plex Transcoder" | tr -d '\0') if [ "$uninstall" == "1" ]; then if [ "$pcheck" == "##patched" ]; then if pgrep -x "Plex Transcoder" >/dev/null ; then echo "ERROR: Plex Transcoder is currently running. Please stop any open transcodes and run again" >&2 exit 1 fi mv "$PLEX_PATH/Plex Transcoder2" "$PLEX_PATH/Plex Transcoder" echo "Uninstall of patch complete!" exit else echo "ERROR: NVDEC Patch not detected as installed. Cannot uninstall." exit 1 fi fi if [ "$pcheck" == "##patched" ]; then echo "Patch has already been applied! Reapplying wrapper script" else if pgrep -x "Plex Transcoder" >/dev/null ; then echo "ERROR: Plex Transcoder is currently running. Please stop any open transcodes and run again" >&2 exit 1 fi mv "$PLEX_PATH/Plex Transcoder" "$PLEX_PATH/Plex Transcoder2" fi for i in "${CODECS[@]}"; do cstring+='"'"$i"'" ' done cstring="${cstring::-1}" cat > "$PLEX_PATH/Plex Transcoder" <<< '#!/bin/bash' cat >> "$PLEX_PATH/Plex Transcoder" <<< 'PLEX_PATH="'"$PLEX_PATH"'"' cat >> "$PLEX_PATH/Plex Transcoder" <<< 'ALLOWED_CODECS=('"$cstring"')' cat >> "$PLEX_PATH/Plex Transcoder" <<< ' contains() { typeset _x; typeset -n _A="$1" for _x in "${_A[@]}" ; do [ "$_x" = "$2" ] && return 0 done return 1 } allowed_codec() { for i in "$@"; do if [ "-i" == "$i" ]; then return 1 elif contains ALLOWED_CODECS "$i"; then return 0 fi done return 1 } if allowed_codec $*; then exec "$PLEX_PATH/Plex Transcoder2" -hwaccel nvdec "$@" else exec "$PLEX_PATH/Plex Transcoder2" "$@" fi ##patched' chmod +x "$PLEX_PATH/Plex Transcoder" echo "Patch applied successfully!" @EOF # chmod the new script to be executable: docker exec -i "$con" chmod +x "./plex-nvdec-patch.sh" # now we execute the script: docker exec -i "$con" bash -c "./plex-nvdec-patch.sh" echo '<font color="green"><b>Done!</b></font>' # Green means go! else # If we ended up here, the patch didn't even try to run, presumably because the patch was already applied. echo '<font color="red"><b>Patch already applied!</b></font>' # Red means stop! fi To alter the defaults simply append "-c codec" to the execution command like so: docker exec -i "$con" bash -c "./plex-nvdec-patch.sh -c h264 -c hevc -c vp8 -c vp9" Source/Credits: https://github.com/revr3nd/plex-nvdec and @Xaero for his script here: https://gist.github.com/Xaero252/9f81593e4a5e6825c045686d685e2428
  14. I'm not sure what you keep in /tmp that is of high concern but my /tmp doesn't contain any sensitive data...
  15. @nadbmal that's because you're not mapping directly to /tmp you're mapping to /tmp/plexram (don't do this) Plex cannot generate /plexram once it's deleted. That's why in your situation when you delete that directory it fails to transcode. it's looking for a folder that doesn't exist (docker is creating this path not plex) Just use /tmp as the transcode directory Plex will autogenerate /Transcode/Sessions every time on its own when a transcode is needed. you will never run into that issue doing it the proper way I described here: