RSS-based content discovery for GoToSocial
Find a file
matthias d2601cd83f Fix inline comment parsing in RSS feeds file
- Fixed control character errors when using inline comments in rss_feeds.txt
- Comments after # are now properly stripped from RSS URLs
- Minimal fix using split('#', 1)[0].strip() approach
2025-08-04 11:19:38 +02:00
.env.example v1.1.0: Performance scaling with RSS URL parameters 2025-07-30 18:02:33 +02:00
.gitignore Initial release: GTS-HolMirDas v1.0 2025-07-29 12:02:33 +02:00
compose.yml Initial release: GTS-HolMirDas v1.0 2025-07-29 12:02:33 +02:00
Dockerfile Initial release: GTS-HolMirDas v1.0 2025-07-29 12:02:33 +02:00
gts_holmirdas.py Fix inline comment parsing in RSS feeds file 2025-08-04 11:19:38 +02:00
LICENSE Initial release: GTS-HolMirDas v1.0 2025-07-29 12:02:33 +02:00
README.md Streamline README, move detailed docs to Wiki 2025-08-03 21:46:26 +00:00
requirements.txt Initial release: GTS-HolMirDas v1.0 2025-07-29 12:02:33 +02:00
rss_feeds.example.txt v1.1.0: Performance scaling with RSS URL parameters 2025-07-30 18:02:33 +02:00

GTS-HolMirDas 🚀

RSS-based content discovery for GoToSocial instances.

Automatically discovers and federates content from RSS feeds across the Fediverse, helping small GoToSocial instances populate their federated timeline without relying on traditional relays.

Inspired by the original HolMirDas by @aliceif, adapted for GoToSocial with enhanced Docker deployment and multi-instance processing.

Key Features

  • 📡 Multi-Instance Discovery - Fetches content from configurable RSS feeds across Fediverse instances
  • Performance Scaling - 20-100 posts per feed with URL parameters (?limit=100)
  • 🐳 Production Ready - Docker deployment, environment-based config, health monitoring
  • 📊 Comprehensive Stats - Runtime metrics, federation growth, performance tracking
  • 🔧 Zero Maintenance - Runs automatically every hour with duplicate detection

🚀 Quick Start

# Clone the repository
git clone https://git.klein.ruhr/matthias/gts-holmirdas
cd gts-holmirdas

# Copy configuration templates
cp .env.example .env
cp rss_feeds.example.txt rss_feeds.txt

# Edit configuration
nano .env              # Add your GTS credentials
nano rss_feeds.txt     # Customize RSS feeds

# Deploy
docker compose up -d

# Monitor
docker compose logs -f

📈 Performance at Scale

Real Production Data:

📊 Runtime: 8:42 | 487 posts processed | 3,150+ instances discovered
⚡ 56 posts/minute | 102 RSS feeds | +45 new instances per run
💾 Resource usage: ~450MB RAM total (GoToSocial + tools)

Scaling Options:

  • Conservative: 20 posts/feed (~100 posts/run)
  • Balanced: 50 posts/feed (~300 posts/run)
  • Aggressive: 100 posts/feed (~600 posts/run)

🛠️ Configuration Essentials

Environment Variables (.env)

# Required
GTS_SERVER_URL=https://your-gts-instance.tld
GTS_ACCESS_TOKEN=your_gts_access_token

# Performance Tuning
MAX_POSTS_PER_RUN=25              # Posts per feed per run
DELAY_BETWEEN_REQUESTS=1          # Seconds between API calls
LOG_LEVEL=INFO                    # DEBUG for troubleshooting

RSS Feeds (rss_feeds.txt)

# Use URL parameters to scale performance
https://mastodon.social/tags/homelab.rss?limit=50
https://fosstodon.org/tags/selfhosting.rss?limit=100
https://infosec.exchange/tags/security.rss?limit=75

GoToSocial Access Token

  1. Login to your GoToSocial instance
  2. Settings → Applications → Create new application
  3. Required scopes: read, read:search, read:statuses
  4. Copy access token to .env file

📖 Complete Documentation

For detailed information, visit our Wiki:

🤝 Community & Support

  • FediFetcher - Fetches missing replies and posts
  • GoToSocial - Lightweight ActivityPub server
  • slurp - Import posts from other instances

📄 License

MIT License - see LICENSE file for details.

🙏 Acknowledgments

  • Inspired by HolMirDas by @aliceif
  • Built for the GoToSocial community
  • RSS-to-ActivityPub federation approach