-
released this
2026-05-22 22:07:55 +10:00 | 10 commits to main since this release✨ What's New
📁 Local Push & File Browser
- Introduced a file browser in the admin panel for managing and pushing local video files
- Per-file RTMP push modal with random stream key generator and responsive sizing
- Folder multi-file push: assign independent stream keys per file, batch start/stop, inline live status with
real-time duration counter - Push status is now shown inline on each file row; replaced the top push-jobs area with a dedicated job detail
modal (copy address, stop, add to stream) - Publish-archive button on file and folder rows — opens the stream editor prefilled with signed playback URLs
- File browser supports breadcrumb navigation, search, directory memory across view switches,
..parent row, and
automatic filtering of hidden/system folders - "Add to existing stream" dropdown available at file rows, folder push modal, and job detail modal
🎬 VOD / Video Serving
- New
/video/endpoint with HMAC-signed URLs and HTTP Range support (seek-capable playback without login) - Folder publish-archive recursively includes all subfolders via directory walk
🎨 Admin UX
- Replaced all native
alert()calls with themed Toast notifications (success / error / info / warn,
auto-dismiss, dark mode aware) - Replaced all native
confirm()calls with a custom modal dialog - Custom overlay scrollbar for admin and index pages: no layout shift, theme-colored, auto-hides after 1.5s,
draggable - Fixed background diagonal stripe drifting between pages with
background-attachment: fixed - Added drag handle for viewport config rows in the stream editor
- Added pagination and real-time search to the hidden push address mapping table
- Added pagination to the stream analytics detail table; SSE live refresh no longer resets the current page
- View URL hash renamed:
#push→#local,#obs→#remote
🌐 Public Index Page
- Stream list now loads in viewport-sized batches; initial count is calculated from actual layout dimensions
- "Load more" button in ghost outline style consistent with existing tab buttons
- New cards animate in with a staggered fade + slide on each load-more click
⚙️ Infrastructure
- Dockerfile: added ffmpeg, optimized layer caching by separating
requirements.txtcopy docker-compose.yml: addedRTMP_HOST,VIDEOS_DIRSenv vars and videos volume mount- CI: build and push now runs against the internal registry to avoid Cloudflare upload size limits
🐛 Bug Fixes
- Fixed 500 error on stream creation caused by psycopg3
dict_rownot supporting integer subscripts - Fixed language toggle button
title/aria-labelnot updating on language switch - Fixed API Keys list not re-rendering after language switch
- Fixed admin stream count per tab showing the combined LIVE + ARCHIVE total instead of per-tab count
- Replaced em dash in token hint text with a hyphen
🔄 What's Changed
Full Changelog: v1.0.0...v1.1.0
Downloads