Deployment Guide
Quick reference for deploying to GitHub Pages.
Initial Deployment
1. Create GitHub Repository
- Go to GitHub and create a new repository
- Name it
lahave-website(or your preferred name) - Make it Public
- Do not initialize with README (we already have one)
2. Connect and Push
From your project directory:
# Add all files
git add .
# Commit
git commit -m "Initial Jekyll site setup"
# Rename branch to main (if needed)
git branch -M main
# Add remote (replace YOUR_USERNAME with your GitHub username)
git remote add origin https://github.com/YOUR_USERNAME/lahave-website.git
# Push to GitHub
git push -u origin main
3. Enable GitHub Pages
- Go to your repository on GitHub
- Click Settings
- Scroll to Pages in the left sidebar
- Under Source, select:
- Branch:
main - Folder:
/ (root)
- Branch:
- Click Save
4. Wait for Build
- GitHub will build your site automatically
- This usually takes 1-2 minutes
- Check the Actions tab to see build progress
- Your site will be available at:
https://YOUR_USERNAME.github.io/lahave-website/
Updating Your Site
After making changes:
# Add changes
git add .
# Commit
git commit -m "Description of changes"
# Push
git push
GitHub Pages will automatically rebuild and deploy your changes (usually within 1-2 minutes).
Custom Domain Setup
1. Add CNAME File
The CNAME file is already created with www.lahave.io. If you need to change it:
- Edit
CNAMEfile - Update the domain
- Commit and push
2. Configure in GitHub
- Go to repository Settings > Pages
- Under Custom domain, enter:
www.lahave.io - Check Enforce HTTPS (after SSL certificate is provisioned)
- Click Save
3. Update DNS
See DNS_MIGRATION.md for detailed DNS configuration.
Troubleshooting
Build Fails
- Check Actions tab for error messages
- Common issues:
- Invalid YAML in
_config.yml - Missing required files
- Syntax errors in templates
- Invalid YAML in
Site Not Updating
- Wait 1-2 minutes for rebuild
- Clear browser cache
- Check Actions tab for build status
- Verify changes were pushed to
mainbranch
Custom Domain Not Working
- Verify
CNAMEfile exists and is correct - Check DNS records are set correctly
- Wait 24-48 hours for DNS propagation
- Verify domain in GitHub Pages settings
GitHub Pages Limits
- Repository size: 1GB
- Bandwidth: 100GB/month
- Builds: 10 builds per hour
- File size: 100MB per file
Continuous Integration
A GitHub Actions workflow (.github/workflows/jekyll.yml) is included to:
- Build the site on every push
- Check for HTML errors
- Validate the site structure
This helps catch issues before they affect your live site.
Security
- Keep your repository Public (required for free GitHub Pages)
- Don’t commit sensitive information
- Use environment variables for API keys (if needed)
- Review Formspree settings for spam protection
Performance Tips
- Optimize images before uploading
- Minify CSS/JS (optional, Jekyll can do this)
- Use CDN for large assets (optional)
- Enable GitHub Pages caching (automatic)
Monitoring
- Check Actions tab regularly for build status
- Monitor Insights > Traffic for site analytics
- Set up GitHub notifications for build failures
- Use external analytics (Google Analytics, etc.) for visitor tracking