diff --git a/ubuntu-setup.bash b/ubuntu-setup.bash
index 95d2a96280f1e490f70f90c5b11931cb5396988e..c335fcf65aa705ec58cfcc1df30493a3127b5fb5 100755
--- a/ubuntu-setup.bash
+++ b/ubuntu-setup.bash
@@ -8,48 +8,81 @@
 #   licensed under the Affero General Public License version 3.  See
 #   the COPYRIGHT file.
 
-# Set extented globbing
+# USAGE: ./script/ubuntu-setup.bash
+# Do NOT run this script as root.
+
+# Set extented globbing 
 shopt -s extglob
 
+# fail on error
+set -e
+
+[ "$(whoami)" == "root" ] && echo "Please do not run this script as root/sudo
+We need to do some actions as an ordinary user. We use sudo where necessary." && exit 1
+
 # Check if the user has sudo privileges.
 sudo -v >/dev/null 2>&1 || { echo $(whoami) has no sudo privileges ; exit 1; }
 
-# Check if universal repository is enabled
-grep -i universe /etc/apt/sources.list > /dev/null || { echo "Please enable universe repository" ; exit 1 ; }
+# Check if universal repository is enabled 
+grep -i universe /etc/apt/sources.list > /dev/null || \
+    { echo "Please enable universe repository" ; exit 1 ; }
 
-# Check if wget is installed
-test wget || echo "Installing wget.." && sudo apt-get install wget && echo "Installed wget.."
+# Make sure that we only install the latest version of packages
+sudo apt-get update
 
-# Install build tools
+# Check if wget is installed 
+test wget || { echo "Installing wget.." && sudo apt-get install wget \
+    && echo "Installed wget.." ; }
+
+# Install build tools 
 echo "Installing build tools.."
-sudo apt-get -y --no-install-recommends install build-essential libxslt1.1 libxslt1-dev libxml2
+sudo apt-get -y --no-install-recommends install \
+    build-essential libxslt1.1 libxslt1-dev libxml2
 echo "..Done installing build tools"
 
-# Install Ruby 1.8.7
-echo "Installing ruby-full Ruby 1.8.7.."
+# Install Ruby 1.8.7 
+echo "Installing ruby-full Ruby 1.8.7.." 
 sudo apt-get -y --no-install-recommends install ruby-full
 echo "..Done installing Ruby"
 
-# Install Rake
+# Install Rake 
 echo "Installing rake.."
 sudo apt-get -y  --no-install-recommends install rake
 echo "..Done installing rake"
 
+#Store the release name so we can use it here and later
+RELEASE=$(lsb_release -c | cut -f2)
+
 # Get the current release and install mongodb
-lsb=$(lsb_release -rs)
-ver=${lsb//.+(0)/.}
-repo="deb http://downloads.mongodb.org/distros/ubuntu ${ver} 10gen"
-echo "Setting up MongoDB.."
-echo "."
-echo ${repo} | sudo tee -a /etc/apt/sources.list
-echo "."
-echo "Fetching keys.."
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
-echo "."
-sudo apt-get  update
-echo "."
-sudo apt-get -y  --no-install-recommends install mongodb-stable
-echo "Done installing monngodb-stable.."
+if [ $RELEASE == "maverick" ]
+then
+    #mongodb does not supply a repository for maverick yet so install
+    # an older version from the ubuntu repositories
+    if [ ! -f /usr/lib/libmozjs.so ]
+    then
+        echo "Lanchpad bug https://bugs.launchpad.net/ubuntu/+source/mongodb/+bug/557024
+has not been fixed using workaround:"
+        echo "sudo ln -s /usr/lib/xulrunner-1.9.2.10/libmozjs.so /usr/lib/libmozjs.so"
+        sudo ln -s /usr/lib/xulrunner-1.9.2.10/libmozjs.so /usr/lib/libmozjs.so
+    fi
+
+    sudo apt-get -y  --no-install-recommends install mongodb
+else
+    lsb=$(lsb_release -rs)
+    ver=${lsb//.+(0)/.}
+    repo="deb http://downloads.mongodb.org/distros/ubuntu ${ver} 10gen"
+    echo "Setting up MongoDB.."
+    echo "."
+    echo ${repo} | sudo tee -a /etc/apt/sources.list
+    echo "."
+    echo "Fetching keys.."
+    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
+    echo "."
+    sudo apt-get  update
+    echo "."
+    sudo apt-get -y  --no-install-recommends install mongodb-stable
+    echo "Done installing monngodb-stable.."
+fi
 
 # Install imagemagick
 echo "Installing imagemagick.."
@@ -64,33 +97,32 @@ echo "Installed git-core.."
 # Setting up ruby gems
 echo "Fetching and installing ruby gems.."
 (
-  RELEASE=$(lsb_release -c | cut -f2)
-  if [ RELEASE == "maverick" ]
-  then
-    sudo apt-get install --no-install-recommends -y rubygems
-    sudo ln -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle #for PATH
-  elif [ RELEASE == "lucid" ]
-  then
-    sudo add-apt-repository ppa:maco.m/ruby
-    sudo apt-get update
-    sudo apt-get install --no-install-recommends -y rubygems
-    sudo ln -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle #for PATH
-  else
-    # Old version
-    echo "."
-    cd /tmp
-    wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz
-    echo "."
-    tar -xf rubygems-1.3.7.tgz
-    echo "."
-    cd rubygems-1.3.7
-    echo "."
-    sudo ruby setup.rb
-    echo "."
-    sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
-    echo "."
-  fi
-)
+    if [ $RELEASE == "maverick" ]
+    then
+        sudo apt-get install --no-install-recommends -y rubygems
+        sudo ln -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle #for PATH
+    elif [ $RELEASE == "lucid" ]
+    then
+        sudo add-apt-repository ppa:maco.m/ruby
+        sudo apt-get update
+        sudo apt-get install --no-install-recommends -y rubygems
+        sudo ln -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle #for PATH
+    else
+        # Old version
+        echo "."
+        cd /tmp
+        wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz
+        echo "."
+        tar -xf rubygems-1.3.7.tgz
+        echo "."
+        cd rubygems-1.3.7
+        echo "."
+        sudo ruby setup.rb
+        echo "."
+        sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
+        echo "."
+    fi  
+) 
 echo "Done installing the gems.."
 
 # Install bundler
@@ -100,23 +132,40 @@ echo "Installed bundler.."
 
 # Take a clone of Diaspora
 (
-
-# Check if the user is already in a cloned source if not clone the source
-[[ $( basename $PWD ) == "diaspora" ]]  && echo "Already in diaspora directory" ||  git clone http://github.com/diaspora/diaspora.git ; cd diaspora
-echo "Cloned the source.."
-
-# Install extra gems
-cd diaspora
-echo "Installing more gems.."
-sudo bundle install
-echo "Installed."
-
-# Install DB setup
-echo "Seting up DB.."
-rake db:seed:tom
-echo "DB ready. Login -> tom and password -> evankorth. More details ./diaspora/db/seeds/tom.rb."
-
-# Run appserver
-echo "Starting server"
-bundle exec thin start
+    # Check if the user is already in a cloned source if not clone the source
+    [[ $( basename $PWD ) == "diaspora" ]]  && \
+        echo "Already in diaspora directory" ||  \
+        { git clone http://github.com/diaspora/diaspora.git && cd diaspora
+              echo "Cloned the source.."
+        }
+
+    # Install extra gems
+    echo "Installing more gems.."
+    bundle install
+    echo "Installed."
+
+    #Configure diaspora
+    cp config/app_config.yml.example config/app_config.yml
+    echo "You need to configure diaspora to tell it which URL it has.
+Opening editor in 5 seconds and then continuing with install."
+    sleep 5
+    #ensure EDITOR is set
+    if [ -z "${EDITOR}"]
+    then
+        EDITOR=vi
+    fi
+    $EDITOR config/app_config.yml
+
+    # Create the shared directory which is used by rake db:seed:tom
+    mkdir shared
+
+    # Install DB setup
+    echo "Seting up DB.."
+    rake db:seed:tom
+    echo "DB ready. Login -> tom and password -> evankorth.
+More details ./diaspora/db/seeds/tom.rb."
+
+    # Run appserver
+    echo "Starting server"
+    bundle exec thin start
 )