After trying Ghost for a few time, I finally moved to an even simpler system: Jekyll. I’m using a Mac with MacPorts installed to manage all what I need, but I will use an empty Ubuntu Server 16.04 for easy of explanation:

So basically I have:

  • Ruby and Python pip.
  • Bundler
  • Jekyll
  • AWS CLI.

Requisites:

apt-get install \
 python-pip \
 ruby \
 ruby-dev

Install jekyll:

gem install \
 bundler \
 jekyll 

Install AWS CLI:

pip install --upgrade --user awscli
aws configure

Create the basic website:

jekyll new blog

And generate the static files:

cd blog
JEKYLL_ENV=production jekyll build --verbose

This will generate a _site directory where all static files will be. That’s what we will upload to S3:

cd _site
aws s3 sync . s3://www.ntplu.com/ 

That’s it! Your website is up and running.