Skip to content
Browse files

docs: Add documentation for "hugo deploy"

  • Loading branch information...
vangent authored and bep committed May 30, 2019
1 parent 5e83f42 commit 1384d77a04d7027d719993c6f54f892b5e7974db
Showing with 115 additions and 0 deletions.
  1. +115 −0 docs/content/en/hosting-and-deployment/
@@ -0,0 +1,115 @@
title: Hugo Deploy
linktitle: Hugo Deploy
description: You can upload your site to GCS, S3, or Azure using the Hugo CLI.
date: 2019-05-30
publishdate: 2019-05-30
lastmod: 2019-05-30
categories: [hosting and deployment]
keywords: [s3,gcs,azure,hosting,deployment]
authors: [Robert van Gent]
parent: "hosting-and-deployment"
weight: 10
weight: 10
sections_weight: 10
draft: false
aliases: []
toc: true

You can use the "hugo deploy" command to upload your site directly to a Google Compute Storage (GCS) bucket, an AWS S3 bucket, and/or an Azure Storage bucket.

## Assumptions

* You have completed the [Quick Start][] or have a Hugo website you are ready to deploy and share with the world.
* You have an account with the service provider ([Google Cloud][], [AWS][], or [Azure][]) that you want to deploy to.
* You have authenticated locally.
* Google Cloud: [Install the CLI]( and run [`gcloud auth login`](
* AWS: [Install the CLI]( and run [`aws configure`](
* Azure: [Install the CLI]( and run [`az login`](

## Create a bucket to deploy to

Create a storage bucket to deploy your site to. If you want your site to be
public, be sure to configure the bucket to be publicly readable.

### Google Cloud Storage (GCS)

Follow the [GCS instructions for how to create a bucket](

### AWS S3

Follow the [AWS instructions for how to create a bucket](

### Azure Storage

Follow the [Azure instructions for how to create a bucket](

## Configure the deployment

In the configuration file for your site, add a `[deployment]` section with one
or more `[[deployment.targets]]` section, one for each deployment target. Here's
a detailed example:

# By default, files are uploaded in an arbitrary order.
# Files that match the regular expressions in the "Order" list
# will be uploaded first, in the listed order.
Order = [".jpg$", ".gif$"]
# An arbitrary name for this target.
Name = "mydeployment"
# The Go Cloud Development Kit URL to deploy to. Examples:
# URL = "gs://<Bucket Name>" # For GCS; see
# URL = "s3://<Bucket Name>?region=<AWS region>" # For S3; see
# URL = "azblob://$web" # For Azure Storage; see
# You can use a "prefix=" query parameter to target a subfolder of the bucket:
# URL = "gs://<Bucket Name>?prefix=a/subfolder/"
# If you are using a CloudFront CDN, deploy will invalidate the cache as needed.
CloudFrontDistributionID = <ID>
# ... add more [[deployment.targets]] sections ...
# [[deployment.matchers]] configure behavior for files that match the Pattern.
# Samples:
# Cache static assets for 20 years.
Pattern = "^.+\\.(js|css|svg|ttf)$"
Cache-Control = "max-age=630720000, no-transform, public"
gzip = true
Pattern = "^.+\\.(png|jpg)$"
Cache-Control = "max-age=630720000, no-transform, public"
gzip = false
Pattern = "^.+\\.(html|xml|json)$"
gzip = true

## Deploy

To deploy to a target:
hugo deploy --target=<target>

Hugo will identify any local changes that need to be uploaded, and ask for
confirmation before doing anything.

See `hugo help deploy` for more command-line options.

[Quick Start]: /getting-started/quick-start/
[Google Cloud]: []
[AWS]: []
[Azure]: []

0 comments on commit 1384d77

Please sign in to comment.
You can’t perform that action at this time.