HOWTO: Setup DigitalOcean Ubuntu 15.10 Droplet


#1

UPDATED 01/29 thanks to @thoys and @Coal. Please advise @thoys or @Coal if anything is wrong here so that the community has something workable here. Thank you both!

I would like to help put together a simple tutorial to build a Digital Ocean droplet. My instructions might be lacking or slightly off so I will ask @thoys @Coal @OmegaHeron @Cracker_Hax to please verify and update if I may have incorrectly identified something.

All commands are written to assume you are running them as root, so if you are using a system where you login as a different user by default, use “sudo su -” to become root and if prompted enter the password for the account you are using.

  1. Go to Digital Ocean and create a Ubuntu 15.10 x64 512M droplet and follow the tutorial link below. If you are NOT using a 512M droplet skip the section on the swap.
    https://www.digitalocean.com
    https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-12-04

  2. Add remote repo for installing QT5.5 and updating Ubuntu for the latest dependencies.
    apt-add-repository ppa:canonical-qt5-edgers/backup-qt551
    apt-get update

  3. Log into your console and type (at this point you are root):
    apt-get install -y git build-essential cmake qt5-default qtscript5-dev libssl-dev qttools5-dev qttools5-dev-tools qtmultimedia5-dev libqt5svg5-dev libqt5webkit5-dev libsdl2-dev libasound2 libxmu-dev libxi-dev libasound2-dev libqt5xmlpatterns5-dev libqt5xmlpatterns5 libqt5xmlpatterns5-private-dev libqt5websockets5-dev

  4. Create a hifi user and switch to the user.
    adduser --system --shell /bin/bash --disabled-password --group --home /home/hifi hifi
    su - hifi

  5. Clone the repo.
    git clone https://github.com/highfidelity/hifi.git

  6. Make the build directory.
    cd hifi
    mkdir build
    cd build

  7. CMAKE the build to connect all the libraries and code.
    cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DSERVER_ONLY=TRUE -DRELEASE_TYPE=PRODUCTION -DRELEASE_NUMBER=custom ..

  8. Make the assignment-client and domain-server.
    make assignment-client && make domain-server

  9. Run domain-server and assignment-client.
    (nohup ~/hifi/build/domain-server/domain-server </dev/null &>/dev/null &) && nohup ~/hifi/build/assignment-client/assignment-client -n 5 </dev/null &>/dev/null &

  10. Go to the settings page at http://YOUR_SERVER_IP:40100 and protect it with a password.


#3

Trying your setup manual with 15.10 atm, the changes I made to make it work are as follows:

  1. Before step 2 I added a qt5.5 PPA:
    apt-add-repository ppa:canonical-qt5-edgers/backup-qt551

    (NOTE, adding that repository is on your own risk, this PPA is probably not verified by anyone to not do harm to your machine, please correct me if I’m wrong :wink: )

  2. In step 2 remove: qtquick*

  3. I followed @Coal’s advice to use the -DSERVER_ONLY=TRUE flag in step 5

  4. Note for step 9 it doesn't matter anymore from which directory you launch the domain-server and assignment-clients, since the entities are stored in a different location than the runpath. 
    This allows you to run the assignment clients/domainserver both in one go:
    
    `(nohup ~/hifi/build/domain-server/domain-server  </dev/null &>/dev/null &) && nohup ~/hifi/build/assignment-client/assignment-client -n 5  </dev/null &>/dev/null &`
    

Enjoy!


#4

Just tested the steps above 2x on a 15.10 64 droplet and successfully on a 15.10 VM inside my local machine. Thank you @thoys and @Coal.

@chris we now have a very easy Linux solution!


#5

Is it worth dropping in apt-get install software-properties-common at the beginning of step 2? in the quirky event that isn’t installed for some reason (on my VMware instance it wasn’t)


#6

Interesting, I installed it without that on a Oracle VM Virtual Box Ub 15.10 and it didn’t need it. It is worth exploring however and we will test again for it. Thank you!


#7

I think VMware interferes with the install process, it never prompted me for software selection either which on VBox it does. (Heads up for anyone else using VMware :slightly_smiling: )