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
- Review
_config.yml,_sass/,_includes/,_layouts/, andassets/to ensure they reflect the final client content. - Commit the latest changes and push to the default branch (
mainormaster). - Confirm that
GemfileandGemfile.lockare committed so GitHub can install the correct Jekyll version.
2. Enable GitHub Pages
- Open Settings → Pages in the repository.
- Choose GitHub Actions as the build source or select the branch/root combination that contains the Jekyll site.
- If using GitHub Actions, the default
pagesworkflow will detect Jekyll automatically. Otherwise, ensure a workflow is present that runsbundle exec jekyll buildand uploads_site. - Wait for the deployment to complete. The Pages dashboard will show the published URL.
3. Configure a Custom Domain (Optional)
- Add a
CNAMEfile at the repository root containing the client domain (example.com). Commit and push. -
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 - For the
wwwsubdomain, create a CNAME record that points to the apex domain (e.g.,www.example.com → example.com). - Disable any proxying layer (such as Cloudflare’s orange cloud) so GitHub can provision TLS certificates.
4. Verify Deployment & HTTPS
- Visit the GitHub Pages URL to confirm the site renders correctly.
- Once DNS changes propagate (usually within 15 minutes, but allow up to 24 hours), verify HTTPS is enabled on the custom domain.
-
You can confirm status via the command line:
gh api repos/OWNER/REPO/pages --jq '.cname, .https_enforced, .status, .html_url' - If HTTPS remains disabled after propagation, double-check DNS records and contact the registrar if necessary.