2.5 KiB
Epic 5: Site Maintenance & Automation
Epic Goal
To automate recurring site-level maintenance tasks that occur post-deployment, ensuring sites remain current and well-maintained without manual intervention.
Rationale
After initial content deployment, sites require ongoing maintenance tasks such as updating homepages with new articles, refreshing navigation, and managing site-level pages. These tasks are:
- Recurring: Need to run regularly (daily, weekly, etc.)
- Post-Deployment: Occur after articles are published
- Site-Level Scope: Operate on the entire site rather than individual articles
- Future Growth: Foundation for additional maintenance automation (sitemaps, RSS feeds, etc.)
By automating these tasks, we reduce manual overhead and ensure sites stay fresh and properly organized as content grows.
Stories
Story 5.1: Automated Homepage Index Generator
As a site administrator, I want the system to automatically generate and update the index.html page for each deployed site based on its articles, so that visitors see an up-to-date homepage without manual intervention.
Goal: Automatically generate/update the index.html page for each deployed site based on its articles.
Trigger: Scheduled script (e.g., daily cron job)
Functionality:
- Loop through all
site_deploymentsrecords - Query articles associated with each site
- Check for existing
index.htmlinsite_pagestable - Support two modes:
- Custom Template Mode: Use
homepage_template.htmlwith placeholders like{{article_list}},{{site_name}}, etc. - Auto-Generation Mode: Generate a complete index.html from scratch using site configuration
- Custom Template Mode: Use
- Configuration options:
--max-articles: Limit number of articles to display--order-by: Sort articles (newest, oldest, alphabetical, etc.)--template: Specify custom template path
- Store generated
index.htmlinsite_pagestable - Track
last_homepage_updatetimestamp onSiteDeploymentmodel - Integration with deployment logic:
- Save to database
- Push to Bunny.net (or configured CDN)
- Update deployment timestamp
Acceptance Criteria:
- Script can be run manually or scheduled
- Successfully generates index.html for all active sites
- Handles both custom template and auto-generation modes
- Properly integrates with existing deployment infrastructure
- Updates database timestamps for tracking
- Logs all operations for debugging and monitoring
- Gracefully handles errors (missing templates, deployment failures, etc.)