Site Maintenance Runbook
Operational procedures for maintaining the course website.
Quick Reference
| Task | Command/Action |
|---|---|
| Build site locally | bundle exec jekyll serve |
| Check build status | GitHub Actions |
| View deployment | GitHub Pages Settings |
Local Development
Initial Setup
# Clone repository
git clone https://github.com/Digital-AI-Finance/agentic-artificial-intelligence.git
cd agentic-artificial-intelligence/docs
# Install Ruby dependencies
bundle install
# Start local server
bundle exec jekyll serve
# Site available at http://localhost:4000/agentic-artificial-intelligence/
Common Issues
Bundle install fails
# Update bundler
gem install bundler
bundle update --bundler
bundle install
Gems missing on Windows
# Add required tools
ridk install 3
bundle install
Port already in use
bundle exec jekyll serve --port 4001
Deployment
Automatic Deployment
The site deploys automatically when changes are pushed to main:
- Push triggers GitHub Actions workflow
- Jekyll builds the site
- GitHub Pages deploys the build
- Site updates within 2-5 minutes
Check Deployment Status
- Go to Actions tab
- Find the latest “pages build and deployment” workflow
- Check for success/failure
Manual Rebuild
If needed, trigger a rebuild:
- Go to Actions tab
- Select “pages build and deployment”
- Click “Run workflow”
Content Updates
Adding a New Week
- Add week data to
docs/_data/weeks.yml: ```yaml- number: X title: “Week Title” description: “Description” folder: “LXX_Topic_Name” status: “draft” topics:
- Topic 1
- Topic 2 learning_objectives:
- Objective 1 notebooks: [] papers: [] ```
- Create week page at
docs/weeks/week-X.md: ```markdown — layout: week week_number: X title: “Week X: Title” —
Additional content here.
3. **Push changes** and verify deployment
### Adding Glossary Terms
Edit `docs/_data/glossary.yml`:
```yaml
- term: "New Term"
definition: "Clear definition."
related: ["Related Term"]
week: X
Updating Papers
Edit docs/papers.md following the existing format.
Troubleshooting
Build Failures
Check the error in Actions:
- Go to failed workflow run
- Expand the failing step
- Look for error message
Common fixes:
- Liquid syntax error: Check for unclosed tags
- YAML error: Validate YAML syntax
- Missing file: Check file paths in includes
Page Not Found (404)
- Verify file exists in correct location
- Check
nav_orderin front matter - Ensure
layout: defaultis set - Clear browser cache
Styles Not Updating
- Clear browser cache (Ctrl+Shift+R)
- Check SCSS syntax in
_sass/color_schemes/custom.scss - Rebuild locally to see errors
Search Not Working
- Search is client-side (Lunr.js)
- Check JavaScript console for errors
- Verify search is enabled in
_config.yml
Backups
What to Back Up
docs/folder (all content)_config.yml(site configuration)_data/folder (structured data)
Backup Procedure
The repository itself serves as backup. For additional safety:
# Create local archive
git archive --format=zip HEAD docs/ > course-site-backup.zip
Monitoring
Site Health Checks
- Uptime: GitHub Pages has 99.9% uptime
- Build status: Check Actions tab for failures
- Broken links: Run
bundle exec htmlproofer ./_sitelocally
Analytics (if enabled)
- Check Plausible dashboard for traffic
- Review popular pages and notebooks
- Monitor Colab link clicks
Emergency Procedures
Site Down
- Check GitHub Status
- If GitHub Pages issue, wait for resolution
- If build failure, revert to last working commit:
git revert HEAD git push
Accidental Deletion
- Files are in git history
- Restore with:
git checkout HEAD~1 -- path/to/file git commit -m "Restore accidentally deleted file" git push
Security Issue
- Remove sensitive content immediately
- Force push if needed to remove from history:
git filter-branch --force --index-filter \ "git rm --cached --ignore-unmatch path/to/file" \ --prune-empty --tag-name-filter cat -- --all git push origin --force --all - Rotate any exposed credentials
- Notify affected parties
Scheduled Maintenance
Weekly
- Check for build failures
- Review open issues/discussions
- Verify Colab links work
Monthly
- Update dependencies (
bundle update) - Check for broken external links
- Review analytics for issues
Semester Start
- Update semester in
_config.yml - Reset week statuses to “draft”
- Archive previous semester projects
- Test all notebooks with current API versions
Semester End
- Mark all weeks as “complete”
- Archive student projects
- Update paper list with new publications
- Create semester summary
Last updated: December 2024