Skip to main content

About Prismedia

Prismedia is a private, self-hosted media library for a trusted user or household on a private LAN. It is video-first, but movies, series, images, galleries, comics, eBooks, audio, people, studios, tags, and collections are all first-class library entities.

It ships as one Docker image. PostgreSQL 16, ffmpeg, the .NET API, the .NET worker, and the static Svelte frontend all run together behind port 8008.

Prismedia dashboard

What it is for

  • Keeping a local media library organized without handing library state to a cloud service.
  • Browsing movies, series, videos, images, galleries, comics, eBooks, and audio — with people, studios, tags, and collections that link it all together — from one app.
  • Reading comics (.cbz/.zip), EPUBs, and PDFs in a built-in reader, and playing video and audio with resume.
  • Managing files and scan exclusions from the browser when your media mount is writable.
  • Running local background work for scans, probes, thumbnails, sprites, waveforms, HLS, subtitles, identify, and imports.
  • Identifying and enriching metadata through native plugins and wrapped Stash community scrapers, while keeping Prismedia's schema independent.
  • Requesting new movies, series, and music through connected Radarr, Sonarr, and Lidarr instances, with request history and live download status.
  • Optionally serving your library to Jellyfin client apps (Infuse, Manet, and similar) for video and audio playback.

Main workspaces

WorkspacePurpose
DashboardContinue Watching, Recently Watched, recent media by type, library counts, and update notices.
BrowseMovies, Series, Videos, Galleries, Images, Comics, eBooks, Audio, Artists, People, Studios, Tags, and Collections.
FilesWatched-root file tree with open, upload, new folder, rename, move, rescan, exclude, and delete actions.
IdentifyDurable review queue for provider matches and metadata proposals.
RequestSearch connected Radarr/Sonarr/Lidarr instances and request movies, series, artists, and albums.
PluginsNative plugins and wrapped Stash community scrapers.
JobsWorker heartbeat, active queues, recent work, failures, and manual queue actions.
SettingsLibrary roots, visibility, playback, subtitles, generation, worker, storage, API access, and diagnostics.

The sidebar is yours to rearrange — rename, reorder, group, hide, and collapse sections — and your layout is saved on the server and follows you across devices. See Navigation & Mobile Gestures.

Design direction

Prismedia follows Prism Noir Luxe: dark material layers, glass for floating and interactive surfaces, controlled radii, brass glow for active state, and dense layouts that remain touch-friendly.

The design language is documented in Design Language.

Runtime model

Browser / LAN / Jellyfin client

│ HTTP :8008

.NET API
├─ serves /api/*
├─ serves the built Svelte app
├─ serves Jellyfin-compatible routes (/Items, /Videos, /Audio, …)
├─ streams direct files and HLS assets
└─ applies EF Core migrations

├──────────► PostgreSQL 16

└──────────► .NET worker
scans, probes, previews, HLS, subtitles, identify, imports

The frontend is a client only. Public HTTP contracts live in the .NET backend, and the Svelte app prefers generated OpenAPI clients.