Dragonflight - self-hosted broadcast media asset management. SRT/RTMP/SDI ingest via Blackmagic DeckLink, FFmpeg proxy generation, growing-file editing via SMB + Premiere Pro CEP panel, BullMQ job queue, S3-compatible storage (RustFS). Replaces Grass Valley AMPP FramelightX.
Find a file
2026-05-20 14:50:02 -04:00
deploy fix(deploy): test-api.sh — skip capture 404 (sidecar/idle mode is normal) 2026-05-20 13:56:26 -04:00
docs/superpowers docs: add Phase 1 NLE Editor implementation plan 2026-05-18 19:34:53 -04:00
services Add Settings nav link to sidebar 2026-05-20 14:50:02 -04:00
.env.example fix(infra+workers): S3 creds, ffprobe, BullMQ awaits, thumbnail seek, bin optional, docker-compose vars, jobs Redis, recorders stop codes: .env.example 2026-05-16 00:29:45 -04:00
.gitignore feat(editor): integrate openreel-video as services/editor with MAM hooks 2026-05-17 21:44:37 -04:00
docker-compose.gpu.yml feat: docker-compose.gpu.yml overlay — NVIDIA GPU pass-through + NVENC worker 2026-05-20 14:19:02 -04:00
docker-compose.worker.yml feat: worker compose adds capture profile (BMD DeckLink) and GPU env vars 2026-05-20 14:19:21 -04:00
docker-compose.yml fix: correct editor service port typo (47435 → 7435) 2026-05-19 23:06:35 -04:00
README.md add README.md 2026-04-07 21:58:16 -04:00
setup-repo.sh add setup-repo.sh 2026-04-07 21:58:16 -04:00

Wild Dragon

Self-hosted Media Asset Management platform built to replace Grass Valley AMPP FramelightX.

Services

Service Port Description
web-ui 8080 Browser-based MAM interface + capture controls
mam-api 3000 REST API — assets, projects, bins, jobs
capture 3001 SDI capture daemon (Blackmagic DeckLink + FFmpeg)
worker Async job processor (proxy gen, thumbnails, conform)
db 5432 PostgreSQL 16 metadata store
queue 6379 Redis 7 job queue (BullMQ)

Quick Start

# Clone
git clone https://forge.wilddragon.net/zgaetano/wild-dragon.git
cd wild-dragon

# Configure
cp .env.example .env
# Edit .env with your S3 credentials and secrets

# Launch
docker compose up -d

# Open
open http://localhost:8080

Architecture

SDI Input (DeckLink) → capture service → dual FFmpeg streams
                                          ├─ HiRes (ProRes) → S3
                                          └─ Proxy (H.264)  → S3
                                                                ↓
                        web-ui ← mam-api ← PostgreSQL ← worker (BullMQ)
                                                          ├─ proxy_gen
                                                          ├─ thumbnail
                                                          └─ conform (EDL → FFmpeg → export)

Tech Stack

  • Backend: Node.js / Express
  • Frontend: Vanilla HTML/CSS/JS
  • Database: PostgreSQL 16
  • Queue: Redis 7 + BullMQ
  • Storage: S3-compatible (RustFS)
  • Media Processing: FFmpeg
  • Capture: Blackmagic DeckLink SDK
  • Deployment: Docker Compose

License

MIT