DPC - Stupidly Massive Install Script: From Vanilla to Stupid


Recommended Posts

DPC Stupidly Massive Install Script v 1.0

(1497 lines of shitty code hammering a square into a circle)

 

What is it: Its a bash script that installs several items. It is only intended to be run a completely fresh build of unRAID version 5b14 and later. The idea is you put together a physical NAS, plug in an unRAID flash drive, and run the installer and have an awesome NAS server.

 

Included:

Slackware Packages:

Java Runtime Environment, Nano, InfoZip, Python, Python-Cheetah, Python-Yenc,

SQLite UNRAR, OpenSSL, pyOpenSSL, par2cmdline (MultiCore), and many more

 

Services:

unMenu, SABnzbd, SickBeard, CouchPotato, SubSonic 4.6

AirVideo 2.4.6, Transmission 2.42, Plex

 

Scripts: S.N.A.P., preclear_disk 1.9

 

Nice Things:

SimpleFeature WebGUI Mod (by SpeedingAnt), Clean PowerDown Tweak

Beep when /boot/config/go finished (aka computer boots)

 

Upcoming (in next release):

Make Suggestions

 


 

WARNING: This is stupid code - intended for only clean install of unRAID 5. I guarantee IT WILL MESS UP a configured box :)

 

Note: If you install to an array disk please set array to autostart otherwise it wont bring up the services after reboot

Note: Configure your server IP and host name prior to running the script.

 

Easy 3 Command FULL Install (Telnet in and run below commands)

Reboot after - weird issue dont feel like fixing right now.... (subsonic and airvideo dont want to properly start until a restart)

 

Selectively install items:

Simply append what you want to the command line such as so (simply remove the items you do not want to install):

massivev1.0.sh --nobackup --unmenu --sabnzbd --sickbeard --couchpotato --headphones --transmission --subsonic --airvideo --plex
Link to comment

EDIT - You can now selectively install services that you want. See first post

 

Hmmm not yet.

 

The workaround for that is do "nano /boot/config/go" and comment "#" out the lines toward the end for for the unwanted services (I marked them fairly clearly). That way they will be installed but not started everytime you boot.

 

I like the way the subsonic installer went - I really hated the other subsonic to RAM installer as it seemed overly complicated (extra 10+ scripts in addition of subsonic - too much). This one seems to work well and video transcoding works!

 

~dpc

 

 

Link to comment

Teaser - Completed raw scripting in of AirVideo latest version. Not yet tested but I'm confident it will be well as all code was clicking in my head. I did this after i got frustrated that my andriod device could play subsonic videos flawlessly (just awesome subsonic -> android) but such compatibility didn't exist for iOS devices - so AirVideo had to be added. Kinda wish I had a honeycomb tablet to play with...

 

Thoughts for cleanup:

> separate the sabnzbd, sickbeard, and couchpotato as separate sections (just more logical)

> Create subsonic etc/rc.d file for simplified start/stop

> Script out some of the mundane configuration of Sickbeard and Couch Potato in conjunction with sabnzbd (preset the script paths etc)

 

Other additions I am looking to add into v.02:

> Transmission daemon (looking good)

> CrashPlan (meh maybe depends how well it clicks)

 

~dpc

 

Link to comment

(554 lines of shitty code hammering a square into a circle)

 

:D

 

Love that tagline.

 

If you can come up with a better way of installing crashplan (given the current reliance on ssh tunnels and remote clients) that would be great. That's the current blocker from a fully automated install.

Link to comment

If you can come up with a better way of installing crashplan (given the current reliance on ssh tunnels and remote clients) that would be great. That's the current blocker from a fully automated install.

 

I am fairly sure that this would be impossible/very difficult to do.  The login via the GUI is required the first time and ssh has to be used for that.  If there was a way to log in via the command line we would be set, and I would have created a package to at least install it.

 

Though there have been reports that current versions of the install via command line does not respect the backup location.  You have to change it via the GUI and then tar the crashplan archive.

 

Once the initial install is done, a tar of the files and a line in the go script will automate the install on a reboot.  I do this and just retar the files when they push out an update.

Link to comment
  • 2 weeks later...

Will this be the latest version, or the one in unMENU?

Latest - Transmission Version 2.22.

 

The unMenu transmission package is coded so sloppily.... essentially it grabs a binary blob (not official but frankenstiened, not interchangable) that "Bubba" created that is hosted on DropBox (bound to run out of bandwith). Then it creates a rc.d script on TOP of the "Bubba" rc.d script... Anyways pile of crap. My method fetches latest stable from a linux mirror repository and uses that and properly generates new files on the fly. Much cleaner. Ditto the same for AirVideo. If I want to update my script for the new versions i just change the urls for the new files.

 

Uploading current draft version of dpcmassivev02. Its almost complete. May throw in the speeding_ant Webgui beatifications.

 

This version includes AirVideo Linux Beta 6 (latest), Tranmission 2.22 (latest), and some code section cleanup (split sabnzbd, sickbeard, and couchpotato into separate sections). Also including backup logic in this version (will attempt to backup your config files and generate a restore script should you choose.  All needs testing. Im curious about the AirVideo as it will be complimenting Subsonic (which works great for Android devices) with iOS (Apple Devices) playback. Script almost doubled in size.

 

As always, setup your array, hostname, autostart array on a clean usb stick of unraid latest beta prior to running the script.

 

~dpc

dpcmassivev02draft.sh.txt

Link to comment

Thanks. Here's the changelog for Transmission: https://trac.transmissionbt.com/wiki/Changes

 

Looks like the version in unMENU is 2.01 .

 

I'd like to update my version of Transmission, and I don't mind trashing all my existing Transmission settings and files, but I don't want to mess with my other setups -- SABnzbd, SickBeard etc.

 

Any chance of modularising the SuperMassiveBlackScript, so I can just install the new Transmission?

Link to comment

The unMenu transmission package is coded so sloppily....

That it is not, it is what it is. I would LOVE to see how you handle allowing users to set all those variables without having to modify the settings.json file by hand.

 

essentially it grabs a binary blob (not official but frankenstiened, not interchangable) that "Bubba" created that is hosted on DropBox (bound to run out of bandwith).

The file, it is not a binary blob, was created by bubbaQ and is slackware .tgz file used to install Transmission on unRAID specifically.  It is not hosted on dropbox, it is on bubbaQ web site.

 

Then it creates a rc.d script on TOP of the "Bubba" rc.d script...

It creates that script in compliance with some of the other packages that are doing the same thing.  Airvideo creates one, as do other packages.  It is a hook into another script unRAID_addon_control.sh created by JoeL.

 

Anyways pile of crap.

I will say it again, but the package is not a pile of crap. It is doing a lot of things and trying to protect the user from themselves.

 

My method fetches latest stable from a linux mirror repository and uses that and properly generates new files on the fly. Much cleaner.

I had a look through the first version of stupidmassive script and it is just that, stupid massive.  each of these installs/functions would be much better served separated out.  but that is my own opinion... it is the same reason I hate applications like lotus notes, MS Outlook, etc.  They try to do to many things.

 

Ditto the same for AirVideo.

Airvideo is a massive install, and does not work on machines with only 512MB of RAM.  Not to mention it needs it own ffmpeg which needs to be compiled the first time.

 

If I want to update my script for the new versions i just change the urls for the new files.

Changing the URL and the MD5 in an unMenu package is really the only thing that needs to change also to get to a newer version.

 

 

I applaud your script and will continue to watch it, but it is probably something that I will never end up using.

Link to comment

v02 has been released

 

Added: Airvideo latest, Transmission latest

 

some bugs but should work. Anyone wants to improve airvideo and subsonic RC.d files please do (run as nobody?)

 

EDIT: 05/22/2011 8:34PM - Minor fix in AirVideo rc.d file (now should cleanly start on boot).

 

~

dpc

Link to comment

Thanks so much for doing this. I do like "kitchen sink" scripts myself and what pushed me over the edge was getting a newer version of transmission going.  Unfortunately I am unable to get transmission to run. I get this error. Any ideas? Thanks.

root@Tower:/boot/config# /etc/rc.d/unraid.d/rc.unraid_transmission start
/usr/bin/transmission-daemon: error while loading shared libraries: libidn.so.11: cannot open shared object file: No such file or directory
Transmission started.

 

Link to comment
Unfortunately I am unable to get transmission to run. I get this error. Any ideas? Thanks.

root@Tower:/boot/config# /etc/rc.d/unraid.d/rc.unraid_transmission start
/usr/bin/transmission-daemon: error while loading shared libraries: libidn.so.11: cannot open shared object file: No such file or directory
Transmission started.

 

Are you using clean install on unRAID 5 latest beta? I have not seen that error so far....

 

~dpc

Link to comment

Unfortunately I am unable to get transmission to run. I get this error. Any ideas? Thanks.

root@Tower:/boot/config# /etc/rc.d/unraid.d/rc.unraid_transmission start
/usr/bin/transmission-daemon: error while loading shared libraries: libidn.so.11: cannot open shared object file: No such file or directory
Transmission started.

 

Are you using clean install on unRAID 5 latest beta? I have not seen that error so far....

 

~dpc

 

My bad and thanks. I didn't even notice that this was for unraid 5. I upgraded and ran your script and now all is well, mostly.  For some reason airvideo is not working.  It won't list the videos in my shares for some reason. Odd...

Link to comment

Your script is growing bigger and bigger.

 

One thing I did notice is that on the airvideo install you have


airvideotmp=/tmp

 

The /tmp directory is/was used to help in the compile of ffmpeg in case the system does not have a lot of RAM.  You setting it to /tmp completely defeats that purpose.  /tmp is in RAM... so therefor does nothing to help alleviate the problem that Joe L. and I set out to try and fix.

 

Either allow the user to set that, like Joe L. and I do in the original package that you grabbed the code from or eliminate it entirely because in it's current form it does nothing.

 

 

 

EDIT: I also noticed that the Transmission install does not allow the user to specify virtually all of the variables in the settings.json file.  The only one it looks like you are allowing them to set is the RPC port, but you don't give an option to turn on rpc-authentication and put in a username or password.  You also set the download, complete, and watch directories for the user.  I understand how to change the values there, but a novice user is not going to know how, what, or where to change any of that.

Link to comment
The /tmp directory is/was used to help in the compile of ffmpeg in case the system does not have a lot of RAM.  You setting it to /tmp completely defeats that purpose.  /tmp is in RAM... so therefor does nothing to help alleviate the problem that Joe L. and I set out to try and fix.

Ah yes - I had set that to /tmp during testing to attempt to figure out why ffmpeg didnt want to compile on me. I revert it to disk swap style. AirVideo apparently works VERY well - much better experience than subsonic....

 

I also noticed that the Transmission install does not allow the user to specify virtually all of the variables in the settings.json file.  The only one it looks like you are allowing them to set is the RPC port...
This is actually on purpose. My logic is: users who want to make basic changes can go to the webgui and make the changes there. There is also a really great Tranmission "client" that allows to change virtually all the settings: Transmission Remote Gui. Or they can telnet in and run "nano /mnt/$servicesvolume/$servicesdir/transmission/settings.json" and use the nano texteditor to edit the files.

 

I have confidence in the human condition - if they pop open the script in a text editor (notepad++, textedit/textmate) I think the script will pragmatically make sense. If they dont get it... well unMenu may be the option they are looking for.

 

EDIT: I should say one thing. One great thing with this script is people pop it open and see a method of achieving a certain task. They can take that method and integrate it into their own package or script. This is how I put it together and picked up a few things along the way (` vs '). The reason I am a fan of shell scripts is how easy its to open them up, make a change, and run them. Much friendly for testing new bleeding edge stuff out (Something that i like working with at times). Its about tinkering and whoa whoa wait there is a perhaps a not half bad finished result :)

 

~dpc

Link to comment
  • 1 month later...
  • 1 month later...

I'm just about to setup my first server and looking to use 5.0 b11.  I also want to install a fair bit of what is in this massive script.  Is it ready for prime time use and does it work with b11 ?  I understand it's a beta so I'm not expecting 100% smoothness, I just don't need anything to break.

Link to comment

I'm just about to setup my first server and looking to use 5.0 b11.  I also want to install a fair bit of what is in this massive script.  Is it ready for prime time use and does it work with b11 ?  I understand it's a beta so I'm not expecting 100% smoothness, I just don't need anything to break.

I would hold off. Current script has not been testing on B11 and in progress version of the script is undergoing overhaul that will allow for much for flexibility and granularity.

 

please expect things to break. that way wont disappoint  ;) - i guarantee it will break something

 

~

dpc

Link to comment
  • 3 months later...

Updated now. Added Plex and headphones, updated the existing items. Optimized the script to get rid of some custom blobs no longer needed.

 

In the latest edition I took some extra time to reconstruct binaries and libraries from package sources as opposed to getting them from custom blobs that forum members compiled. The script is much more dynamic now - its not at the stage of compiling everything from sources (nor should I want it to be) but its much more standardized.

 

Have fun.

 

~dpc

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.