Skip to content

Instantly share code, notes, and snippets.

@glinton
Last active September 11, 2017 21:00
Show Gist options
  • Save glinton/fb8b025521886b5e728534a78924defb to your computer and use it in GitHub Desktop.
Save glinton/fb8b025521886b5e728534a78924defb to your computer and use it in GitHub Desktop.
Install and use nanobox on a linux cloud box (or about any other linux box). Tested on DigitalOcean 16.04

This guide assumes you have a remote dev server set up and have deploy[ed] dry-run, as well as added the mytest.dev dns alias to the dry-run environment

Create a config file for portal

portal.json

{
 "api-token": "123",
 "api-host": "0.0.0.0",
 "api-port": 8443,
 "just-proxy": true,
 "database-connection": "scribble:///var/db/portal",
 "cluster-conection": "none://",
 "balancer": "nginx",
 "insecure": false,
 "proxy-ignore-upstream": true,
 "server": true,
 "log-level": "info"
}

Start portal on your dev server

portal -c portal.json

Add a route to portal (run on your dev server) (use target:port if running locally)

portal -i -t 123 add-route -j '{"subdomain":"test1","targets":["http://mytest.dev"]}'

Add the hosts entry locally

echo 'my.ser.ver.ip test1.mydomain.com' >> /etc/hosts

Connect to your remote app

curl test1.mydomain.com

# must run as root
if [ "$USER" != "root" ]; then
echo "Must run as root!"
exit 1
fi
# create user 'nanouser' with password 'password'
useradd -m -p papAq5PwY/QQM -s /bin/bash nanouser
# make 'nanouser' a sudoer
usermod -aG sudo nanouser
# get docker
curl -fsSL https://get.docker.com/ | sh
# add 'nanouser' to docker group
usermod -aG docker nanouser
# create some directories
mkdir -p /home/nanouser/Downloads/nano
mkdir /home/nanouser/bin
# download and extract the installer (technically it should be downloaded after logging into the dashboard, but it is open source). Re-run to upgrade
curl https://d1ormdui8qdvue.cloudfront.net/installers/v2/linux/nanobox-2.tar.gz | tar -C /home/nanouser/Downloads/nano -zxf -
# link required binaries to `bin` path
ln -sf /home/nanouser/Downloads/nano/usr/local/bin/nanobox /home/nanouser/bin/nanobox
ln -sf /home/nanouser/Downloads/nano/usr/local/bin/nanobox-machine /home/nanouser/bin/nanobox-machine
ln -sf /home/nanouser/Downloads/nano/usr/local/bin/nanobox-vpn /home/nanouser/bin/nanobox-vpn
# add `bin` to path
echo 'export PATH=$PATH:/home/nanouser/bin' >> /home/nanouser/.bashrc
# enable swap for larger codebases
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
# configure nanobox
su - nanouser -c "nanobox config set provider native"
# `su - nanuser` then start nanobox with `nanobox start`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment