diff --git a/README.md b/README.md new file mode 100644 index 0000000..d0951e8 --- /dev/null +++ b/README.md @@ -0,0 +1,60 @@ +# 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 + +```bash +# 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