Skip to main content

Self-hosted media browser

A private home for your
entire collection.

Obscura is a self-hosted media browser for videos, comics, books, audio, and galleries — organized, searchable, and playable from any device on your network. Everything runs in a single Docker container on your hardware.

Media types
Video · Comics · Books · Audio · Galleries
Footprint
One container · port 8008
License
Open source

Manages

  • Videos
  • Series
  • Movies
  • Comics
  • Manga
  • Books
  • Galleries
  • Images
  • Audio
  • Performers
  • Studios
  • Tags
  • Plugins

What it does

What Obscura manages

Built for a single trusted user on a private network. All processing happens locally — no internet access required, no external services.

Reading

Comics, manga, and books

cbz/zip archives, image folders, and book files scan as organized series. Natural page order, ComicInfo metadata, reading progress, and a dedicated paged or webtoon reader — all in the same library as your videos.

Streaming

On-demand HLS

Videos transcode to HLS via ffmpeg as they are needed. Cached renditions are served directly from the app — no separate media server, no manual format conversion.

Audio

Your music collection, organized

Albums, tracks, cover art, waveforms, performer and studio linking. The same metadata pipeline as every other media type, with shuffle and a built-in player.

Metadata

Plugin-powered identification

TypeScript and Python plugins expose providers for movies, series, comics, performers, galleries, and audio. One identify engine covers your entire library.

Operations

Background jobs you can see

Scan, probe, thumbnail, sprite, HLS, and import jobs run in the background. The Operations dashboard mirrors every job in real time — so you always know what the system is doing.

Library

Folders are the schema

Movies, flat series, and seasoned series are inferred from your folder depth. Sidecars and sidecar metadata merge cleanly without overwriting your edits.

Deploy

One Docker image

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

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.

Every media type at a glance — recent activity, library totals, scan state, and job status. Dense, dark, and purposeful.

Obscura dashboard

Rich video playback, start to finish.

HLS adaptive streaming, trickplay frame strip, multi-language subtitles with a dockable transcript panel, and inline metadata editing — all in one page.

Video detail page with player and transcript

Comics and books organized for reading.

Archive chapters and image folders scan into organized series. Natural page order, read/unread progress, and a dedicated reader with paged or webtoon mode.

Gallery detail page

Mobile is first-class, not a fallback.

Browse, search, read, and play from any phone on your network. Every view is designed for touch before it scales up to desktop.

Obscura on mobile