This document provides an overview of the steps needed to implement *Static Publishing if you have already implemented Push Publishing to a Dynamic Endpoint (another dotCMS instance), as well as some best practices for implementing your dotCMS content that will ensure your content will display well when pushed to a Static Endpoint.
Note: Static Publishing is only supported in dotCMS Enterprise editions for customers with a Site License (Platform level license). Please see the list of dotCMS versions for more information on features supported in different version of dotCMS.
- 1. Prepare Your Content for Static Publishing
- 2. Configure and Verify Push Publishing to a Dynamic Endpoint
- 3. Configure Your Publishing Environment for a Static Endpoint
- 4. Configure Your AWS S3 Environment
- 5. Push One Entire Site
- 6. Verify Your Static Site
1. Prepare Your Content for Static Publishing
Static web sites by definition can not deliver the same type of dynamic content that a regular dotCMS instance can. Therefore, it is important that you:
- Understand the advantages and limitations of Dynamic and Static Endpoints.
- Understand the differences between Dynamic and Static content.
- Review and prepare your content for Static Publishing.
2. Configure and Verify Push Publishing to a Dynamic Endpoint
Although it is not stricly necessary to push publish to a Dynamic Endpoint before you can push to a Static Endpoint, it is recommended that you do this first, if possible. Push publishing to a Dynamic Endpoint is simpler in many ways than pushing to a Static Endpoint, since the content is sent unchanged to the Endpoint. It is therefore easier to understand how Push Publishing works and to troubleshoot any potential problems with Dynamic Publishing before you attempt to Static Publish your site.
3. Configure Your Publishing Environment for a Static Endpoint
You must either add a new Static Endpoint to an existing Publishing Environment, or create a new Publishing Environment for your Static Endpoint.
For your first implementation, it is recommended that you create a new Publishing Environment that contains only one Static Endpoint. There are several considerations that you must take into account when mixing Dynamic and Static Endpoints, and it is recommended that you begin with a static-only Environment before combining both types of Endpoints.
Note: It is recommended that you understand how to configure a Static Endpoint in dotCMS before you configure your AWS S3 environment, so you understand what decisions you need to make when setting up AWS S3 for dotCMS.
4. Configure Your AWS S3 Environment
You must configure your Amazon Web Services (AWS) S3 environment to act as a Static Endpoint:
- Configure Permissions for dotCMS to push static content to AWS S3.
- Configure Web Site Hosting from AWS S3.
Note that you can not check the integrity of a Static Endpoint the same way you can with a Dynamic Endpoint. Instead, dotCMS automatically checks the AWS S3 configuration parameters for your Static Endpoint when you save the Endpoint, to ensure that dotCMS has appropriate permissions to push static content to your AWS S3 environment.
For more information on how to configure your AWS S3 environment, please see the Push Publishing Permissions documentation.
5. Push One Entire Site
Once you have completed your configuration, it is recommended that you push a site to the Publishing Environment containing your Static Endpoint. If you have multiple sites in your dotCMS instance, it is recommended that you only push a single site first - and if possible, choose the site that has the simplest (or least amount of) content.
6. Verify Your Static Site
After you've performed your first Static Publish, browse to the front end of your static site and verify that your static site displays as intended.
* Note: There is currently some noise that gets generated in the dotCMS logs due to a minor issue with Amazon AWS (https://github.com/aws/aws-sdk-java/issues/567) - This extra noise in the log does not affect functionality and can be ignored until Amazon addresses the issue. Here is an example of what you may see in your log, and it can be safely ignored: (https://gist.github.com/oarrietadotcms/9d8b39beef633387ae0c1e22312d263e)