OnScreen icon

Your media, on every screen.

OnScreen is an open-source media server for movies, TV, music, audiobooks, books and photos. It runs on PostgreSQL, ships as a single binary, and puts hardware transcoding, Live TV, DVR and single sign-on in the core, not behind a subscription.

Free and open source · AGPLv3 · Self-hosted · No account with us, ever

OnScreen's Movies library on a TV, with sort, genre and watched filters

Why OnScreen

Built like infrastructure, made for your couch.

Plex, Jellyfin and Emby are all good. OnScreen exists for people who want a server that scales past one machine, keeps every feature in the open-source core, and treats the database as the source of truth.

PostgreSQL-native

No SQLite file to corrupt. Use the backup, replication and tooling you already trust, and run more than one API instance behind a load balancer.

A GPU transcode fleet

NVENC, Quick Sync, VAAPI and AMF, with HDR tone mapping on the GPU. Add worker machines that pull the file over HTTP; jobs go to the node that can handle them and fail over when a GPU is full.

Everything in core

Live TV and DVR, hardware transcoding, downloads on the Android phone app, intro and credit skipping, Trakt and Last.fm scrobbling. No premium tier, because there isn't one.

Serious about accounts

OIDC, SAML and LDAP sign-in, two-factor codes for local accounts, per-user rating limits and library access, and an audit log. Nothing depends on a vendor's cloud.

Music for listeners

MusicBrainz metadata, ReplayGain, gapless playback, lyrics, and a bit-perfect desktop engine with WASAPI exclusive mode and DSD over DoP.

Playback that adapts

Each app tells the server what it can decode, and the server decides: direct play, remux or transcode. Adaptive bitrate, Dolby Vision where the TV supports it, and Chromecast for any video.

MoviesTV showsAnime (AniList)MusicAudiobooksPodcasts (RSS)Books & comicsPhotosHome videosLive TV

A look around

One app design, from the phone to the living room.

The TV apps share a design built for the remote: big targets, clear focus, and every action a button press away.

Apps

Watch anywhere.

Every app talks to your server and nothing else. Here is where each one stands today.

Web browserBuilt in
Windows & Linux desktopDownload
Amazon Fire TVAppstore
LG webOSIn store review
Samsung TizenIn store review
Android TV / Google TVGoogle Play testing
Android phoneGoogle Play testing
RokuIn development
XboxIn development

On iPhone, iPad and Mac, use the web app in Safari.

Compare

How it stacks up.

A few highlights. The full comparison covers fourteen areas, including where OnScreen is behind.

OnScreenPlexJellyfinEmby
DatabasePostgreSQLSQLiteSQLiteSQLite
LicenseAGPLv3ProprietaryGPLv2GPLv2 + proprietary
Live TV & DVRFreePaidFreePaid
Hardware transcodingFreePaidFreePaid
OIDC / SAML / LDAPBuilt inNoPluginPaid
Multi-node transcode fleetBuilt inNoNoNo
Books: CBZ, CBR and EPUBBuilt inNoPartialPartial

Get started

Up in a few minutes.

OnScreen needs PostgreSQL 16+ and Valkey (or Redis) 7+ next to it. Point it at your media folder and open port 7070.

# Release images: ghcr.io/collinjaycock/onscreen (tags 2.6, 2)
docker run -p 7070:7070 \
  -e DATABASE_URL="postgres://onscreen:${DB_PASS}@postgres:5432/onscreen?sslmode=disable" \
  -e VALKEY_URL="redis://valkey:6379" \
  -e SECRET_KEY="$(openssl rand -hex 32)" \
  -e AUTO_MIGRATE=true \
  -v /your/media:/media:ro \
  ghcr.io/collinjaycock/onscreen:2.6
  1. 1. Run the serverWith Docker as above, or with the Windows and Linux installers from the GitHub releases.
  2. 2. Open the web appGo to http://your-server:7070 and create the admin account.
  3. 3. Add librariesPoint each library at a folder. Metadata and artwork come from TMDB, TVDB, MusicBrainz and AniList.
  4. 4. Pair your TVInstall an app, enter your server's address, or sign in with a code from another device.

GPU transcoding, worker nodes, high availability and upgrade notes: see the deployment guide.

Support the project

Free, with no paid tier. Help keep it that way.

OnScreen is built in spare time. If it's useful to you, a one-off or monthly sponsorship helps keep it going.

Special thanks

Thank you to my wife, parents, friends and daughter. You all put up with my rambling about this project and being used as guinea pigs. I love you all.