Releases: 0ceanSlim/gnostream
GnoStream v0.1.2-prerelease
GnoStream v0.1.2-prerelease
๐ Major Features
๐ฅ๏ธ Full-Featured CLI Interface
- Complete CLI system with
gnostreamcommand - Configuration management (
config get/set/show) - Nostr event management (
events list/delete/cleanup) - Stream monitoring and debugging (
stream status/metadata) - Cleanup utilities for stale streams and events
๐ Nostr Integration Groundwork
- Added comprehensive Nostr client architecture
- Integrated with Grain client for better performance and reliability
- Prepared authentication system for future login features
- Complete Nostr event lifecycle management (create, update, delete with NIP-09)
๐จ UI/UX Improvements
- Enhanced mobile responsiveness and navigation
- Added professional cyberpunk-themed login modal (placeholder for upcoming features)
- Better video player layout and controls
- Improved extension loading and error handling
๐ ๏ธ Infrastructure & Build System
๐ฆ Docker & Deployment
- Fixed TailwindCSS compilation and serving - resolved styling issues in production builds
- Added
/style/route with proper MIME type handling for CSS files - Enhanced Docker build process with better dependency management
- Improved cross-platform build support (Linux, macOS, Windows)
๐ง Development Experience
- Sophisticated git-based versioning system - matches Grain's approach
- Development versions now show as
v1.0.0-dev.5instead of generic "beta" - Build-time version injection for consistent version reporting
- Comprehensive CLI documentation and examples
๐ Bug Fixes & Stability
- Fixed RTMP server restart issues and improved connection handling
- Resolved HLS configuration override problems
- Better stream metadata handling and persistence
- Improved frontend state management and error recovery
- Fixed Windows build compatibility issues
โ ๏ธ Known Limitations
- Nostr Login: UI is implemented but not fully functional yet - login with Nostr and chat features coming soon!
- Extension Loading: Some browser extensions may need additional compatibility work
๐ Documentation
- Added complete CLI usage guide (
docs/cli-guide.md) - Enhanced development setup instructions
- Docker deployment examples and configuration guides
๐ What's Next
- Full Nostr authentication implementation
- Real-time chat integration
- Social features
Installation
Download the appropriate binary for your platform from the releases page, extract, and run:
# Start the streaming server
./gnostream
# Or use CLI commands for management
./gnostream --helpDevelopment
This is a prerelease - expect rapid changes and improvements. Feedback and testing are welcome!
Key Changes Since Previous Version
- Client Integration: Transitioned to Grain client architecture
- CSS Fix: Resolved major styling issue where TailwindCSS wasn't being served correctly in production
- CLI System: Brand new command-line interface for stream and configuration management
- Versioning: Proper semantic versioning with development build tracking
- Nostr Prep: Foundation work for upcoming social features (UI placeholder added)
v0.1.1-prerelease
๐ v0.1.1-prerelease
๐ฏ Mobile Experience Overhaul
๐ฑ Mobile Navigation
- NEW: Fully functional mobile dropdown navigation
- FIXED: Mobile navigation now works reliably
across all devices - IMPROVED: Touch-friendly button sizes (44px
minimum) for better mobile UX - ENHANCED: Cyberpunk-themed dropdown with hover
effects and smooth animations
๐บ Video Player Optimizations
- FIXED: Video aspect ratio now properly displays
16:9 (1920x1080) content - IMPROVED: Video player scales responsively across
all screen sizes - ENHANCED: Mobile-friendly video controls with
adaptive button text - OPTIMIZED: Video container uses
aspect-video
class for consistent sizing
๐๏ธ Stream Configuration & Hot Reloading
โก Dynamic Configuration Updates
- NEW: Hot reload functionality for HLS settings
changes - NEW: Hot reload support for recording mode
toggles - FIXED: Stream settings now update without
requiring server restart - ENHANCED: RTMP server automatically restarts with
new settings whenstream-info.ymlchanges
๐น Recording System Improvements
- FIXED: Recording mode (
record: true) now
properly ignores HLS playlist size limits - IMPROVED: When recording is enabled, segments are
kept indefinitely for archival - ENHANCED: HLS behavior dynamically adjusts based
on recording settings:- Recording ON: Unlimited playlist size
(-hls_list_size 0), no segment deletion - Recording OFF: Uses configured playlist size,
deletes old segments
- Recording ON: Unlimited playlist size
๐ง Configuration Watcher
- NEW: Real-time monitoring of
stream-info.yml
changes (3-second interval) - NEW: Automatic FFmpeg process restart when
critical settings change - IMPROVED: Seamless setting updates without manual
intervention - ENHANCED: Detailed logging for configuration
changes and restarts
๐ณ Docker Improvements
๐ฆ Container Dependencies
- FIXED: Added missing
ffmpegpackage to Docker
containers - UPDATED: Both
Dockerfileand
Dockerfile-prereleasenow include ffmpeg - RESOLVED: Container startup failures due to
missing stream processing dependencies
๐ Metadata & API Enhancements
๐๏ธ Stream Metadata
- NEW: Complete Nostr event JSON now included in
metadata.json - NEW: Successful relay information added to stream
metadata - ENHANCED: Frontend now has access to full event
data and relay status - IMPROVED: Metadata structure includes both
individual fields and complete event data
๐ API Consistency
- MAINTAINED: All existing metadata fields
preserved for backward compatibility - ADDED: New fields:
last_nostr_eventand
successful_relays - ENHANCED: Richer data for frontend components and
stream analytics
๐ ๏ธ Technical Improvements
๐ Hot Reload System
- ARCHITECTURE: Intelligent config change detection
with file modification time tracking - PERFORMANCE: Minimal resource usage with
efficient 3-second polling - RELIABILITY: Deadlock prevention in RTMP server
restart process - STABILITY: Proper cleanup and restart sequencing
for FFmpeg processes
๐จ Frontend Polish
- RESPONSIVE: Mobile-first design improvements
across all components - ACCESSIBILITY: Touch-friendly interfaces with
proper hit targets - CONSISTENCY: Unified cyberpunk theming throughout
mobile experience - PERFORMANCE: Optimized JavaScript with duplicate
event listener prevention
๐ Bug Fixes
- Fixed mobile navigation visibility issues across
different devices - Resolved HLS playlist size being ignored in recording
mode - Fixed Docker containers missing ffmpeg dependency
- Resolved duplicate event listeners causing multiple
navigation dialogs - Fixed aspect ratio issues with video player on mobile
devices - Resolved deadlock conditions in RTMP server config
reloading - Fixed metadata.json missing complete Nostr event
information
๐ง Breaking Changes
None - this release maintains full backward
compatibility.
Download: Release Assets
Docker: docker pull 0ceanslim/gnostream:v0.1.1-prerelease
Feedback: Please report issues at [GitHub Issues](h
ttps://github.com/0ceanslim/gnostream/issues)
Full Changelog: v-0.1.0-prerelease...v0.1.1-prerelease
gnostream prerelease
GNOSTREAM v0.1.0-prerelease ๐ฌ
Pre-release testing build - Live streaming server with RTMP support and automatic Nostr broadcasting.
โ ๏ธ This is a pre-release build for testing purposes. Use in production at your own risk.
๐ What's New
Core Features
- RTMP Streaming Server - Built-in RTMP server for live streaming input
- HLS Conversion - Automatic conversion to HLS format for web playback
- Nostr Broadcasting - Automatic NIP-53 Live Activities event publishing to Nostr relays
- Real-time Updates - Edit stream info while live streaming with hot-reload
- Recording Control - Toggle recording on/off per stream
- Archive System - Automatic archival of recorded streams with metadata
- Cyberpunk Web Interface - Futuristic terminal-style web viewer
Nostr Integration
- NIP-53 Live Activities support for stream broadcasting
- NIP-09 Deletion Events for non-recorded streams (optional)
- Real-time metadata updates - stream info changes broadcast instantly
- Multi-relay publishing with success tracking
- Automatic event lifecycle (start โ update โ end)
Web Interface
- Live stream viewer with HLS.js playback
- Archive browser with past stream playback
- Real-time viewer analytics and session tracking
- OBS widget support for stream overlays
- Responsive cyberpunk design with terminal aesthetics
- HTMX-powered SPA navigation
Technical Features
- Cross-platform builds (Linux, macOS, Windows - x64 & ARM64)
- Docker deployment with automatic release downloads
- FFmpeg integration for RTMP processing
- Hot-reloadable configuration without restarts
- Comprehensive logging and error handling
๐ฆ Installation
Option 1: Download Binary (Recommended)
- Download the appropriate archive for your platform from the releases
- Extract and copy
config.example.ymlโconfig.yml - Copy
stream-info.example.ymlโstream-info.yml - Edit configurations with your settings
- Run
./gnostream(Linux/macOS) orgnostream.exe(Windows)
Option 2: Docker
# Download Dockerfile curl -O https://raw.githubusercontent.com/yourusername/gnostream/main/docs/docker/Dockerfile-prereleaseBuild and run
docker build -f Dockerfile-prerelease -t gnostream:prerelease .
docker run -d -p 8181:8181 --name gnostream-app gnostream:prerelease
โ๏ธ Configuration
config.yml
server: port: 8181 host: "0.0.0.0" external_url: "https://live.yourdomain.com"rtmp:
port: 1935
host: "0.0.0.0"
nostr:
private_key: "nsec1abc..." # Your Nostr private key
delete_non_recorded: false
relays:
- "wss://relay.damus.io"
- "wss://wheat.happytavern.co"
stream-info.yml
title: "My Live Stream" summary: "Stream description" image: "https://example.com/thumbnail.jpg" tags: ["live", "music", "chill"] record: false # true = save for later, false = live only
hls:
segment_time: 10 # Seconds per segment
playlist_size: 10 # Segments in playlist
๐ฏ Usage
- Start GNOSTREAM:
./gnostream - Configure OBS:
- Server:
rtmp://your-server-ip:1935/live - No stream key needed
- Server:
- Web Interface:
http://your-server-ip:8181 - Live Updates: Edit
stream-info.ymlwhile streaming
๐ Endpoints
- Web Interface:
http://localhost:8181 - Live Stream:
http://localhost:8181/live/output.m3u8 - Archives:
http://localhost:8181/archive/ - API:
http://localhost:8181/api/stream-data - RTMP Input:
rtmp://localhost:1935/live
๐งช Pre-release Testing
This pre-release includes all core functionality but may contain bugs. Please test:
- RTMP streaming from OBS/similar
- Web interface playback
- Nostr event publishing
- Recording on/off functionality
- Stream info hot-reloading
- Archive playback
- Cross-platform compatibility
๐ Known Issues
- RTMP server requires manual restart if connection drops unexpectedly
- Large archive directories may load slowly in web interface
- Some browsers may have HLS playback issues (use Chrome/Firefox)
๐ ๏ธ Requirements
- FFmpeg (required for RTMP processing)
- Linux/macOS/Windows x64 or ARM64
- 4GB+ RAM recommended for recording
- Modern browser for web interface
๐ Platform Support
| Platform | Architecture | Status |
|---|---|---|
| Linux | x64 | โ Tested |
| Linux | ARM64 | โ Tested |
| macOS | Intel | โ Tested |
| macOS | Apple Silicon | โ Tested |
| Windows | x64 | |
| Windows | ARM64 |
๐ฎ Coming in v0.1.0 Stable
- Enhanced error recovery for RTMP connections
- Performance optimizations for large archives
- Additional Nostr relay compatibility
- Improved documentation and setup guides
- More OBS widgets and overlays
๐ค Feedback
This is a pre-release - your feedback is crucial! Please report issues:
- GitHub Issues: Create Issue
- Nostr:
npub1zmc6qyqdfnllhnzzxr5wpepfpnzcf8q6m3jdveflmgruqvd3qa9sjv7f60
๐ Changelog
Added
- Initial RTMP streaming server implementation
- NIP-53 Nostr Live Activities integration
- HLS conversion and web playback
- Recording system with archive management
- Cyberpunk terminal-style web interface
- Cross-platform build system
- Docker deployment support
- Real-time viewer analytics
- OBS widget system
Full Changelog: https://github.com/yourusername/gnostream/commits/v0.1.0-prerelease
Built with Go 1.23 โข Powered by FFmpeg โข Broadcasts to Nostr
# GNOSTREAM v0.1.0-prerelease ๐ฌPre-release testing build - Live streaming server with RTMP support and automatic Nostr broadcasting.
โ ๏ธ This is a pre-release build for testing purposes. Use in production at your own risk.
๐ What's New
Core Features
- RTMP Streaming Server - Built-in RTMP server for live streaming input
- HLS Conversion - Automatic conversion to HLS format for web playback
- Nostr Broadcasting - Automatic NIP-53 Live Activities event publishing to Nostr relays
- Real-time Updates - Edit stream info while live streaming with hot-reload
- Recording Control - Toggle recording on/off per stream
- Archive System - Automatic archival of recorded streams with metadata
- Cyberpunk Web Interface - Futuristic terminal-style web viewer
Nostr Integration
- NIP-53 Live Activities support for stream broadcasting
- NIP-09 Deletion Events for non-recorded streams (optional)
- Real-time metadata updates - stream info changes broadcast instantly
- Multi-relay publishing with success tracking
- Automatic event lifecycle (start โ update โ end)
Web Interface
- Live stream viewer with HLS.js playback
- Archive browser with past stream playback
- Real-time viewer analytics and session tracking
- OBS widget support for stream overlays
- Responsive cyberpunk design with terminal aesthetics
- HTMX-powered SPA navigation
Technical Features
- Cross-platform builds (Linux, macOS, Windows - x64 & ARM64)
- Docker deployment with automatic release downloads
- FFmpeg integration for RTMP processing
- Hot-reloadable configuration without restarts
- Comprehensive logging and error handling
๐ฆ Installation
Option 1: Download Binary (Recommended)
- Download the appropriate archive for your platform from the releases
- Extract and copy
config.example.ymlโconfig.yml - Copy
stream-info.example.ymlโstream-info.yml - Edit configurations with your settings
- Run
./gnostream(Linux/macOS) orgnostream.exe(Windows)
Option 2: Docker
# Download Dockerfile
curl -O https://raw.githubusercontent.com/yourusername/gnostream/main/docs/docker/Dockerfile-prerelease
# Build and run
docker build -f Dockerfile-prerelease -t gnostream:prerelease .
docker run -d -p 8181:8181 --name gnostream-app gnostream:prereleaseโ๏ธ Configuration
config.yml
server:
port: 8181
host: "0.0.0.0"
...