Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.1.0] - 2026-02-13
Added
- Initial release of Strum VOD
- REST API with Fastify for asset management (create, upload, import, process, hard-delete)
- Node worker: BullMQ↔Redis-Streams bridge + AI pipeline (transcription, subtitles, chapters, highlights)
- Go transcoder (
apps/transcoder) — single-pass FFmpeg HLS ladder, 7 renditions 360p–4320p (H.264/HEVC, CPU or VA-API), shared EXT-X-MEDIA audio track, thumbnail sprites, downloadable MP4s - Async Modal transcription provider (scale-to-zero GPU) with HMAC-signed webhook callback, retry, and 5-min reaper
- React dashboard with upload, import, asset management, video playback, collections (folders)
- Embeddable HLS player with quality selector, thumbnail seek preview, comments & reactions
- Installable PWAs (dashboard + player) with Workbox service workers
- All-in-one Docker image with embedded PostgreSQL and Redis
- Docker Compose setup for local development (Postgres, Redis, MinIO)
- S3-compatible storage support (AWS S3, Cloudflare R2, Backblaze B2, MinIO)
- Pre-signed URL, resumable TUS, and direct (shared-volume) uploads
- URL import from public video URLs
- Shared Drizzle ORM schemas via
@strum-vod/dbpackage (PostgreSQL) - Organizations, members, roles, and API keys (multi-tenant)
- JWT sessions + email OTP magic-code login (Resend / SMTP / console)
- Analytics: views, watch time, retention, engagement, heatmap, live viewer count (SSE)
- Outgoing webhooks (
asset.ready,asset.error,asset.deleted,ai.completed,ai.failed) with delivery log & retry - Optional Stripe billing with tiered plan limits and usage metering
- Scheduled PostgreSQL backups (
pg_dump→ R2) - Superadmin dashboards (orgs, asset errors, webhook failures, BullMQ queues) with audit log