Page

Deployment & DNS Guide

Deployment & DNS Guide

Use the steps below when promoting the client site to production. The repository already contains the full Jekyll project at the root, so no additional restructuring is required.

1. Prepare the Repository

  1. Review _config.yml, _sass/, _includes/, _layouts/, and assets/ to ensure they reflect the final client content.
  2. Commit the latest changes and push to the default branch (main or master).
  3. Confirm that Gemfile and Gemfile.lock are committed so GitHub can install the correct Jekyll version.

2. Enable GitHub Pages

  1. Open Settings → Pages in the repository.
  2. Choose GitHub Actions as the build source or select the branch/root combination that contains the Jekyll site.
  3. If using GitHub Actions, the default pages workflow will detect Jekyll automatically. Otherwise, ensure a workflow is present that runs bundle exec jekyll build and uploads _site.
  4. Wait for the deployment to complete. The Pages dashboard will show the published URL.

3. Configure a Custom Domain (Optional)

  1. Add a CNAME file at the repository root containing the client domain (example.com). Commit and push.
  2. At the DNS provider, create four A records for the apex domain pointing to GitHub Pages:

     185.199.108.153
     185.199.109.153
     185.199.110.153
     185.199.111.153
    
  3. For the www subdomain, create a CNAME record that points to the apex domain (e.g., www.example.com → example.com).
  4. Disable any proxying layer (such as Cloudflare’s orange cloud) so GitHub can provision TLS certificates.

4. Verify Deployment & HTTPS

  1. Visit the GitHub Pages URL to confirm the site renders correctly.
  2. Once DNS changes propagate (usually within 15 minutes, but allow up to 24 hours), verify HTTPS is enabled on the custom domain.
  3. You can confirm status via the command line:

     gh api repos/OWNER/REPO/pages --jq '.cname, .https_enforced, .status, .html_url'
    
  4. If HTTPS remains disabled after propagation, double-check DNS records and contact the registrar if necessary.