-
-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: Add documentation for "hugo deploy"
- Loading branch information
Showing
1 changed file
with
115 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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] | ||
menu: | ||
docs: | ||
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](https://cloud.google.com/sdk) and run [`gcloud auth login`](https://cloud.google.com/sdk/gcloud/reference/auth/login). | ||
* AWS: [Install the CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) and run [`aws configure`](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html). | ||
* Azure: [Install the CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) and run [`az login`](https://docs.microsoft.com/en-us/cli/azure/authenticate-azure-cli). | ||
|
||
## 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](https://cloud.google.com/storage/docs/creating-buckets). | ||
|
||
### AWS S3 | ||
|
||
Follow the [AWS instructions for how to create a bucket](https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html). | ||
|
||
### Azure Storage | ||
|
||
Follow the [Azure instructions for how to create a bucket](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-portal). | ||
|
||
## 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: | ||
|
||
``` | ||
[deployment] | ||
# 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$"] | ||
[[deployment.targets]] | ||
# 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 https://gocloud.dev/howto/blob/open-bucket/#gcs. | ||
# URL = "s3://<Bucket Name>?region=<AWS region>" # For S3; see https://gocloud.dev/howto/blob/open-bucket/#s3. | ||
# URL = "azblob://$web" # For Azure Storage; see https://gocloud.dev/howto/blob/open-bucket/#azure. | ||
# 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: | ||
[[deployment.matchers]] | ||
# Cache static assets for 20 years. | ||
Pattern = "^.+\\.(js|css|svg|ttf)$" | ||
Cache-Control = "max-age=630720000, no-transform, public" | ||
gzip = true | ||
[[deployment.matchers]] | ||
Pattern = "^.+\\.(png|jpg)$" | ||
Cache-Control = "max-age=630720000, no-transform, public" | ||
gzip = false | ||
[[deployment.matchers]] | ||
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]: [https://cloud.google.com] | ||
[AWS]: [https://aws.amazon.com] | ||
[Azure]: [https://azure.microsoft.com] | ||
|