Your Media. Your Server.

A self-hosted media server for movies, TV shows, and music. Modern alternative to Plex and Jellyfin — no cloud, no subscriptions, full control.

Get Started GitHub — Coming Soon

Packed with Features

Everything you need to manage and stream your personal media library.

🎬

Multi-Library Support

Movies, TV shows, music, and photos — all in one place. Supports MKV, MP4, AVI, FLAC, MP3, and dozens more formats.

🎨

Rich Metadata

Automatic TMDB integration pulls posters, cast photos, ratings, genres, trailers, and detailed descriptions for your entire library.

▶️

Advanced Player

Playback speed control, skip intro/credits, picture-in-picture, audio track selection, A/V sync adjustment, and auto-play next episode.

🔄

Server-Side Transcoding

FFmpeg-powered transcoding with support for up to 6 concurrent streams. Hardware acceleration via Intel QSV and NVIDIA NVENC.

🔍

Search & Discovery

Unified search across all media types. Continue watching, watch history, and personal watchlist to track what matters.

🔌

Webhook Integrations

Automatic library rescanning via Radarr and Sonarr webhooks. New media shows up in your library without lifting a finger.

🎥

Roku Channel

Stream your library on the big screen with the dedicated Roku channel. Browse, search, and watch — all from your couch.

⌨️

Keyboard Shortcuts

Full keyboard navigation in the web player — space to pause, arrow keys to seek, F for fullscreen, M to mute, and more.

📡

Docker Deployment

One command to spin up the entire stack — Go API, SvelteKit frontend, PostgreSQL, Redis, and nginx — all via Docker Compose.

Built with a Modern Stack

Production-grade technologies chosen for performance, reliability, and developer experience.

Backend
Go 1.23 + Fiber v2
Frontend
SvelteKit 2 + Svelte 5
Database
PostgreSQL 17
Cache
Redis 7.4
Transcoding
FFmpeg (fMP4)
Metadata
TMDB API
Proxy
nginx
Infrastructure
Docker Compose

Up and Running in Minutes

Four steps from zero to streaming.

1

Clone the repository

git clone https://github.com/SpasticPalate/MediaSurv.git
cd MediaSurv
2

Configure your environment

cp .env.example .env
# Edit .env — set POSTGRES_PASSWORD and TMDB_API_KEY
3

Start the stack

docker compose up -d
4

Add your media

Open http://localhost:3000, head to Settings, add your library paths, and hit scan. Your media appears within seconds.

Full Setup Guide →
MediaSurv on Roku

Coming to Roku

Stream your entire MediaSurv library on the big screen. Browse your movies and TV shows, pick up where you left off, and enjoy hardware-accelerated playback — all from a dedicated Roku channel.

Docker-ready · No config files · Secure JWT auth