Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

tmchow

Members
  • Joined

  • Last visited

Everything posted by tmchow

  1. Forgive me, but how do I find your script? There's no search within this thread and dont' want to just keep going page by page through 32 pages
  2. Just tried this for the first time after procrastinating... I tried it in "Very Fast" mode just now per the instructions and getting these errors: unRAID Tunables Tester v2.2 by Pauven ./unraid-tunables-tester.sh: line 80: /root/mdcmd: No such file or directory ./unraid-tunables-tester.sh: line 388: /root/mdcmd: No such file or directory ./unraid-tunables-tester.sh: line 389: /root/mdcmd: No such file or directory ./unraid-tunables-tester.sh: line 390: /root/mdcmd: No such file or directory ./unraid-tunables-tester.sh: line 394: /root/mdcmd: No such file or directory ./unraid-tunables-tester.sh: line 397: /root/mdcmd: No such file or directory ./unraid-tunables-tester.sh: line 400: [: : integer expression expected Test 1 - md_sync_window=384 - Test Range Entered - Time Remaining: 1s ./unraid-tunables-tester.sh: line 425: /root/mdcmd: No such file or directory ./unraid-tunables-tester.sh: line 429: /root/mdcmd: No such file or directory Test 1 - md_sync_window=384 - Completed in 4.011 seconds = 0.0 MB/s
  3. That doesn't work well. For example, if you try this search for LFTP, you get 3 results which isn't accurate given 43 pages of this thread and I know it's come up more than 3 times. https://www.google.com/search?q=lftp+site%3Ahttps%3A%2F%2Fforums.unraid.net%2Ftopic%2F35866-unraid-6-nerdpack-cli-tools-iftop-iotop-screen-kbd-etc
  4. Couldn't figure out how to search this thread to find my own answer. I'm surprised that rclone isn't included in Nerd Pack given it's popularity. I have it working in a script called from my /boot/config/go file, but would prefer to not hack my own solution if it could be included as part of Nerd Pack for easier install and updating. Has rclone inclusion been considered or been planned? If not, why? PS - If anyone has a tip on how to search a specific thread, let me know
  5. Wondering if a better approach is just to try the sshfs mount and if it fails, handle the failure gracefully.
  6. Thanks that makes sense. So you’re saying to put my SSHFS mount command before emhttp but also check for network before that. I guess if network isn’t available I could put a sleep/wait in the script at that point to stall to get more time. Any suggestions on the best/right way to check for network connectivity to my remote server? I’m kinda new to scripting and such.
  7. So just to be clear: is everything in go file executes BEFORE docker service is started? I need to run SSHFS to mount a drive but sshfs is installed via Nerd Pack. Will it be available for execution from go file?
  8. Instead of adding to /boot/config/go file you mean? Any disadvantages with using user scripts for this? Eg. Any risk of user scripts not loading correctly when go file will always? If I go user scripts route, I’m trying to run sshfs before the docker service starts. Is that possible?
  9. This is probably answered already but I can't figure out how to search this thread 🤷‍♂️. I have SSHFS working but want to auto mount something on boot. Should I just add the command in my /boot/config/go file? If I do that, how do I ensure SSHFS is installed before I run the command? Or is it not possible to have NerdPack install stuff on boot automatically?
  10. I've tried to get his going by mucking around. I have the container setup to port 2080 for HTTP and 20443 for HTTPS. I've forwarded ports 80 and 443 on my router to those ports. When I try to create an SSL cert through the Nginx reverse proxy dashboard, I get an "Internal error" dialog after a few seconds. In the error.log there isn't a 1:1 corresponding line for when this error occurs other than: 2019/06/29 18:37:01 [notice] 1037#1037: signal process started If I hit "OK" on that error modal and refresh the page, there is a line for the SSL cert. If I then try to use that cert, it fails because it can' tfind the cert on the disk (presumably due to the "internal error"). How do i debug this and get this working?
  11. I've been digging into this trying to get SSL to work for the some of my soon to be externally accessible sites. I have a mixture of things I want exposed and how to expose them. Some things, I want to only expose over my ZeroTier network. Examples are Node Red and Nzbget since all the devices I access those things from (basically my laptop) can have the zero tier client installed and works seamlessly. I really don't need SSL on these but why not? Other containers I want exposed over regular internet (non-ZeroTier network) since I need them accessible from other internet devices (e.g. my MQTT broker which needs to be accessible from internet attached devices not on my LAN). My ZeroTier addresses are in 10.241.0.0/16. When creating proxy hosts in Nginx Proxy Server, is this just a matter of adding those addresses as aliases? (e.g. 10.241.1.1 and 192.168.1.5 both for same proxy host?) Or am I just totally confused? Would appreciate help in understanding the above.
  12. I'm getting OpenVPN setup and thought I had it working.. but then realized that when the container updated, my admin and user passwords were reset. What is the solution for this? I'm assuming there is an easy fix I'm overlooking. I've tried searching, but the forums search is failing me.
  13. I have several containers running that I want to execute with “--restart unless-stopped” option. How do I do this? When I go to edit a docker container I don’t see a place to add custom command line options.
  14. Oh interesting.. it looks like most of the videos will have the video track as the FIRST track, so track #0. So given that, it seems like --track-order 0:1,1:0 should be --track-order 0:0,1:0 ?
  15. @DjossYou've been super helpful.. I almost have everything working. I have a question about mkvmerge and the "--track-order" argument that I'm hoping you can explain to me. The script is supposed to be putting the AC3 track that's being remuxed into a new video as the first track after the video track (so the second track). However, in my testing it looks like it's being put as the first track. The script checks for an argument that's passed in which sets `$INITIAL=1`, which then adds this argument to be invoked with `mkvmerge`: # Puts the AC3 track as the second in the file if indicated as initial if [ $INITIAL = 1 ]; then CMD="$CMD --track-order 0:1,1:0" fi The full mkvmerge command that's being run is effectively the following, running on /mnt/user/movie/foo.mkv mkvmerge --track-order 0:1,1:0 -o "/mnt/user/movie/foo.new.mkv" -a "1,2" --compression 1:none --compression 2:none --compression 0:none "/mnt/user/movie/foo.mkv" --default-track 0 --language 0:DTSLANG --track-name 0:"DTSNAME" --sync 0:DELAY --compression 0:none "/mnt/user/movie/foo.ac3" can't seem to find any coherent explanations how this argument works. The MKVToolNix documentation isn't clear enough (to me) in its explanation as i look through the invocation since I can't tell what is being referenced as the "files".
  16. Would you recommend trying to get this to work with nice within the container? Or is that irrelevant since it's within a docker?
  17. Your comment just reminded me that I tried installing mkvtoolnix as a package on unraid before I went down this path with your container,... I did indeed have mkvextract and other mkvtoolnix apps in /usr/bin, so i deleted all of them. Now when I run the following, it's confirmed its' not on my system: root@Tower:/mnt/user/movies-incoming# which mkvextract which: no mkvextract in (.:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin) Now when I run the script for this line that's trying to be run: mkvextract timecodes_v2 "/mnt/user/movies-incoming/test.mkv" 1:"/mnt/user/movies-processing/test.tc" I then got this: nice: ‘mkvextract’: No such file or directory I can't help but think that my manual deletion of mkvextract caused this becuase I didn't formally remove the package some other way? (For reference, I tried installing the mkvtoolnix slckware package originally before your docker with the "installpkg" command). Given this, I found the mkvtoolnix package names I installed in /var/log/packages, then ran removepkg and it seemed to successfully run. But no change in the error I'm getting above about "no such file or directory". I then tried remove the "nice -n $PRIORITY" prefix you mentioned, and it worked! My assumption is the way the command is run, my function isn't being called to substitute in the docker command. Is that right?
  18. The mkvdts2ac3 script has a debug mode where its verbose in it's output. Looks like mkvinfo and mkvmerge are working and it's failing at mkvextract. Recall, I've added the following code in the script: MAPPINGS="-v /mnt/user/movies-processing:/mnt/user/movies-processing:rw -v /mnt/user/media-movies:/mnt/user/media-movies:rw -v /mnt/user/movies-incoming:/mnt/user/movies-incoming:rw" mkvextract() { docker run --rm $MAPPINGS jlesage/mkvtoolnix /usr/bin/mkvextract "$@" } Running this command works to output the param list since nothing is passed in, (which is expected): docker run --rm jlesage/mkvtoolnix /usr/bin/mkvextract Running this also works (just wanted to test that there were no obvious issues in my syntax passing in the mappings: docker run --rm -v /mnt/user/movies-processing:/mnt/user/movies-processing:rw -v /mnt/user/media-movies:/mnt/user/media-movies:rw -v /mnt/user/movies-incoming:/mnt/user/movies-incoming:rw jlesage/mkvtoolnix /usr/bin/mkvextract The command in the debug log of the mkvdts2ac3 script is this: mkvextract timecodes_v2 "/mnt/user/movies-incoming/test.mkv" 1:"/mnt/user/movies-processing/test.tc" This results in this error: mkvextract: error while loading shared libraries: libboost_regex.so.1.59.0: cannot open shared object file: No such file or directory RESULT:DELAY=0 If I fully expand this factoring in my script additions to work with your docker container, I ran this and oddly it works.. this should be the exact same command that's run in the script: docker run --rm -v /mnt/user/movies-processing:/mnt/user/movies-processing:rw -v /mnt/user/media-movies:/mnt/user/media-movies:rw -v /mnt/user/movies-incoming:/mnt/user/movies-incoming:rw jlesage/mkvtoolnix /usr/bin/mkvextract timecodes_v2 "/mnt/user/movies-incoming/test.mkv" 1:"/mnt/user/movies-processing/test.tc" Progress: 100% No idea how to explain this... --- Here is a full copy and paste of what's in my console when i run the script.. root@Tower:/mnt/user/movies-processing# /boot/scripts/mkvdts2ac3/mkvdts2ac3.sh -i -d --debug /mnt/user/movies-incoming/test.mkv mkvdts2ac3-1.6.0 - by Jake Wharton <[email protected]> and Chris Hoekstra <[email protected]> MKV FILE: /mnt/user/movies-incoming/test.mkv DTS FILE: /mnt/user/movies-processing/test.dts AC3 FILE: /mnt/user/movies-processing/test.ac3 TIMECODE: /mnt/user/movies-processing/test.tc NEW FILE: /mnt/user/movies-processing/test.new.mkv WORKING DIRECTORY: /mnt/user/movies-processing Find first DTS track in MKV file. > mkvmerge -i "/mnt/user/movies-incoming/test.mkv" | grep -m 1 "audio (DTS)" | cut -d : -f 1 | cut -d " " -f 3 RESULT:DTSTRACK=1 Extract track information for selected DTS track. > mkvinfo "/mnt/user/movies-incoming/test.mkv" RESULT:INFO= | + Track number: 1 (track ID for mkvmerge & mkvextract: 0) | + Track UID: 1 | + Track type: video | + Enabled: 1 | + Default track flag: 1 | + Forced track flag: 0 | + Lacing flag: 0 | + Minimum cache: 1 | + Timestamp scale: 1 | + Maximum block additional ID: 0 | + Codec ID: V_MPEG4/ISO/AVC | + Codec decode all: 1 | + Codec's private data: size 42 (h.264 profile: High @L4.1) | + Default duration: 00:00:00.041708299 (23.976 frames/fields per second for a video track) | + Language: eng | + Name: Video: x264_L4.1 @ 7183 Kbps | + Video track | + Pixel width: 1280 | + Pixel height: 534 | + Interlaced: 0 | + Display width: 1280 | + Display height: 534 | + Track | + Track number: 2 (track ID for mkvmerge & mkvextract: 1) Extract language from track info. > echo "$INFO" | grep -m 1 \"Language\" | cut -d \" \" -f 5 RESULT:DTSLANG=eng Extract name for selected DTS track. Change DTS to AC3 and update bitrate if present. > echo "$INFO" | grep -m 1 "Name" | cut -d " " -f 5- | sed "s/DTS/AC3/" | awk '{gsub(/[0-9]+(\.[0-9]+)?(M|K)bps/,448Kbps)}1' RESULT:DTSNAME=Video: x264_L4.1 @ 7183 Kbps Extract timecode information for the audio track. > mkvextract timecodes_v2 "/mnt/user/movies-incoming/test.mkv" 1:"/mnt/user/movies-processing/test.tc" > sed -n "2p" "/mnt/user/movies-processing/test.tc" > rm -f "/mnt/user/movies-processing/test.tc" Extracting Timecodes: mkvextract: error while loading shared libraries: libboost_regex.so.1.59.0: cannot open shared object file: No such file or directory RESULT:DELAY=0
  19. Okay.. i've gotten closer. Thanks for help so far. Done some tests and the mapping trick you suggested works great. However, when running mkvmerge, I'm getting this error: mkvextract: error while loading shared libraries: libboost_regex.so.1.59.0: cannot open shared object file: No such file or directory This is odd, because it's running from within your container right? Shouldn't all the dependencies be working within it?
  20. I have ffmpeg working on my system using the ffmpeg static libraries.. wrote some shell scripts to make sure it's downloaded regularly to get updates and copies into /usr/sbin, as well as handling system reboots. So i'm covered there. With handbrake, i dug into it, and noticed you maintain a container for it, so thanks I'm trying to do the minimum amount of work to convert the DTS to AC3 without extracting the audio, converting the audio to AC3 and then muxing the audio back to .mkv. I've found I can easily do it with ffmpeg using command like this: /usr/sbin/ffmpeg -i video.mkv -map 0 -vcodec copy -scodec copy -acodec ac3 -b:a 640k video-AC3.mkv However, this doesn't handle all the possible cases, such as stuff with 6 channel DTS and mapping it to 5.1, etc etc. Hence why I found that mkvtoolnix script that everyone seems to say is the gold standard. Dunno if handbrake is better. According to this thread on github (https://github.com/HandBrake/HandBrake/issues/264), Handbrake will never just passthrough video as it's against their goals of the product. So processing video with it would take way too long since it has to transcode video. If I go through the route of using the scripts and invoking it how you suggested using the mkvtoolnix container, how do I even use it? It's a super basic question and out of scope of your container since it's a separate script, but wanted to ask in case you can provide pointers. When I start your mkvtoolnix container, I see a UI and no way to use scripts or command line even so I'm a bit lost. I think i'm figuring this out slowly, and thanks for the tip on writing that function to add to the original script to call into the docker container. I wouldn't have thought of that, so it's brilliantly simple to avoid massive changes throughout the entire script. However, I think this might not work if I'm trying to work on a file that's outside of the container. For example, if I run this command, I get an error because it can't find the file (since it sits in the unraid system, not within the container or accessible by the container). root@Tower:/boot/scripts/mkvdts2ac3# docker run --rm jlesage/mkvtoolnix /usr/bin/mkvmerge -i "test.mkv" Error: The file 'test.mkv' could not be opened for reading: open file error. I thought the way to do this was to add a container mapping so the docker container could access same files I'm working on outside the container. However after mucking with this, it's not working. I realized that I don't understand the "docker run --rm" command you gave The normal way I've run processes within a container is using this syntax: docker exec -it <container name> <command> So running this works, assuming I mapped /foobar/ to the local file system so it can operate on a file. docker exec -it MKVToolNix /usr/bin/mkvmerge -i "/foobar/test.mkv" Is there a better way of doing this so I do'nt have to muck with mappings? Ideally I want to just have the mkvmerge/mkvinfo/mkvextract to be able to run in the context of my main unraid system, as if it's not in a docker. ugh.
  21. I'm actually not sure.. i think i prefer to try to script the thing, hence how i got to that script i linked to since it takes care of so many specific DTS-->AC3 conversion issues. My thought was to script outside of the container, but not opposed to running it from within the container. From what I can tell, your container doesn't contain ffmpeg nor rsync which the script requires in addition to mkvtoolnix. Wanna add them to your container? However, I"m not opposed to using Handbrake, i didn't think it was the best thing suited for the job, but maybe I'm wrong. Basically, what I want to do, is convert all my current videos that are DTS to AC3, then as I add new videos, if they have DTS, do a conversion at the time I copy into my library.
  22. I'm brand new to MKVToolNix.. never used it, but am now encountering an issue where I need to do some conversion of videos to deal with a new AV setup that can't support DTS. In my search for easy ways to convert DTS to AC3, I came across this script: https://github.com/JakeWharton/mkvdts2ac3 It's dependencies are ffmepg, mkvtoolnix and rsync. Basically i need to be able to script this thing via command line, and being new to MKVtoolnix, I installed this container and saw it only had a GUI. So i'm confused at how this is supposed to all work together. Can anyone give me some basic pointers?
  23. I’m trying to provision a cert using the new integration with Let’s Encrypt in 6.4.0. However, when I try to provision it through the UI, i get the error “Your router or DNS provider has DNS rebinding protection enabled...”. For my router, I have a Ubiquiti Unifi Security Gateway Pro, and from what I can tell on the Ubiquit forums, DNS rebinding protection is not enabled by default since so many people are asking for this ability. My DNS provider is setup hard coded in the Unraid settings to be google. What could be wrong?
  24. Thanks for creating this docker for crashplanPro. I just converted from crashplan home, and am in middle of dedupe of backup set. Fingers crossed!
  25. Just converted this morning so my desktop PC and unraid server are now covered. I converted using my phone so haven't checked the machine sto see if it's been succesful

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.