Skip to content
Wiki Publisher edited this page Feb 1, 2026 · 3 revisions

Grimnir Radio Wiki

Welcome to the Grimnir Radio documentation. Grimnir Radio is a modern, production-ready broadcast automation system built in Go with multi-instance scaling, comprehensive observability, and flexible deployment options.

🚀 Quick Links

📋 Features

Core Features

  • Smart Blocks - Rule-based playlist generation with criteria filtering
  • Clock Scheduling - Hour templates with repeating patterns
  • Live Broadcasting - DJ handover with priority system
  • Webstream Relay - HTTP stream relay with automatic failover
  • Multi-Mount Support - Multiple output streams per station
  • Media Management - Local filesystem or S3-compatible storage

Enterprise Features

  • Multi-Instance Scaling - Horizontal scaling with Redis/NATS
  • Leader Election - Automatic leader election for scheduler
  • Health Monitoring - Prometheus metrics and OpenTelemetry tracing
  • Event Bus - Distributed events with Redis or NATS JetStream
  • 5-Tier Priority System - Emergency, Live Override, Live Scheduled, Automation, Fallback

🏗️ Architecture

Grimnir Radio uses a modern microservices-inspired architecture:

┌─────────────────┐     ┌──────────────────┐
│  Control Plane  │────▶│  Media Engine    │
│   (REST API)    │gRPC │   (GStreamer)    │
└─────────────────┘     └──────────────────┘
         │                       │
         ├──────────┬────────────┤
         ▼          ▼            ▼
    ┌────────┐ ┌────────┐  ┌──────────┐
    │  RDBMS │ │  Redis │  │  Icecast │
    └────────┘ └────────┘  └──────────┘
  • Control Plane: Go HTTP API, scheduler, authentication, WebSocket events
  • Media Engine: GStreamer-based audio processing and streaming (separate process)
  • Storage: PostgreSQL/MySQL/SQLite for metadata, filesystem/S3 for media files
  • Event Bus: Redis or NATS for multi-instance coordination

📚 Documentation Sections

Getting Started

Core Concepts

Administration

Integration

Operations

🤝 Community

📝 Version Information

See CHANGELOG for version history and Roadmap for upcoming features.

🛠️ Technology Stack

  • Language: Go 1.24+
  • Media Processing: GStreamer 1.0
  • Database: PostgreSQL 12+ (or MySQL 8+, SQLite 3.35+)
  • Event Bus: Redis 6+ or NATS 2.9+
  • Object Storage: S3-compatible (AWS S3, MinIO, Spaces, B2)
  • Streaming: Icecast2 / SHOUTcast
  • Observability: Prometheus, OpenTelemetry

📖 Additional Resources

Clone this wiki locally