summaryrefslogtreecommitdiffstats
path: root/docs/content/en/hosting-and-deployment
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content/en/hosting-and-deployment')
-rw-r--r--docs/content/en/hosting-and-deployment/_index.md2
-rw-r--r--docs/content/en/hosting-and-deployment/deployment-with-rclone.md4
-rw-r--r--docs/content/en/hosting-and-deployment/deployment-with-rsync.md10
-rw-r--r--docs/content/en/hosting-and-deployment/hosting-on-21yunbox.md2
-rw-r--r--docs/content/en/hosting-and-deployment/hosting-on-aws-amplify.md2
-rw-r--r--docs/content/en/hosting-and-deployment/hosting-on-azure-static-web-apps.md2
-rw-r--r--docs/content/en/hosting-and-deployment/hosting-on-cloudflare-pages.md1
-rw-r--r--docs/content/en/hosting-and-deployment/hosting-on-firebase.md15
-rw-r--r--docs/content/en/hosting-and-deployment/hosting-on-github/index.md13
-rw-r--r--docs/content/en/hosting-and-deployment/hosting-on-gitlab.md6
-rw-r--r--docs/content/en/hosting-and-deployment/hosting-on-keycdn.md6
-rw-r--r--docs/content/en/hosting-and-deployment/hosting-on-netlify.md10
-rw-r--r--docs/content/en/hosting-and-deployment/hosting-on-render.md2
-rw-r--r--docs/content/en/hosting-and-deployment/hugo-deploy.md211
14 files changed, 200 insertions, 86 deletions
diff --git a/docs/content/en/hosting-and-deployment/_index.md b/docs/content/en/hosting-and-deployment/_index.md
index 4329469a5..35fd3cf05 100644
--- a/docs/content/en/hosting-and-deployment/_index.md
+++ b/docs/content/en/hosting-and-deployment/_index.md
@@ -2,7 +2,7 @@
title: Hosting and deployment
linkTitle: Overview
description: Site builds, automated deployments, and popular hosting solutions.
-categories: [hosting and deployment]
+categories: []
keywords: []
menu:
docs:
diff --git a/docs/content/en/hosting-and-deployment/deployment-with-rclone.md b/docs/content/en/hosting-and-deployment/deployment-with-rclone.md
index 6d45a0883..410851553 100644
--- a/docs/content/en/hosting-and-deployment/deployment-with-rclone.md
+++ b/docs/content/en/hosting-and-deployment/deployment-with-rclone.md
@@ -2,12 +2,12 @@
title: Deploy with Rclone
description: If you have access to your web host with SFTP/FTP/SSH/HTTP(DAV), you can use rclone to incrementally deploy your entire Hugo website.
categories: [hosting and deployment]
-keywords: [rclone,sftp,deployment]
+keywords: [deployment,rclone,sftp]
menu:
docs:
parent: hosting-and-deployment
-aliases: [/tutorials/deployment-with-rclone/]
toc: true
+aliases: [/tutorials/deployment-with-rclone/]
---
## Assumptions
diff --git a/docs/content/en/hosting-and-deployment/deployment-with-rsync.md b/docs/content/en/hosting-and-deployment/deployment-with-rsync.md
index 7c4cbda07..f341ad618 100644
--- a/docs/content/en/hosting-and-deployment/deployment-with-rsync.md
+++ b/docs/content/en/hosting-and-deployment/deployment-with-rsync.md
@@ -2,12 +2,12 @@
title: Deploy with Rsync
description: If you have access to your web host with SSH, you can use a simple rsync one-liner to incrementally deploy your entire Hugo website.
categories: [hosting and deployment]
-keywords: [rsync,deployment]
+keywords: [deployment,rsync]
menu:
docs:
parent: hosting-and-deployment
-aliases: [/tutorials/deployment-with-rsync/]
toc: true
+aliases: [/tutorials/deployment-with-rsync/]
---
## Assumptions
@@ -30,7 +30,7 @@ To make logging in to your server more secure and less interactive, you can uplo
First, install the ssh client. On Debian distributions, use the following command:
-{{< code file="install-openssh.sh" >}}
+{{< code file=install-openssh.sh >}}
sudo apt-get install openssh-client
{{< /code >}}
@@ -85,7 +85,7 @@ Create a new script called `deploy` the root of your Hugo tree:
Add the following content. Replace the `USER`, `HOST`, and `DIR` values with your own values:
-```bash
+```sh
#!/bin/sh
USER=my-user
HOST=my-server.com
@@ -136,4 +136,4 @@ sent 9,550 bytes received 1,708 bytes 7,505.33 bytes/sec
total size is 966,557 speedup is 85.86
```
-You can incorporate other proprocessing tasks into this deployment script as well.
+You can incorporate other processing tasks into this deployment script as well.
diff --git a/docs/content/en/hosting-and-deployment/hosting-on-21yunbox.md b/docs/content/en/hosting-and-deployment/hosting-on-21yunbox.md
index d6dfb666d..2ab0a1964 100644
--- a/docs/content/en/hosting-and-deployment/hosting-on-21yunbox.md
+++ b/docs/content/en/hosting-and-deployment/hosting-on-21yunbox.md
@@ -2,7 +2,7 @@
title: Host on 21YunBox
description: Host your Hugo site with 21YunBox's blazing fast Chinese CDN, fully-managed SSL and auto deploys from Gitee.
categories: [hosting and deployment]
-keywords: [21yunbox,hosting,deployment]
+keywords: [hosting,21yunbox]
menu:
docs:
parent: hosting-and-deployment
diff --git a/docs/content/en/hosting-and-deployment/hosting-on-aws-amplify.md b/docs/content/en/hosting-and-deployment/hosting-on-aws-amplify.md
index 0255c1723..43d75312a 100644
--- a/docs/content/en/hosting-and-deployment/hosting-on-aws-amplify.md
+++ b/docs/content/en/hosting-and-deployment/hosting-on-aws-amplify.md
@@ -2,7 +2,7 @@
title: Host on AWS Amplify
description: Develop and deploy a cloud-powered web app with AWS Amplify.
categories: [hosting and deployment]
-keywords: [amplify,hosting,deployment]
+keywords: [hosting,amplify]
menu:
docs:
parent: hosting-and-deployment
diff --git a/docs/content/en/hosting-and-deployment/hosting-on-azure-static-web-apps.md b/docs/content/en/hosting-and-deployment/hosting-on-azure-static-web-apps.md
index ec8cd996f..922cbfef2 100644
--- a/docs/content/en/hosting-and-deployment/hosting-on-azure-static-web-apps.md
+++ b/docs/content/en/hosting-and-deployment/hosting-on-azure-static-web-apps.md
@@ -2,7 +2,7 @@
title: Host on Azure Static Web Apps
description: Publish a Hugo site to Azure Static Web Apps.
categories: [hosting and deployment]
-keywords: [hosting,Azure Static Web Apps]
+keywords: [hosting,azure]
menu:
docs:
parent: hosting-and-deployment
diff --git a/docs/content/en/hosting-and-deployment/hosting-on-cloudflare-pages.md b/docs/content/en/hosting-and-deployment/hosting-on-cloudflare-pages.md
index 5c927ec99..e50143db7 100644
--- a/docs/content/en/hosting-and-deployment/hosting-on-cloudflare-pages.md
+++ b/docs/content/en/hosting-and-deployment/hosting-on-cloudflare-pages.md
@@ -2,6 +2,7 @@
title: Host on Cloudflare Pages
description: Cloudflare Pages can host your Hugo site with CDN, continuous deployment, 1-click HTTPS, an admin GUI, and its own environment variables.
categories: [hosting and deployment]
+keywords: [hosting,cloudflare]
menu:
docs:
parent: hosting-and-deployment
diff --git a/docs/content/en/hosting-and-deployment/hosting-on-firebase.md b/docs/content/en/hosting-and-deployment/hosting-on-firebase.md
index c58f4b752..028964bcf 100644
--- a/docs/content/en/hosting-and-deployment/hosting-on-firebase.md
+++ b/docs/content/en/hosting-and-deployment/hosting-on-firebase.md
@@ -1,6 +1,6 @@
---
title: Host on Firebase
-description: You can use Firebase's free tier to host your static website; this also gives you access to Firebase's NOSQL API.
+description: You can use Firebase's free tier to host your static website; this also gives you access to Firebase's NoSQL API.
categories: [hosting and deployment]
keywords: [hosting,firebase]
menu:
@@ -18,20 +18,19 @@ toc: true
Go to the [Firebase console][console] and create a new project (unless you already have a project). You will need to globally install `firebase-tools` (node.js):
-```txt
+```sh
npm install -g firebase-tools
```
Log in to Firebase (setup on your local machine) using `firebase login`, which opens a browser where you can select your account. Use `firebase logout` in case you are already logged in but to the wrong account.
-
-```txt
+```sh
firebase login
```
In the root of your Hugo project, initialize the Firebase project with the `firebase init` command:
-```txt
+```sh
firebase init
```
@@ -78,7 +77,7 @@ Don't forget to update your static pages before push!
To deploy your Hugo site, execute the `firebase deploy` command, and your site will be up in no time:
-```txt
+```sh
hugo && firebase deploy
```
@@ -86,7 +85,7 @@ hugo && firebase deploy
You can generate a deploy token using
-```txt
+```sh
firebase login:ci
```
@@ -98,7 +97,7 @@ This is a private secret and it should not appear in a public repository. Make s
You can then add a step in your build to do the deployment using the token:
-```txt
+```sh
firebase deploy --token $FIREBASE_DEPLOY_TOKEN
```
diff --git a/docs/content/en/hosting-and-deployment/hosting-on-github/index.md b/docs/content/en/hosting-and-deployment/hosting-on-github/index.md
index 4dc88faf1..f41250279 100644
--- a/docs/content/en/hosting-and-deployment/hosting-on-github/index.md
+++ b/docs/content/en/hosting-and-deployment/hosting-on-github/index.md
@@ -2,7 +2,7 @@
title: Host on GitHub Pages
description: Deploy Hugo as a GitHub Pages project or personal/organizational site and automate the whole process with GitHub Actions
categories: [hosting and deployment]
-keywords: [github,git,deployment,hosting]
+keywords: [hosting,github]
menu:
docs:
parent: hosting-and-deployment
@@ -32,7 +32,6 @@ See the [GitHub Pages documentation] to understand the requirements for reposito
[GitHub Pages documentation]: https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites
{{% /note %}}
-
[GitHub Pages documentation]: https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites
## Procedure
@@ -44,7 +43,7 @@ Step 2
: Push your local repository to GitHub.
Step 3
-: Visit your GitHub repository. From the main menu choose **Settings**&nbsp;>&nbsp;**Pages**. In then center of your screen you will see this:
+: Visit your GitHub repository. From the main menu choose **Settings**&nbsp;>&nbsp;**Pages**. In the center of your screen you will see this:
![screen capture](gh-pages-1.png)
{style="max-width: 280px"}
@@ -65,7 +64,7 @@ Step 5
Step 6
: Copy and paste the YAML below into the file you created. Change the branch name and Hugo version as needed.
-{{< code file=".github/workflows/hugo.yaml" >}}
+{{< code file=.github/workflows/hugo.yaml copy=true >}}
# Sample workflow for building and deploying a Hugo site to GitHub Pages
name: Deploy Hugo site to Pages
@@ -100,7 +99,7 @@ jobs:
build:
runs-on: ubuntu-latest
env:
- HUGO_VERSION: 0.115.4
+ HUGO_VERSION: 0.120.2
steps:
- name: Install Hugo CLI
run: |
@@ -109,7 +108,7 @@ jobs:
- name: Install Dart Sass
run: sudo snap install dart-sass
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
@@ -129,7 +128,7 @@ jobs:
--minify \
--baseURL "${{ steps.pages.outputs.base_url }}/"
- name: Upload artifact
- uses: actions/upload-pages-artifact@v1
+ uses: actions/upload-pages-artifact@v2
with:
path: ./public
diff --git a/docs/content/en/hosting-and-deployment/hosting-on-gitlab.md b/docs/content/en/hosting-and-deployment/hosting-on-gitlab.md
index 964e656ed..dce306253 100644
--- a/docs/content/en/hosting-and-deployment/hosting-on-gitlab.md
+++ b/docs/content/en/hosting-and-deployment/hosting-on-gitlab.md
@@ -2,7 +2,7 @@
title: Host on GitLab Pages
description: GitLab makes it easy to build, deploy, and host your Hugo website via their free GitLab Pages service, which provides native support for Hugo.
categories: [hosting and deployment]
-keywords: [hosting,deployment,git,gitlab]
+keywords: [hosting,gitlab]
menu:
docs:
parent: hosting-and-deployment
@@ -25,7 +25,7 @@ The `baseURL` in your [site configuration](/getting-started/configuration/) must
Define your [CI/CD](https://docs.gitlab.com/ee/ci/quick_start/) jobs by creating a `.gitlab-ci.yml` file in the root of your project.
-{{< code file=".gitlab-ci.yml" >}}
+{{< code file=.gitlab-ci.yml copy=true >}}
variables:
DART_SASS_VERSION: 1.64.1
HUGO_VERSION: 0.115.4
@@ -74,7 +74,7 @@ pages:
Next, create a new repository on GitLab. It is *not* necessary to make the repository public. In addition, you might want to add `/public` to your .gitignore file, as there is no need to push compiled assets to GitLab or keep your output website in version control.
-```bash
+```sh
# initialize new git repository
git init
diff --git a/docs/content/en/hosting-and-deployment/hosting-on-keycdn.md b/docs/content/en/hosting-and-deployment/hosting-on-keycdn.md
index 87f66acf5..e81129981 100644
--- a/docs/content/en/hosting-and-deployment/hosting-on-keycdn.md
+++ b/docs/content/en/hosting-and-deployment/hosting-on-keycdn.md
@@ -2,7 +2,7 @@
title: Host on KeyCDN
description: "Accelerate your Hugo site globally with a KeyCDN integration. This tutorial shows you how to set up your static site as a GitLab page behind a KeyCDN pull zone."
categories: [hosting and deployment]
-keywords: [keycdn,hosting,deployment,cdn]
+keywords: [hosting,keycdn]
menu:
docs:
parent: hosting-and-deployment
@@ -58,8 +58,8 @@ pages:
- public
only:
- master
-
```
+
Using this integration method, you will have to specify the Zone ID and your [KeyCDN API](https://www.keycdn.com/api) key as secret variables. To do this, navigate to the top-left menu bar in GitLab and select Projects. Then, select your project and click on the Settings page. Finally, select Pipelines from the sub-menu and scroll down to the Secret Variable section.
The Secret Variable for your Zone ID should look similar to:
@@ -76,7 +76,7 @@ The Zone ID and API key are used to purge your zone – it’s not strictly need
Now it’s time to push the newly created repository to GitLab:
-```bash
+```sh
git remote add origin git@gitlab.com:youruser/ci-example.git
git push -u origin master
```
diff --git a/docs/content/en/hosting-and-deployment/hosting-on-netlify.md b/docs/content/en/hosting-and-deployment/hosting-on-netlify.md
index 91d044755..9b01f4cd8 100644
--- a/docs/content/en/hosting-and-deployment/hosting-on-netlify.md
+++ b/docs/content/en/hosting-and-deployment/hosting-on-netlify.md
@@ -2,7 +2,7 @@
title: Host on Netlify
description: Netlify can host your Hugo site with CDN, continuous deployment, 1-click HTTPS, an admin GUI, and its own CLI.
categories: [hosting and deployment]
-keywords: [netlify,hosting,deployment]
+keywords: [hosting,netlify]
menu:
docs:
parent: hosting-and-deployment
@@ -19,7 +19,7 @@ toc: true
## Create a Netlify account
-Go to [app.netlify.com] and select your preferred signup method. This will likely be a hosted Git provider, although you also have the option to sign up with an email address.
+Go to [app.netlify.com] and select your preferred sign up method. This will likely be a hosted Git provider, although you also have the option to sign up with an email address.
The following examples use GitHub, but other git providers will follow a similar process.
@@ -55,21 +55,21 @@ You can [set Hugo version](https://www.netlify.com/blog/2017/04/11/netlify-plus-
For production:
-{{< code file="netlify.toml" >}}
+{{< code file=netlify.toml >}}
[context.production.environment]
HUGO_VERSION = "0.115.4"
{{< /code >}}
For testing:
-{{< code file="netlify.toml" >}}
+{{< code file=netlify.toml >}}
[context.deploy-preview.environment]
HUGO_VERSION = "0.115.4"
{{< /code >}}
The Netlify configuration file can be a little hard to understand and get right for the different environment, and you may get some inspiration and tips from this site's `netlify.toml`:
-{{< readfile file="netlify.toml" highlight="toml" >}}
+{{< readfile file=netlify.toml highlight=toml >}}
## Build and deploy site
diff --git a/docs/content/en/hosting-and-deployment/hosting-on-render.md b/docs/content/en/hosting-and-deployment/hosting-on-render.md
index 8965ad786..b43261c8d 100644
--- a/docs/content/en/hosting-and-deployment/hosting-on-render.md
+++ b/docs/content/en/hosting-and-deployment/hosting-on-render.md
@@ -2,7 +2,7 @@
title: Host on Render
description: Host your Hugo site for free with Render's global CDN, fully-managed SSL and auto deploys from GitHub.
categories: [hosting and deployment]
-keywords: [hosting,deployment]
+keywords: [hosting]
menu:
docs:
parent: hosting-and-deployment
diff --git a/docs/content/en/hosting-and-deployment/hugo-deploy.md b/docs/content/en/hosting-and-deployment/hugo-deploy.md
index ed603012b..45b917f1e 100644
--- a/docs/content/en/hosting-and-deployment/hugo-deploy.md
+++ b/docs/content/en/hosting-and-deployment/hugo-deploy.md
@@ -1,8 +1,8 @@
---
title: Hugo Deploy
-description: You can upload your site to GCS, S3, or Azure using the Hugo CLI.
+description: Upload your site to GCS, S3, or Azure
categories: [hosting and deployment]
-keywords: [s3,gcs,azure,hosting,deployment]
+keywords: [deployment,s3,gcs,azure]
menu:
docs:
parent: hosting-and-deployment
@@ -13,6 +13,7 @@ toc: true
You can use the "hugo deploy" command to upload your site directly to a Google Cloud Storage (GCS) bucket, an AWS S3 bucket, and/or an Azure Storage container.
+
## Assumptions
* You have completed the [Quick Start] or have a Hugo website you are ready to deploy and share with the world.
@@ -22,73 +23,202 @@ You can use the "hugo deploy" command to upload your site directly to a Google C
* 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).
* NOTE: Each service supports alternatives for authentication, including using environment variables. See [here](https://gocloud.dev/howto/blob/#services) for more details.
+* You have created a bucket to deploy to. If you want your site to be
+ public, be sure to configure the bucket to be publicly readable as a static website.
+ * Google Cloud: [create a bucket](https://cloud.google.com/storage/docs/creating-buckets) and [host a static website](https://cloud.google.com/storage/docs/hosting-static-website)
+ * Amazon S3: [create a bucket](https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html) and [host a static website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html)
+ * Microsoft Azure: [create a storage container](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-portal) and [host a static website](https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website)
+
+
+## Configuring your first deployment
+
+In the configuration file for your site, add a `[deployment]` section
+and a `[[deployment.targets]]` subsection. The only required parameters are
+the name and URL:
+
+```toml
+[deployment]
+
+[[deployment.targets]]
+# An arbitrary name for this target.
+name = "production"
+
+# URL specifies the Go Cloud Development Kit URL to deploy to. Examples:
+URL = "<FILL ME IN>"
+
+# Google Cloud Storage -- see https://gocloud.dev/howto/blob/#gcs
+#URL = "gs://<Bucket Name>"
+
+# Amazon Web Services S3; see https://gocloud.dev/howto/blob/#s3
+# For S3-compatible endpoints, see https://gocloud.dev/howto/blob/#s3-compatible
+#URL = "s3://<Bucket Name>?region=<AWS region>"
+
+# Microsoft Azure Blob Storage; see https://gocloud.dev/howto/blob/#azure
+#URL = "azblob://$web"
+
+```
+
+## Deploy
+
+To deploy to a target:
+
+```bash
+hugo deploy [--target=<target name>]
+```
+
+The deploy process recursively walks through your local publish directory
+(`public` by default) and syncs it to the destination bucket, to ensure
+that the local and remote contents match.
+
+If you don't specify a target, Hugo will deploy to the first target in your
+configuration.
+
+See `hugo help deploy` or [the deploy command-line documentation][commandline] for more command-line options.
+
+
+### How the file list works
-## Create a bucket to deploy to
+The first thing `hugo deploy` does is create file lists for local and remote by
+traversing the local publish directory and remote bucket.
-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.
+For both local and remote, the file list includes and excludes files according to
+the [deployment target's configuration][config] --
+* If the configuration specifies an `include` pattern, all files
+ are skipped by default except those matching the pattern.
+* If the configuration specifies an `exclude` pattern, files matching the
+ pattern are skipped.
-### Google Cloud Storage (GCS)
-Follow the [GCS instructions for how to create a bucket](https://cloud.google.com/storage/docs/creating-buckets).
+{{% note %}}
+When creating the local file list, a few additional skips apply: first, Hugo always
+skips files named `.DS_Store`.
-### AWS S3
+Second, Hugo always skips local hidden directories
+(directories with names starting with a period, e.g. `.git`) and does not
+traverse into them, except for the special [hidden directory named
+`.well-known`](https://en.wikipedia.org/wiki/Well-known_URI), which is
+traversed if it exists.
+{{% /note %}}
-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 storage container](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-portal).
+### How the local and remote file lists are compared
-## Configure the deployment
+In the second step, Hugo compares the two file lists to figure out what changes
+actually need to be made on the remote. File names are compared first; if the
+local and remote files both exist then the sizes and md5sums are compared. Any
+difference means that the file will be (re-)uploaded.
-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:
+Specifying the `--force` flag will ensure all files are re-uploaded even
+if Hugo cannot detect any differences between local and remote.
+
+Files are deleted from the remote bucket if they are not present in the local
+file list.
+
+{{% note %}}
+If a remote file is excluded from the file list generation using the
+exclude/include configs, then the comparison step will not know to delete the
+file -- so it will remain on the remote even if it isn't present locally.
+{{% /note %}}
+
+If the [`--confirm` or `--dryRun` flags][commandline] are given, Hugo displays
+what differences it has found and either pauses or stops here.
+
+### How synchronization works
+
+Hugo applies the list of changes to the remote storage bucket. Missing and/or
+changed files are uploaded, and files missing locally but present remotely are
+deleted. As files are uploaded, their headers are also configured on the remote
+according to the matchers configuration.
+
+{{% note %}}
+As a safety measure to help prevent accidents, if there are more than 256 files
+to delete, Hugo won't delete any files from the remote. Use the `--maxDeletes`
+command line flag to override this.
+{{% /note %}}
+
+## Advanced configuration
+
+Here's a full example deployment configuration:
```toml
[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.
+# If you specify an `order` list, files that match regular expressions
+# in this list will be uploaded first, in the specified order.
order = [".jpg$", ".gif$"]
-
[[deployment.targets]]
+# Define one or more targets, e.g., staging and production.
+# Each target gets its own [[deployment.targets]] section.
+
# An arbitrary name for this target.
name = "mydeployment"
# The Go Cloud Development Kit URL to deploy to. Examples:
+URL = "<FILL ME IN>"
+
# GCS; see https://gocloud.dev/howto/blob/#gcs
-# URL = "gs://<Bucket Name>"
+#URL = "gs://<Bucket Name>"
# S3; see https://gocloud.dev/howto/blob/#s3
# For S3-compatible endpoints, see https://gocloud.dev/howto/blob/#s3-compatible
-# URL = "s3://<Bucket Name>?region=<AWS region>"
+#URL = "s3://<Bucket Name>?region=<AWS region>"
# Azure Blob Storage; see https://gocloud.dev/howto/blob/#azure
-# URL = "azblob://$web"
+#URL = "azblob://$web"
# You can use a "prefix=" query parameter to target a subfolder of the bucket:
-# URL = "gs://<Bucket Name>?prefix=a/subfolder/"
+#URL = "gs://<Bucket Name>?prefix=a/subfolder/"
# If you are using a CloudFront CDN, deploy will invalidate the cache as needed.
-cloudFrontDistributionID = <ID>
+#cloudFrontDistributionID = "<FILL ME IN>"
-# Optionally, you can include or exclude specific files.
-# See https://godoc.org/github.com/gobwas/glob#Glob for the glob pattern syntax.
-# If non-empty, the pattern is matched against the local path.
-# All paths are matched against in their filepath.ToSlash form.
+# Include or exclude specific files when deploying to this target:
# If exclude is non-empty, and a local or remote file's path matches it, that file is not synced.
# If include is non-empty, and a local or remote file's path does not match it, that file is not synced.
-# As a result, local files that don't pass the include/exclude filters are not uploaded to remote,
+# Note: local files that don't pass the include/exclude filters are not uploaded to remote,
# and remote files that don't pass the include/exclude filters are not deleted.
-# include = "**.html" # would only include files with ".html" suffix
-# exclude = "**.{jpg, png}" # would exclude files with ".jpg" or ".png" suffix
+#
+# The pattern syntax is documented here: https://godoc.org/github.com/gobwas/glob#Glob
+# Patterns should be written with forward slashes as separator.
+#
+#include = "**.html" # would only include files with ".html" suffix
+#exclude = "**.{jpg, png}" # would exclude files with ".jpg" or ".png" suffix
+
+#######################
+[[deployment.matchers]]
+# Matchers enable special caching, content type and compression behavior for
+# specified file types. You can include any number of matcher blocks; the first one
+# matching a given file pattern will be used.
-# [[deployment.matchers]] configure behavior for files that match the Pattern.
# See https://golang.org/pkg/regexp/syntax/ for pattern syntax.
# Pattern searching is stopped on first match.
+pattern = "<FILL ME IN>"
+
+# If true, Hugo will gzip the file before uploading it to the bucket.
+# With many storage services, this will save on storage and bandwidth costs
+# for uncompressed file types.
+#gzip = false
+
+# If true, Hugo always re-uploads this file even if size and md5 match.
+# This is useful if Hugo isn't reliably able to determine whether to re-upload
+# the file on its own.
+#force = false
+
+# Content-type header to configure for this file when served.
+# By default this can be determined from the file extension.
+#contentType = ""
+
+# Cache-control header to configure for this file when served.
+# The default is the empty string.
+#cacheControl = ""
+
+# Content-encoding header to configure for this file when served.
+# By default, if gzip is True, this will be filled with "gzip".
+#contentEncoding = ""
+
# Samples:
@@ -114,21 +244,6 @@ pattern = "^.+\\.(html|xml|json)$"
gzip = true
```
-## Deploy
-
-To deploy to a target:
-
-```bash
-hugo deploy [--target=<target name>, defaults to first target]
-```
-
-Hugo will identify and apply any local changes that need to be reflected to the
-remote target. You can use `--dryRun` to see the changes without applying them,
-or `--confirm` to be prompted before making changes.
-
-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]
+[commandline]: /commands/hugo_deploy/
+[config]: #advanced-configuration