This branch contains the GitHub Actions-based version of the bucket system, designed to run entirely in the cloud without requiring a persistent server.
-
RSS Crawler (
.github/workflows/rss-crawler.yml)- Runs every 30 minutes
- Fetches RSS feeds and saves new articles
- Updates API endpoints
- Can be triggered manually or via webhook
-
Discord Webhook Handler (
.github/workflows/discord-webhook.yml)- Handles Discord commands via repository dispatch
- Supports
!add,!feeds,!statuscommands - Sends responses back to Discord via webhook
-
Content Processor (
.github/workflows/content-processor.yml)- Runs every 2 hours
- Processes pending articles
- Updates article statuses
- Can be enhanced with AI summarization
-
Newsletter Generator (
.github/workflows/newsletter-generator.yml)- Runs daily at 8 AM UTC
- Generates daily briefings
- Creates JSON, Markdown, and HTML outputs
data/feeds.json- RSS feed configurationdata/articles.json- Article databaseoutputs/api/- API endpoints for external consumptionoutputs/newsletters/- Generated newsletters and briefings
Once deployed, these endpoints will be available via GitHub Pages:
https://yourusername.github.io/bucket/api/latest-newsletter.jsonhttps://yourusername.github.io/bucket/api/recent-articles.jsonhttps://yourusername.github.io/bucket/api/rss-stats.jsonhttps://yourusername.github.io/bucket/api/processing-queue.json
- Fork or clone this repository
- Update the repository name in
scripts/discord-webhook-sender.py - Set up GitHub Pages for the
outputs/directory
Set these in your repository settings (Settings → Secrets and variables → Actions):
GITHUB_TOKEN- Automatically provided by GitHub ActionsDISCORD_WEBHOOK_URL- Discord webhook URL for responses (optional)
To use Discord commands, you'll need to:
- Create a Discord webhook in your server
- Set the
DISCORD_WEBHOOK_URLsecret - Use the
scripts/discord-webhook-sender.pyscript to send commands
You can test the workflows manually:
- Go to Actions tab in your repository
- Select a workflow
- Click "Run workflow"
- Monitor the execution
!add <url>- Add an article to the bucket!feeds list- List RSS feeds!feeds add "Name" <url>- Add a new RSS feed!status- Show bucket status
- RSS Crawler: Can be run manually with test mode
- Content Processor: Can specify number of articles to process
- Newsletter Generator: Can specify days back and output format
This system is designed to work alongside your existing local bucket system:
- Parallel Operation: Both systems can run simultaneously
- Data Sync: Use the migration scripts to sync data between systems
- Gradual Transition: Start with RSS feeds, then add other features
- No Server Maintenance: Runs entirely on GitHub Actions
- Cost Effective: Free within GitHub's generous limits
- Version Controlled: Full history of all content and changes
- Scalable: GitHub Actions handle the heavy lifting
- Accessible: API endpoints available anywhere
- Resilient: No single point of failure
- Test the RSS Crawler with a few feeds
- Set up Discord integration for command handling
- Enable AI summarization (OpenAI/Claude integration)
- Add more workflows for advanced features
- Set up GitHub Pages for API endpoints
- Workflow not running: Check repository permissions and secrets
- Discord commands not working: Verify webhook URL and repository dispatch setup
- API endpoints not updating: Check GitHub Pages configuration
- Rate limiting: GitHub Actions has usage limits, monitor your usage
- Check workflow logs in the Actions tab
- Monitor API endpoints for data updates
- Use manual triggers to test individual workflows
- Check repository secrets and environment variables
This is an experimental migration. Feel free to:
- Add new workflows
- Improve existing functionality
- Add new API endpoints
- Enhance Discord integration
- Add AI summarization features
Same as the main bucket project.