Deploy

Sites built with Wowchemy can be deployed to almost any provider due to the static nature of the generated website.

Have you considered making a professional, memorable impression on your visitors with your very own personalized domain name? Get a personalized domain name and learn how to set it up.

If you create your site using the wizard, it will be automatically deployed to the recommended provider, Netlify.

Let’s take a look at Netlify and some of the alternatives below.

If you decide to deploy with Netlify (recommended), your site will be built automatically.

Otherwise, download your site to your computer and run the hugo command in the terminal app to generate your entire site in a new folder named public/. The contents of the public/ folder can then be uploaded to whichever host you choose.

Netlify

Users recommend deploying a site with Netlify for the most convenient and scalable experience.

Netlify is free and provides ultra-fast global access, automated deployment when you add content, and automatic HTTPS security. What’s more, Netlify facilitates account management for the CMS, contact forms, private pages, and deploy previews out-of-the-box.

Check out our guide to deploy with Netlify.

Scheduled builds

Learn how to schedule daily builds to publish upcoming content, such as blog posts and courses, according to their dates.

GitHub Pages

Go to Github and register for an account if you have not done so already. Github encourage using your real name as your username, and this can help your Github URL (which you will be assigned later) to have a professional appearance.

GitHub can execute a workflow to automatically build your site and deploy it to GitHub Pages everytime you update content in your GitHub repository.

Create a file in your GitHub repository named .github/workflows/gh-pages.yml and containing the following content:

name: Deploy GitHub Pages

on:
  push:
    branches:
      - main  # Set a branch name to trigger deployment
  pull_request:

jobs:
  deploy:
    runs-on: ubuntu-20.04
    permissions:
      contents: write
    concurrency:
      group: ${{ github.workflow }}-${{ github.ref }}
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: true  # Fetch any Git submodules (true OR recursive)
          fetch-depth: 0    # Fetch all history for .GitInfo and .Lastmod

      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: 'latest'
          extended: true

      - name: Build
        run: hugo --minify

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        # If you're changing the branch from main, 
        # also change the `main` in `refs/heads/main` 
        # below accordingly.
        if: ${{ github.ref == 'refs/heads/main' }}
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./public

Don’t forget to rename your baseURL in config/_defaults/config.yaml with the value https://<USERNAME>.github.io for your user repository or https://<USERNAME>.github.io/<REPOSITORY_NAME> for a project repository.

Once Git has finished uploading your site to Github, you can open your new https://<USERNAME>.github.io website in your browser, substituting with your Github username.

Questions? Learn more about this GitHub Action for Hugo.

S3, GCS, and Azure

By uploading the contents of your public folder to Amazon S3, Google GCS, or Microsoft Azure, your site can be served with dynamic scaling to almost unlimited traffic.

This approach has the benefit of being one of the cheapest, and most reliable hosting options available as you only pay for what you use.

Hugo comes with built-in commands to help automate deployment to these providers.

Web host via FTP

Use an FTP client to upload the contents of your public folder to a web host. This may be especially convenient for academic students and staff who are provided with university web space.

Previous
Next