status.health logo status.health logo status.health

Deployment Guide - status.health® Blog

Deployment Guide - status.health® Blog

Pre-Deployment Checklist

1. Configure Newsletter Provider

Edit _config.yml and update these fields:

newsletter_provider: convertkit # or mailchimp, generic
newsletter_form_id: YOUR_FORM_ID # Replace with actual form ID
newsletter_endpoint: https://app.convertkit.com/forms/YOUR_FORM_ID/subscriptions # Update endpoint

2. Configure Analytics (Optional)

Add your tracking IDs to _config.yml:

google_analytics: GA_TRACKING_ID
gtm_id: GTM_ID

3. Verify Domain Configuration

The CNAME file is already set to blog.status.health. If using a different domain:

echo "your-domain.com" > CNAME

Local Testing

Prerequisites

Installation Steps

# Install bundler if not already installed
gem install bundler

# Install dependencies
bundle install

# Or install to vendor/bundle to avoid permission issues
bundle config set --local path 'vendor/bundle'
bundle install

Run Locally

# Serve with live reload
bundle exec jekyll serve --livereload

# Or just serve
bundle exec jekyll serve

Visit: http://localhost:4000

Build for Production

bundle exec jekyll build

The built site will be in the _site directory.

GitHub Pages Deployment

  1. Prepare Repository
    # Initialize git if not already done
    git init
       
    # Add all files
    git add .
       
    # Commit
    git commit -m "Initial status.health® blog setup"
       
    # Add remote (replace with your repository URL)
    git remote add origin https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.git
       
    # Push to main branch
    git push -u origin main
    
  2. Enable GitHub Pages
    • Go to your repository on GitHub
    • Navigate to Settings → Pages
    • Under “Source”, select “Deploy from a branch”
    • Choose “main” branch and “/ (root)” folder
    • Click “Save”
  3. Configure Custom Domain
    • In the same Pages settings, under “Custom domain”
    • Enter blog.status.health
    • Click “Save”
    • GitHub will create a commit adding the CNAME file if needed
  4. DNS Configuration Configure these DNS records for blog.status.health:
    Type: CNAME
    Name: blog
    Value: YOUR_USERNAME.github.io
    

    Or if using apex domain:

    Type: A
    Name: @
    Value: 185.199.108.153
           185.199.109.153
           185.199.110.153
           185.199.111.153
    

Method 2: GitHub Actions (Advanced)

Create .github/workflows/jekyll.yml:

name: Deploy Jekyll site to Pages

on:
  push:
    branches: ["main"]
  workflow_dispatch:

permissions:
  contents: read
  pages: write
  id-token: write

concurrency:
  group: "pages"
  cancel-in-progress: false

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: '3.1'
          bundler-cache: true
      - name: Setup Pages
        id: pages
        uses: actions/configure-pages@v5
      - name: Build with Jekyll
        run: bundle exec jekyll build --baseurl "$"
        env:
          JEKYLL_ENV: production
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3

  deploy:
    environment:
      name: github-pages
      url: $
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4

Verification Steps

1. Check Build Status

2. Visit Your Site

3. Test Features

Troubleshooting

Build Failures

  1. Check the Actions tab for error messages
  2. Ensure all plugins are GitHub Pages compatible
  3. Verify YAML syntax in _config.yml

404 Errors

  1. Wait 10-20 minutes for initial deployment
  2. Check repository Settings → Pages is enabled
  3. Verify branch and folder settings
  4. Clear browser cache

Custom Domain Issues

  1. Verify DNS propagation (can take up to 48 hours)
  2. Check CNAME file exists and contains correct domain
  3. Enable “Enforce HTTPS” in Pages settings

Newsletter Not Working

  1. Update _config.yml with correct provider settings
  2. Verify API keys/form IDs are correct
  3. Check browser console for JavaScript errors

Post-Deployment

1. Enable HTTPS

In Settings → Pages, check “Enforce HTTPS”

2. Monitor Analytics

If configured, check Google Analytics for traffic

3. Test Newsletter

Submit a test email to verify integration

4. Create Content

Start publishing blog posts according to the content calendar

Maintenance

Updating Content

# Create new post
touch _posts/$(date +%Y-%m-%d)-post-title.md

# Edit, then commit
git add .
git commit -m "Add new blog post"
git push

Updating Theme/Code

  1. Make changes locally
  2. Test with bundle exec jekyll serve
  3. Commit and push
  4. GitHub Pages will automatically rebuild

Security Notes


For support, create an issue in the repository or contact the status.health® team.