hugo

Fork of github.com/gohugoio/hugo with reverse pagination support

git clone git://git.shimmy1996.com/hugo.git

hugo-deploy.md (5482B)

    1 ---
    2 title: Hugo Deploy
    3 linktitle: Hugo Deploy
    4 description: You can upload your site to GCS, S3, or Azure using the Hugo CLI.
    5 date: 2019-05-30
    6 publishdate: 2019-05-30
    7 lastmod: 2021-05-03
    8 categories: [hosting and deployment]
    9 keywords: [s3,gcs,azure,hosting,deployment]
   10 authors: [Robert van Gent]
   11 menu:
   12   docs:
   13     parent: "hosting-and-deployment"
   14     weight: 2
   15 weight: 2
   16 sections_weight: 2
   17 draft: false
   18 aliases: []
   19 toc: true
   20 ---
   21 
   22 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.
   23 
   24 ## Assumptions
   25 
   26 * You have completed the [Quick Start][] or have a Hugo website you are ready to deploy and share with the world.
   27 * You have an account with the service provider ([Google Cloud](https://cloud.google.com/), [AWS](https://aws.amazon.com), or [Azure](https://azure.microsoft.com)) that you want to deploy to.
   28 * You have authenticated.
   29   * Google Cloud: [Install the CLI](https://cloud.google.com/sdk) and run [`gcloud auth login`](https://cloud.google.com/sdk/gcloud/reference/auth/login).
   30   * 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).
   31   * 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).
   32   * NOTE: Each service supports alternatives for authentication, including using environment variables. See [here](https://gocloud.dev/howto/blob/#services) for more details.
   33 
   34 ## Create a bucket to deploy to
   35 
   36 Create a storage bucket to deploy your site to. If you want your site to be
   37 public, be sure to configure the bucket to be publicly readable.
   38 
   39 ### Google Cloud Storage (GCS)
   40 
   41 Follow the [GCS instructions for how to create a bucket](https://cloud.google.com/storage/docs/creating-buckets).
   42 
   43 ### AWS S3
   44 
   45 Follow the [AWS instructions for how to create a bucket](https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html).
   46 
   47 ### Azure Storage
   48 
   49 Follow the [Azure instructions for how to create a storage container](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-portal).
   50 
   51 ## Configure the deployment
   52 
   53 In the configuration file for your site, add a `[deployment]` section with one
   54 or more `[[deployment.targets]]` section, one for each deployment target. Here's
   55 a detailed example:
   56 
   57 ```toml
   58 [deployment]
   59 # By default, files are uploaded in an arbitrary order.
   60 # Files that match the regular expressions in the "Order" list
   61 # will be uploaded first, in the listed order.
   62 order = [".jpg$", ".gif$"]
   63 
   64 
   65 [[deployment.targets]]
   66 # An arbitrary name for this target.
   67 name = "mydeployment"
   68 # The Go Cloud Development Kit URL to deploy to. Examples:
   69 # GCS; see https://gocloud.dev/howto/blob/#gcs
   70 # URL = "gs://<Bucket Name>"
   71 
   72 # S3; see https://gocloud.dev/howto/blob/#s3
   73 # For S3-compatible endpoints, see https://gocloud.dev/howto/blob/#s3-compatible
   74 # URL = "s3://<Bucket Name>?region=<AWS region>"
   75 
   76 # Azure Blob Storage; see https://gocloud.dev/howto/blob/#azure
   77 # URL = "azblob://$web"
   78 
   79 # You can use a "prefix=" query parameter to target a subfolder of the bucket:
   80 # URL = "gs://<Bucket Name>?prefix=a/subfolder/"
   81 
   82 # If you are using a CloudFront CDN, deploy will invalidate the cache as needed.
   83 cloudFrontDistributionID = <ID>
   84 
   85 # Optionally, you can include or exclude specific files.
   86 # See https://godoc.org/github.com/gobwas/glob#Glob for the glob pattern syntax.
   87 # If non-empty, the pattern is matched against the local path.
   88 # All paths are matched against in their filepath.ToSlash form.
   89 # If exclude is non-empty, and a local or remote file's path matches it, that file is not synced.
   90 # If include is non-empty, and a local or remote file's path does not match it, that file is not synced.
   91 # As a result, local files that don't pass the include/exclude filters are not uploaded to remote,
   92 # and remote files that don't pass the include/exclude filters are not deleted.
   93 # include = "**.html" # would only include files with ".html" suffix
   94 # exclude = "**.{jpg, png}" # would exclude files with ".jpg" or ".png" suffix
   95 
   96 
   97 # [[deployment.matchers]] configure behavior for files that match the Pattern.
   98 # See https://golang.org/pkg/regexp/syntax/ for pattern syntax.
   99 # Pattern searching is stopped on first match.
  100 
  101 # Samples:
  102 
  103 [[deployment.matchers]]
  104 # Cache static assets for 1 year.
  105 pattern = "^.+\\.(js|css|svg|ttf)$"
  106 cacheControl = "max-age=31536000, no-transform, public"
  107 gzip = true
  108 
  109 [[deployment.matchers]]
  110 pattern = "^.+\\.(png|jpg)$"
  111 cacheControl = "max-age=31536000, no-transform, public"
  112 gzip = false
  113 
  114 [[deployment.matchers]]
  115 # Set custom content type for /sitemap.xml
  116 pattern = "^sitemap\\.xml$"
  117 contentType = "application/xml"
  118 gzip = true
  119 
  120 [[deployment.matchers]]
  121 pattern = "^.+\\.(html|xml|json)$"
  122 gzip = true
  123 ```
  124 
  125 ## Deploy
  126 
  127 To deploy to a target:
  128 
  129 ```bash
  130 hugo deploy [--target=<target name>, defaults to first target]
  131 ```
  132 
  133 Hugo will identify and apply any local changes that need to be reflected to the
  134 remote target. You can use `--dryRun` to see the changes without applying them,
  135 or `--confirm` to be prompted before making changes.
  136 
  137 See `hugo help deploy` for more command-line options.
  138 
  139 [Quick Start]: /getting-started/quick-start/
  140 [Google Cloud]: [https://cloud.google.com]
  141 [AWS]: [https://aws.amazon.com]
  142 [Azure]: [https://azure.microsoft.com]
  143