hd-homerun-prime[Editors Note]  I actually wrote this blog back in June of 2014, but for whatever reason, never posted it.  It’s not complete, but I figured I’d share it with the Internet anyway.  I may come back and finish this at some point, but right now, I just don’t have the time.  Also the script below has evolved a bit over time, so I may update that to reflect what I have currently. 

A bit of a long story here, but recently I had decided to cut the cord on my TV service and called my local cable provider.  In my attempt to cancel only my TV service and not my internet service, they managed to talk me into a TV plan that was actually cheaper than what I was paying before and just a couple bucks more expensive than internet service alone.  That and a few other online streaming perks too.  I took the bait and they promptly sent me a new set top box so that I could watch more TV.

Unfortunately, when that new set top box arrived, I was promptly disappointed due to the fact that it was standard definition, slow and quite bulky in the entertainment center.  Obviously, there was no PVR capability either meaning it was only serving content to one TV in the house.  Not ideal really.  I started the search for something better.

As some of you know, I previously had setup SickBeard and SabNZBd for instructional purposes on this site before which is a perfectly capable system if you are OK with the legality of it – however it definitely gulps the bandwidth (or so I’ve heard).  So perhaps a better solution would be to record these shows from your own DVR box.  There are a lot of options for going this route, but I had previously come across something called the HDHomerun, which basically hooks up to your internal network, and your cable and will stream HD MPEG2 streams to whatever computer you wish.  It’s a really neat device.


Let’s talk about software.  There is a lot to talk about here so let’s break it down into functionality.  Basically, what I want first and foremost is a PVR (or DVR, or whatever the heck you want to call it).  As a secondary project, I’d really love to have the capability to pipe live TV streams to my Roku.  I’ll save the secondary stuff for a future post (plus I haven’t had time to really tinker with this yet).

After a considerable amount of searching around for PVR solutions that run on Linux I found only two real potential options for me.  Because, as some of you may already know, I have an Ubuntu 12.04 server sitting on my network doing all kinds of NAS-like stuff, it just made sense to also use this as a backend PVR.  The two major players in this space are:

TVHeadend:  This solution is actually downright perfect for me because it is a pure web gui based solution with little overhead, easy (well not quite, as I would soon find out) setup, with a nice interface.  Unfortunately, after hours of banging my head against the wall getting this setup, I found that there is a fundamental issue how the Prime works that current prevents content from being accessed via the DVB drivers and TVHeadend.  While you can scan for stations perfectly well, the content just won’t come through because each channel is encrypted (not flagged for content protection, but digitally encrypted via the cable card).  As I understand it, there are potential fixes in the works for TVHeadend and the related DVBHDHomerun drivers/shim, but it could be some time before something gets developed.  I’m not holding my breath.

MythTV:  This is the solution that I eventually ended up with.  And it’s not without a fair amount of pain.  Quite frankly, I’m still trying to get this all tweaked and setup correctly.  For anyone who knows MythTV, it’s a pretty clumsy implementation of a PVR (apologies to all those people out there that work hard to bring this to the public).  Much of the pain that I experienced was self imposed, because of my unique setup, but there are some clear improvements to the usability of MythTV setup etc.

Getting MythTV setup and configured is a long process, but it’s definitely worth it once you get things going.  I had lot’s of help from various forums and contributors to the MythTV wiki – and piecing these together was a huge help to me.

With my configuration, it was important to me to be able to run MythTV headless with a Web based UI because I’m running this entirely on my Ubuntu 12.04 LTS headless NAS.  This is a bit difficult since the MythTV setup is graphical (X-Based) and requires X to be installed on the system.  Side note to MythTV developers: Why the heck do we need this to be graphical?  Can we just use a text based setup?  Many people, just like me, will thank you for making it easier for us to get the backend setup on a headless server.  Anyhow, there is a neat little workaround for this if you have another Linux machine on your network to get things running.  From that other machine do this from the terminal:

ssh -X mythtv@yourservername mythtv-setup

With this, no X-server is necessary on your headless box.  One caveat was that on my Ubuntu 13.10 box the screen is shifted such that the buttons on the bottom of the screen are obscured, also my mouse is not really visible.  It’s still usable though, with the arrow keys.

But before you get there, there are basic steps to setup.  Follow instructions here to get drivers for HDHomerun, setup and scan channels etc. and get all pre-requisites setup.  And, take my advice, sign up for schedules direct.  If you’re serious about this being set up properly, then spend the $25 and just do it.  Seriously, don’t try to cheap out on this one.  Time is money… and this will save you bundles of time.

My rig still had issues after getting things setup.  For one, my database password is broken.  So anytime I try to log in to mythtv-setup with the command above, it prompts me for a password.  Despite trying to setup a password manually, wiping and starting from scratch, I still can’t get a password setup correctly.  So after three incorrect password attempts it still let’s me into setup and I can still configure everything just fine.  As far as I can tell, the password is just an inconvenience.  Hopefully that doesn’t change someday and lock me out.

Mythweb was interesting to setup, since I already had a web server running on my system.  I ended up simply copying the Mythweb files over to my web server root and then everything seemed to just work.  Neat.

User Job Scripts

After getting MythTV up and running, I wanted to play with the user job scripts to try and do some fancy things. I wanted to try to run the commercial flagging, removal, transcoding, renaming and moving to Plex.

Again, after hours of much pain, I finally ended up with a script that will transcode, rename and move the transcoded copy of the file to Plex.  Why did I skip the commercial flagging?  It’s unreliable.  And with my limited testing, the flagging was not working well, skipping portions of the actual programming.  In order to actually cut the commercials, you need to use the mythtv transcoding tool which for some odd reason seemed to introduce errors in my files.  It was a bust from the start.  Maybe some day I will try it again, but for now, I’ve removed it from my script.

My script is currently pretty simple.  Here’s the general flow:

1. Creates a temporary directory under your recordings directory for the show it is about to transcode.

2. Uses Handbrake (could be modified to use ffmpeg or other transcoder, but I chose this out of simplicity) to transcode the original, very large MPEG2 format file to a smaller, more manageable H.264 mp4 file (which can be streamed to my Roku boxes).

3. Uses Filebot to rename the file and add the season number and episode number (sXXeXX).  I do this because it makes it much smoother for the last step to occur without issues.

4. Uses the Sickbeard script, sabtosickbeard.py, which is normally used by SabNZBd to organize your downloaded files into directories, and notify Sickbeard / Plex of the new show.  This will also rename your file… again.  You may be wondering why I use Filebot at all in step 3?  Well, the Sickbeard script seems to do better at recognizing the file if it already has a season number and episode number in the file name.  The script also cleans up for you by deleting the temporary folder after it’s moved the file.  Very nice!

What the script does NOT do.  My script doesn’t have any debug output.  My script does not remove the original file from MythTV recordings, or the database.  You’ll have to manually go delete things.  This is intentional, just in case things don’t go well, at least you have the backup.  Every so often you can manually clean up the recordings folder if you’re running low on space.


# Myth > Handbrake (H.264) > Plex Script++ for MythTV
# Pre-requisites:
# HandBrakeCLI
# Filebot (portable edition)
# Sickbeard w/sabtoSickBeard.py
# Usage:
# 'mythtoplex.sh %DIR% %FILE% %CHANID% %STARTTIME% "%TITLE%" "%SUBTITLE%"'
# Description:
# My script is currently pretty simple. Here's the general flow:
# 1. Creates a temporary directory under your recordings directory for
# the show it is about to transcode.
# 2. Uses Handbrake (could be modified to use ffmpeg or other transcoder,
# but I chose this out of simplicity) to transcode the original, very
# large MPEG2 format file to a smaller, more manageable H.264 mp4 file
# (which can be streamed to my Roku boxes).
# 3. Uses Filebot to rename the file and add the season number and
# episode number (sXXeXX). I do this because it makes it much smoother
# for the last step to occur without issues.
# 4. Uses the Sickbeard script, sabtosickbeard.py, which is normally used
# by SabNZBd to organize your downloaded files into directories, and
# notify Sickbeard / Plex of the new show. This will also rename your
# file... again. You may be wondering why I use Filebot at all in step 3?
# Well, the Sickbeard script seems to do better at recognizing the file if
# it already has a season number and episode number in the file name. The
# script also cleans up for you by deleting the temporary folder after
# it's moved the file.

# Edit the following for your system

TEMPDIR="/mnt/dionysus/mythtv/recordings/tmp" # Temporary directory for transcoding
SBSPATH="/home/parmeter/.sickbeard/autoProcessTV" # Path to sabToSickBeard.py
FBPATH="/home/parmeter/filebot" # Path to filebot.sh (from portable edition)
SED="/bin/sed" # Path to sed (Stream Editor)

# Do not edit below this line

VIDEODIR=$1 # %DIR% - Directory name of original file
FILENAME=$2 # %FILE% - Filename of original file
CHAN=$3 # %CHANID% - Channel ID for the recorded program - Reserved for future use
START=$4 # %STARTTIME% - Start time of the recorded program - Reserved for future use
TITLE=$5 # %TITLE% - Program Title
SUBTITLE=$6 # %SUBTITLE% - Program Subtitle

MYPID=$$ # Process ID for current script

echo "********************************************************"
echo "********************************************************"
echo " MythTV to Plex > Transcode and Organize"
echo "********************************************************"
echo "********************************************************"

# Adjust niceness of CPU priority for the current process
renice 19 $MYPID

# Convert space laden variables to have underscores instead (not used in lookup)
OTITLE=`echo $TITLE | $SED -e 's/[[ \t]]*/_/g' | $SED -e $sed_str`
OSUBTITLE=`echo $SUBTITLE | $SED -e 's/[[ \t]]*/_/g' | $SED -e $sed_str`

# Make temporary directory TEMPDIR/OTITLE

echo "********************************************************"
echo "Transcoding, Converting to H.264 w/Handbrake"
echo "********************************************************"

HandBrakeCLI -i "$VIDEODIR/$FILENAME" -o "$TEMPDIR/$OTITLE/$OUTFILE" --audio 1 --aencoder copy:aac --audio-fallback faac --audio-copy-mask aac --preset="Universal"

# First Pass: FileBot
echo "********************************************************"
echo "Rename with FileBot... $OUTFILE"
echo "********************************************************"
# Filebot may fail if permissions are set correctly.
# 1. Make sure Filebot is executable by the mythtv user
# 2. Make sure Filebot's cache folder permissions are writable by the mythtv user
$FBPATH/./filebot.sh -rename "$TEMPDIR/$OTITLE/$OUTFILE" --format "{n}-{s00e00}-{t}" --db tvrage -non-strict

# Second Pass: SickBeard
echo "********************************************************"
echo "Sending to SickBeard for proper organization w/Plex"
echo "********************************************************"
# Set permissions so SickBeard doesn't fail (ymmv)
chmod -R 777 $TEMPDIR/$OTITLE/
# Execute script on the temporary directory
# This script may fail if permissions aren't set correctly
# 1. Make sure this script is executable by the mythtv user
# 2. Make sure that the source and destination folders are writable by the sickbeard script owner/user
python $SBSPATH/sabToSickBeard.py $TEMPDIR/$OTITLE/

echo "Done. Congrats!"

Was this post helpful?
  • Thanks 
  • Sort-of 
  • Not Helpful 

It’s been a while, but I’ve finally come around to installing couch potato on my Ubuntu NAS box.  Thanks to my brother-in-law, who sent an e-mail to me that day regarding couch potato, I felt motivated to get it installed. However, what should have taken only maybe 30 minutes or so ended up stretching into two hours.

I had done a quick google search on installing couch potato on Ubuntu and come up with Ainer’s fine instructions and another page (on how-to-forge)on creating the ultimate NAS.  Both had great instructions, don’t get me wrong, but they were instructions for couch potato v1… which is unfortunately EOL’d.  As I happily attempted to install couch potato v1 using the instructions, I came across different instructions on the couch potato website which conflicted with what I was doing.  Needless to say I had burnt through an hour on this already.

Fortunately, I came across a wonderful site (linuxplained.com) that explained everything for me and got me up and running in no time.  (thank you very much Anand, this helped me greatly)

And for those of you with short attention spans and just want the steps in raw form, then here they are:

sudo apt-get install git-core python
cd ~
git clone git://github.com/RuudBurger/CouchPotatoServer.git .couchpotato
sudo cp ~/.couchpotato/init/ubuntu /etc/init.d/couchpotato


sudo nano /etc/init.d/couchpotato

Edit the following then save (CTRL-O) and exit (CTRL-X) (replace user with your username):

# path to app

# user

Then back at the terminal prompt, set the script to executable and add to the boot script.

sudo chmod +x /etc/init.d/couchpotato
sudo update-rc.d couchpotato defaults

Now, the next time you boot couch potato server will auto-run.  Optionally you can manually start and stop the service by the following commands:

sudo /etc/init.d/couchpotato start
sudo /etc/init.d/couchpotato stop

And there you have it.  Navigate on over to (or whatever your NAS IP is with 5050 as the port) to start the configuration wizard.  Linuxplained.com has a great guide for that too.  Happy downloading!


Was this post helpful?
  • Thanks 
  • Sort-of 
  • Not Helpful 

Previously on this blog, I’ve written about how you can access your files from anywhere using freenas and ajaxplorer or ssh.  Given that I’ve switched to Ubuntu server, I wanted to clarify that the ssh method still works great, and in fact can be easily accessed via Android apps as well! (I should have titled this post “Access your files from anywhere with Ubuntu Server”)

Regarding accessing your files from Android, I’m sure this would also work with iOS devices as well, however I’m personally an Android user.  All you really need is a file manager or FTP program that can talk to an SFTP server.  I personally love EStrongs File Explorer and recommend it for general Android file management.  It also supports SFTP, perfect for accessing your SSH FTP server and all of your files.

Simply poke a hole in your router (I would suggest not using port 22) and route to your Ubuntu server SSH port 22.  Easy as pie.

Was this post helpful?
  • Thanks 
  • Sort-of 
  • Not Helpful 

Public service announcement folks.   Recently, after completing updates where the Linux kernel was being updated, my Ubuntu server hung on reboot.  This was rather unpleasant for me since it meant that I needed to climb up on a chair, attach a monitor and keyboard and try to debug the issue of why my system wasn’t booting.

Surprisingly, the system was booting just fine, it was just waiting happily in GRUB (the bootloader) for my input.  This is odd, since GRUB is supposed to auto-boot without any user input.  Somehow, with the update I had recently done, this had changed.

Luckily, I found this blog which told me exactly how to fix this issue.  Unfortunately this has happened twice now and I’ve had to edit the GRUB config each time.   Here’s what you need to do. (many thanks to Knowledge Republic’s blog for documenting this fix)

sudo chmod 644 /boot/grub/grub.cfg

sudo nano /boot/grub/grub.cfg

Find the following line and change from:

set timeout=-1


set timeout=0

Drop me a comment if this helps you out.

Was this post helpful?
  • Thanks 
  • Sort-of 
  • Not Helpful 

Thanks to a tip from one of my commenters, I’ve discovered that FreeNAS 7 (formally “legacy” FreeNAS) lives on as NAS4Free.  This is pretty exciting news, as I did indeed love FreeNAS and it’s super easy Web GUI.  While I’m happy to see that the project has been carried forward with an updated OS (FreeBSD 9), I’m not going to be doing any switching anytime soon.  I’m pretty committed to Ubuntu Server now, and quite frankly the amount of time required to re-setup all of my software would be too much (not to mention lack of Plex support too!).

I would love to see if someone could port the web admin UI to Ubuntu or Debian for general usage.  Anyone out there that’s handy with porting, please consider this my official request.

Over and out.

Was this post helpful?
  • Thanks 
  • Sort-of 
  • Not Helpful 
To maximize my remote file management capabilities, I wanted to install a file manager giving me the same functionality I had before with my FreeNAS 7 server.  This was easy enough since I had previously setup Ajaxplorer on my FreeNAS server, and the steps to setup on Ubuntu are basically the same.  Ajaxplorer has come a long way since I first started playing around with it and it’s now a pretty darned amazing piece of software.  I personally love this because I can view pictures remotely, extremely easily with any web browser – and it looks great!


The challenges I had were ensuring I had the right security in place.  Since I installed the Apache2 webserver with Ubuntu Server initially, there wasn’t much to do there, except to setup SSL.  Your mileage may vary, but here’s what I did.

Configure SSL on Apache2

Ok, this is definitely not an quick & easy task so I’m going to redirect you to a couple of resources that I found extremely helpful in getting this all setup.  Everything you need to know for Ubuntu 12.04 SSL certificate generation and apache setup is here:

These other two sites were great also and filled in some of the gaps from the above instructions.

Creating the self-signed certificates:

Setting up Apache2 SSL on Ubuntu:


Install Ajaxplorer

  • Step 1: Go to the Ajaxplorer website and download the latest zip (http://ajaxplorer.info).  I’m personally using Ajaxplorer v4.2.0.  There is almost definitely a newer version out there now.
  • Step 2: Unpack the ajaxplorer-4.x.x.zip into a directory off of your webserver root directory.  For example “. www-sslajaxplorer”.  Confirm that all of the directories and files were created properly and that permissions were set properly (see this page for more details)
  • Step 3: Point your browser to your server IP and new webserver port (i.e. to get started.   A diagnostic tool will be ran once to check that your configuration is ok.  You may get some warnings letting you know if you have any incompatibilities, but Ubuntu has most everything you need already setup.  Despite these warnings you should have a mostly functional web file manager installed.
  • Step 4: Click continue and you should see a warning telling you that the user « admin » has been created with the password « admin » : log in with this id/password, and go the the « Settings » panel to change the admin password.  (Note:  For greater security, it’s best to create a new admin account with a different name, then delete the automatically created ‘admin’ account.  This makes it slightly harder for evil robots to guess the login credentials.)
  • Step 5: Configure your users and repositories. (See this page for more details)


Poke a Hole in your Router

Because everyone has a different type of router at home, I won’t even attempt to begin to tell you how to do this.  However, you’ll want to make sure that you port-forward whatever port you defined in your Apache2 configuration above.  You can use a different outside port if you desire, but I like to keep it simple and use the same port number.

Now you can access your stuff anywhere you have an Internet connection.  If you have a Dynamic DNS service to help you remember your IP, even better!

Was this post helpful?
  • Thanks 
  • Sort-of 
  • Not Helpful 

Yup, I jumped on the bandwagon recently and setup sickbeard and sabnzbd on my Ubuntu NAS box.  Sickbeard and sabnzbd and it’s direct integration with Plex are really the most awesome thing since Subsonic that could have happened to my server.  Really.  It’s amazing.  Trust me.

The whole thing took me a few hours (all told) to setup partly because it involves spending my hard-earned cash on certain services and partly because I was bouncing around different sites trying to compile the steps I needed to go through to get it setup properly.  I thought it might be helpful to send out a very quick, no-nonsense guide to getting it installed (but not configured – that’s the time consuming bit).

1. Install SabNZBd Plus

As of the writing of this article, it seems that sabnzbdplus is now part of the ubuntu 12.04 repositories.   If you’re on an older version of ubuntu, you may have to go do some research and add a third-party repository.  As for this guide, I’m going the easy route.  Login to your server and type the following on the command lines:

sudo apt-get update

sudo apt-get install sabnzbdplus

sudo apt-get install sabnzbdplus-theme-mobile

This is going to install a few packages and get SabNZBd Plus installed.  Easy, right?  Yup.  Now go edit the configuration file:

sudo nano /etc/default/sabnzbdplus

Now you’ll need to edit the following:

  • USER=putyourusernamehere

Don’t use ROOT.  Bad things may happen.  Save and exit.

That’s it.  Now go configure it at:

  • http://your.server.ip.here:8080/sabnzbd

I recommend following Ainer’s excellent instructions here:



2. Install Sick Beard

Open up a terminal window and execute the following commands.  Make sure you navigate to your user directory of choice (i.e. /home/username) where you’d like to complete the install.  Same user directory as used above in the Sabnzbd instructions.

wget https://github.com/midgetspy/Sick-Beard/tarball/master -O sickbeard.tar.gz

tar xf sickbeard.tar.gz

This will grab the latest Sick Beard package from the internets.  Then it will unpack the contents of the package to a directory names something like “midgetspy-Sick-Beard-xxxxxxx”.

Now we need to move that into it’s install directory.

mv midgetspy-Sick-Beard-xxxxxxx .sickbeard

sudo mv .sickbeard/init.ubuntu /etc/init.d/sickbeard

sudo gedit /etc/init.d/sickbeard

From here on out you’ll want to configure Sick Beard to work with sabnzbd, setup TV shows to download, etc.  Once again, head over to Ainer’s site to get started:




Thanks to Ainer.org for their detailed instructions.  Without these I’d never have gotten this going… or it would have taken me twice as much time.   Of course, the developers of both Sickbeard and Sabnzbd – please consider donating to them – they make amazing software.  Plex, which I cannot praise enough, is also amazing.  I hope they keep providing Linux based server software for us folks using Plex + Roku.

Also when setting this up you may be considering which news servers to use and which search services.  I personally picked up an account with newshosting for news servers because it was a relatively cheap monthly cost (there are deals out there if you search).  For the search service, I went with NZB Matrix which is a onetime fee for life.  In retrospect, you probably don’t need to add a search service, but it definitely helps improve your likelihood of finding NZBs.  EDIT:  NZB Matrix is now defunct.  I have since been using the free services in Sick Beard and have been perfectly happy with the results.  No need to sign up for a pay NZB search engine really.  



I’ve posted these instructions here for educational purposes only.  Of course downloading copyrighted content is a no-no in most countries so please don’t break the law.


Was this post helpful?
  • Thanks 
  • Sort-of 
  • Not Helpful 

In my last “great ubuntu NAS project” post, I explained how to get an ubuntu server OS up and running with the absolute basics.  Now let’s get this thing customized.  I personally wanted to add the following to my rig:

  • Web UI for Administration (Ajenti)
  • Subsonic
  • Transmission
  • Plex Media Server

Let’s dive into the details…


More »

Was this post helpful?
  • Thanks 
  • Sort-of 
  • Not Helpful 

Here we go folks.  Complete, yet half-baked documentation on how to setup your very own home NAS using free Linux software.  I know this has been written about before, and in fact I have pulled from many fine sources (see my acknowledgement below).  This is documented here mainly so I don’t forget how I did this.  It’s not really for you – sorry internet.  Let’s get started:
More »

Was this post helpful?
  • Thanks 
  • Sort-of 
  • Not Helpful 

This is basically part two of my previous post about troubles in NAS-land.  That experience got me thinking about switching up my NAS solution.  Here’s why:

  1. FreeNAS v0.7.x is based on FreeBSD which is a fairly foreign OS to me.  Everything, I mean everything, that I do in that OS is a complete and total learning experience.  While it’s easy to setup initially, debugging is a chore.  I’m much more comfortable in either a Windows or Linux environment.
  2. FreeNAS v0.7.x has basically been EOL’d and is now in “legacy” support.  That leaves me wondering about security and stability issues when upgrading to new hardware (see my previous post).
  3. FreeNAS v0.7.x transfer speeds have been shown to be a bit slower than (reference needed) other solutions for SAMBA or NFS.
  4. FreeNAS v0.7.x uses UFS (Unix File System).  Yeah… I don’t know either.  Mounting EXT4 or NTFS is not an option, but would be extremely handy when swapping data around.
  5. FreeNAS v0.7.x has questionable USB drivers which seemed to hang on my system when doing large RSYNC or file copy sessions.  Bad.  Also… slooow.
  6. FreeNAS v0.7.x has PHP4 and Lighttp instead of PHP5 and Apache2.  There were a bunch of cool web applications that I wanted to install on FreeNAS but didn’t because I didn’t want to hassle with installing PHP5 and Apache and screwing up the Web UI.  It looks messy and difficult.

Given that I’m comfortable with Linux (Ubuntu specifically), I was eager to see if I could make the switch to something more Linux’y, and still have the nice features and flexibility of FreeNAS.  Here was what I wanted:

  1. I want to run the OS from a USB flash drive.  Well ideally it would be nice to run it from an SSD, but I’m not made of money.
  2. I want a comparable Web UI to FreeNAS (huge selling point).  Needs to have the ability to manage shares, services, show me uptime, transfer rate, etc.
  3. RAID 1 mirror capability is a must.  I have data that I want protected from a drive failure.  Redundancy is key to my strategy.
  4. Services like SMB/CIFS, SSH, NFS, FTP, etc. are important to access the data.
  5. File system flexibility.  I’d like the capability to attach new storage in different formats.  Linux gives me that flexibility.  EXT4 gives me the performance and the protection from issues like power-outages that killed my previous NAS solution dead.
  6. Remote Bittorrent.  Gotta have it.
  7. Subsonic (hell yes)
  8. Exandability.  I want to install my own web apps, servers like Plex Server, Tonido, OwnCloud, and a host others that would have just been a pain in FreeNAS.
  9. Good hardware support and regular security updates.
  10. Good support community.

Here was my final verdict:

  1. Yes, you can run Ubuntu Server from a USB flash drive.  Some folks have pointed out that USB flash drives may run the risk of wear-out and warn to not install an OS on a USB flash drive.  You can minimize the amount of writes that are targeted at the flash device by removing the swap partition (make sure you have enough system memory for this).  Others say that you should probably never run into a problem with a good quality USB device.
  2. I started to look for alternative Web UI’s for server administration and I stumbled across a few.  I was most impressed by Ajenti (http://ajenti.org), however it’s still in an very early stage of development.  I’ll probably go with this, but Webmin appears to be pretty widely used UI and I may fall back on this to get more functionality.
  3. Yup, I’ve done a lot with RAID Mirroring on Ubuntu in the past.  I’ll just dig up this old post (raiding the archives) and implement a mirror as I did before with MDADM.  Easy.
  4. Check.  SMB/CIFS, SSH, NFS, FTP are all a snap to install on ubuntu.  Just pull from the repositories, configure and off we go.  Ajenti has some capability to manage these services from the Web UI as well.
  5. Yes again.  Flexibility abounds.  I will choose EXT4 thank you very much.
  6. Same as FreeNAS, I’ll pull in the latest Transmission Deamon.
  7. Yup – and easier to install, upgrade and manage on Ubuntu.  It’s a deb package so I won’t have to much other than configure it once it’s installed.
  8. Resounding yes.  I will have full flexibility to install the latest PHP, Apache, MySQL, etc… this means I can go crazy installing other fun projects on the NAS in the future.
  9. Yes and yes.
  10. Yes – while FreeNAS has a great community, Ubuntu has a bigger user base and a bigger support community.

So that’s it.  I’ve made up my mind.   Ubuntu Server here we come.   It’s going to be quite a project to get this initially setup, but I think it will be an enriching and useful project.  It’ll open my home server up to new capabilities and hopefully enhanced performance.   FreeNAS is great, but it’s sort of like riding a bike with the training wheels on.  It’s time to ride on two wheels now.

P.S. I should also mention that during my research, I ran across OpenMediaVault (http://openmediavault.org/).   The original FreeNAS project forked into two projects.  The first fork was FreeNAS 8.0 based on FreeBSD8, which is aimed at higher-end server equipment.   I avoided this version because it is still in it’s infancy, requires a kind of ridiculous amount of power and it’s still based on FreeBSD.  I recently discovered that the second fork is actually a Debian Linux based fork aimed more at the home NAS market.   Now they have me second guessing things.  Since it’s based on debian, perhaps this would be the easier route… naw.   

Was this post helpful?
  • Thanks 
  • Sort-of 
  • Not Helpful