Skip to main content

Self-hosted media, documented

A private screening room
for your entire library.

Obscura is a video-first, self-hosted media browser. Galleries, audio, performers, and plugin-powered metadata are first-class — and the whole thing fits in one Docker image.

Stack
SvelteKit · pg-boss · Postgres 16
Footprint
One container · port 8008
License
Open source

Manages

  • Videos
  • Series
  • Galleries
  • Images
  • Audio
  • Performers
  • Studios
  • Tags
  • Plugins

What it does

Built for one user, on one network, with everything in one place.

Streaming

On-demand HLS

Videos transcode to HLS via ffmpeg as they are needed. Cached renditions are served directly from the SvelteKit app — no separate media server required.

Metadata

Plugin-powered scrapers

Native TypeScript and Python plugins, plus Stash-compatible scrapers, expose providers for movies, series, performers, galleries, and audio behind one identify engine.

Operations

Background jobs you can see

pg-boss handles scan, probe, thumbnail, sprite, HLS, and import jobs. The Operations dashboard mirrors job state so you always know what the worker is doing.

Library

Folders are the schema

Movies, flat series, and seasoned series are inferred from depth under each library root. Sidecars merge cleanly without overwriting your edits.

Identify

pHash, OSHash, MD5

A Stash-compatible perceptual hash pipeline lets you identify videos against StashBox-protocol servers and contribute fingerprints back to the community index.

Deploy

One Docker image

PostgreSQL, ffmpeg, the SvelteKit web server, and the worker ship as a single image. Mount /data and /media, expose port 8008, and you are running.

The interface

Dark Room — sharp edges, brass on signal, glass when it floats.

The whole UI follows one design language. Read the Design Language doc for the full spec.

A dashboard built like an instrument panel.

Library activity, recent scans, and provider status read like a control room — dense, dark, and only colorful when something is active.

Obscura dashboard

Scenes designed for the screening room.

A cinematic scene detail page with HLS playback, trickplay sprites, transcripts, subtitle controls, and inline metadata editing.

Scene detail page

Mobile is first-class, not a fallback.

Browse, search, and play from any phone on your LAN. Touch targets, sheets, and bottom navigation are designed before the desktop expansion.

Obscura on mobile

Ready when you are

One container. One port. Your library.