Jekyll Static Site

A Tugboat Preview for a Jekyll static site builds the static site, and then serves it. This config generates a static site that looks like your jekyll 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 Jekyll static site configuration you can use as a starting point, with comments to explain what’s going on:

services:
  # What to call the service hosting the site. Because there is only
  # one service, it is automatically set as the default service, which
  # does a few things
  #   1. Clones the git repository into the service container
  #   2. Exposes port 80 to the Tugboat HTTP proxy
  #   3. Routes requests to the preview URL to this service
  apache:
    # Use the available version of Apache by not specifying a version
    image: tugboatqa/httpd

    # A set of commands to run while building this service
    commands:
      # Commands that set up the basic preview infrastructure
      init:
        # Check for updates to apt-get, and then use it to install Ruby
        - apt-get update
        - apt-get install ruby ruby-dev

        # Install Jekyll
        - gem install jekyll bundler

        # Clean up apt artifacts to keep the Preview small
        - apt-get clean
        - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

      build:
        # Check for updates to Jekyll
        - bundle update

        # Use the `jekyll build` command to build your static site
        - bundle exec jekyll build

        # Link the document root to the expected path. This example links the
        # /public directory generated by the Jekyll build to the docroot
        - ln -snf "${TUGBOAT_ROOT}"/_site "${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!