Get ArkOS up and running on Ubuntu in a virtual machine
So you’ve heard about the plucky new all-in-one host-it-yourself Linux distribution that’s turning Raspberry Pi’s into Freedom Boxes? ArkOS is a nifty little Arch Linux spin-off with slick marketing and granny-friendly interface. Yes it runs owncloud, dovecot, XMPP, transmission, and many more. Fortunately you don’t need a Raspberry Pi to give it a spin: here’s how to run it on Ubuntu machines.
Note: Installing the guest additions package, and including rules for forwarding ports 80 and 443 may not actually be necessary, but hey ho, they can’t hurt either, and may avoid hiccups. And in case you’re wondering, my favourite Fedora laptop is out for repair currently so my KXStudio machine has stepped into the breach. Guides should return to trusty Fedora shortly.
- On your host Ubuntu machine, install dependencies:
sudo apt-get install python-setuptools libxslt1-dev python-dev libevent-dev
- install the latest version of Vagrant virtual machine configurator by downloading a .deb package direct from their website (repo versions are too old):
http://www.vagrantup.com/downloads.html
- Download the ArkOS ‘genesis’ image for Vagrant via web browser:
https://arkos.io/downloads/ (look for "genesis testing and development")
- $ cd into the directory containing the fresh image, then run this to generate a config file called ‘Vagrantfile’:
vagrant init [image filename]
- Add these configuration lines to the newly generated Vagrantfile to enable connectivity from within new virtual machines to the wider internet, and to forward necessary ports to your host machine so you can browse ArkOS hosted pages from the comfort of your host machine’s web browser. Paste the entirety of this code before the existing final line containing ‘end’:
# Allow the client Internet connectivity through the host
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
end
# Allow virt host to access pages hosted on the client
config.vm.network :forwarded_port, host: 1080, guest: 80
config.vm.network :forwarded_port, host: 8000, guest: 8000
config.vm.network :forwarded_port, host: 1443, guest: 443 - Start Vagrant for the first time, watch it try to set up Genesis:
vagrant up
- Watch out for git errors stating “host unreachable”. If there are none, you’re good. If there are, you have a connectivity problem.
- If all is good, ssh into your new machine:
vagrant ssh
- Double check for connectivity; if you get pings back, all is good. If not, you have connectivity problems:
ping google.com
- If all is good, proceed to the next step. If you have connectivity problems, $ exit to return to your host machine, fix your Vagrantfile config options, then restart the virtual machine, auto-reconfigure Genesis successfully, and ssh back in:
vagrant halt
vagrant up
vagrant provision
vagrant ssh - Install virtual box guest additions and lynx command line browser in the virtual machine:
sudo pacman -S virtualbox-guest-utils virtualbox-guest-modules virtualbox-guest-dkms lynx
- Restart the virtual machine:
exit
vagrant halt
vagrant up
vagrant ssh - Enter the genesis folder and start up Genesis:
cd genesis
sudo python2 genesis-panel - Wait for the additional packages to install, and look for the success message indicating that Genesis is running “INFO Starting server”.
- Now, on your host machine (Ubuntu), visit the below address and you should see your ArkOS control panel staring back at you, ready for play!:
localhost:8000
- Start configuration via the web interface, add database credentials for Genesis, follow the official instructions.
- Let us know how you get on in the comments 🙂