Deploying Hugo the Golang CMS on DigitalOcean

Creating a Droplet

I am a bit partial to CentOS. The lastest version as of this writing is CentOS Linux release 7.1.1503 (Core).

Setting up a droplet is always very simple. Just turn it on basically. Upload your ssh keys. Done.

Install Nginx

Add the epel repo:

yum install epel-release

Install

yum install nginx

Start it

service nginx start
systemctl enable nginx

Create the Folders

mkdir -p /var/www/ursite/
chown -R nginx:nginx /var/www
touch /var/www/ursite/index.html - or clone your site
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/ursite

Configure nginx

open the config file: vim /etc/nginx/conf.d/virtual.conf

Add the following:

#
# A virtual host using mix of IP-, name-, and port-based configuration
#

server {
    listen       80;
    server_name  scotttactical.com;
    server_alias go.scotttactical.com;

    location / {
        root   /var/www/stac/public/;
        index  index.html;
    }
}

Install Go + Hugo

yum install go

I decided to install from source Edit your bash script to have the proper variables in place.

yum install git hg
export GOPATH=$HOME/go
go get -v github.com/spf13/hugo
cp $GOPATH/bin/hugo /usr/local/bin/

NOTE: THis actually isn’t necessary. Just check it out and go with it. Afer screwing with it a few minutes I facepalmed… they are static files. Doh!