Hugo Static Site

A Tugboat Preview for a Hugo static site builds the static site, and then serves it. This config generates a static site that looks like your hugo build on your local development environment, but is accessible via the secure Tugboat URL by anyone who has the link; no need for the viewer to have a local environment.

Configure Tugboat

The Tugboat configuration is managed by a YAML file at .tugboat/config.yml in the git repository. Here’s a basic Hugo static site configuration you can use as a starting point, with comments to explain what’s going on:

 1services:
 2  # What to call the service hosting the site. Because there is only
 3  # one service, it is automatically set as the default service, which
 4  # does a few things
 5  #   1. Clones the git repository into the service container
 6  #   2. Exposes port 80 to the Tugboat HTTP proxy
 7  #   3. Routes requests to the preview URL to this service
 8  apache:
 9    # Use the available version of Apache by not specifying a version
10    image: tugboatqa/httpd
11
12    # A set of commands to run while building this service
13    commands:
14      # Commands that set up the basic preview infrastructure
15      init:
16        # Use curl to download Hugo into the Apache service
17        - curl -Ls https://github.com/gohugoio/hugo/releases/download/v0.58.3/hugo_0.58.3_Linux-64bit.tar.gz | tar -C
18          /usr/local/bin -zxf - hugo
19
20      build:
21        # Hugo's command to build your static site
22        - hugo
23
24        # Link the document root to the expected path. This example links the
25        # /public directory generated by the Hugo build to the docroot
26        - ln -snf "${TUGBOAT_ROOT}/public" "${DOCROOT}"

Want to know more about something mentioned in the comments of this config file? Check out these topics:

Start Building Previews!

Once this Tugboat configuration file is committed to your git repository, you can start building previews!