Sign inSign up

javanhut/reelscape

By javanhut

Updated 5 months ago

Image
Web servers
0

273

javanhut/reelscape repository overview

ReelScape

Self-hosted, open-source media browser and player. Browse your local movie and TV show library through a streaming-service-style UI with carousel banners, genre filtering, episode lists, and a full-featured video player.

Built with Bun, React, Bootstrap, and SQLite. FFmpeg is bundled for on-the-fly transcoding of MKV / AVI / WMV. Optional KaidaDB backend for range-seekable remote streaming.

Features

  • Carousel home page + genre-filtered rows
  • Detail modals with cast, synopsis, and episode browsing
  • Per-season metadata (description, banner, logo swap)
  • Video player: auto-play, auto-fullscreen, seamless episode transitions, keyboard shortcuts, draggable scrubber, playback speed, auto-hide controls
  • TOML-driven metadata — one .toml per title folder
  • Profile + settings (display name, avatar, TMDB key, media directories) persisted in SQLite

Tags

  • latest — newest stable build
  • X.Y.Z — pinned version (e.g. 1.0.0)

Quick Start

docker run -d \
  --name reelscape \
  -p 3000:3000 \
  -v reelscape-data:/usr/src/app/data \
  -v /path/to/your/media:/media \
  javanhut/reelscape:latest

Open http://localhost:3000, click the profile icon → Settings, and point the Movies and TV Shows directories at /media/Movies and /media/TV Shows.

docker-compose

services:
  reelscape:
    image: javanhut/reelscape:latest
    container_name: reelscape
    ports:
      - "3000:3000"
    volumes:
      - reelscape-data:/usr/src/app/data
      - /path/to/your/media:/media
    environment:
      - NODE_ENV=production
    restart: unless-stopped

volumes:
  reelscape-data:

Volumes

┌──────────────────────┬──────────────────────────────────────────────────────┐
│         Path         │                       Purpose                        │
├──────────────────────┼──────────────────────────────────────────────────────┤
│ /usr/src/app/data    │ SQLite DB + avatars (persist this)                   │
├──────────────────────┼──────────────────────────────────────────────────────┤
│ /media (recommended) │ Your library — mount read-only with :ro if preferred │
└──────────────────────┴──────────────────────────────────────────────────────┘

Ports

- 3000/tcp — web UI + API

Environment

┌──────────────────┬───────────────────┬──────────────────────────────┐
│       Var        │      Default      │         Description          │
├──────────────────┼───────────────────┼──────────────────────────────┤
│ NODE_ENV         │ production        │ Bun runtime mode             │
├──────────────────┼───────────────────┼──────────────────────────────┤
│ OSSFLIX_DATA_DIR │ /usr/src/app/data │ DB + avatar storage location │
└──────────────────┴───────────────────┴──────────────────────────────┘

Media Layout

Each title lives in its own folder with a .toml file, a banner image, and video files:

Movies/YourMovie/ metadata.toml banner.jpg movie.mp4

TV Shows/YourShow/ metadata.toml banner.jpg YourShow_s01_ep01.mkv YourShow_s01_ep02.mkv


Minimal metadata.toml:

```toml
[series]
name = "Your Title"
type = "Movie"          # or "TV Show"
description = "..."
genre = ["Action", "Drama"]
cast = ["Actor One"]
season = 1            # required for TV shows

episodes = 10

Supported video: .mp4, .webm (served directly); .mkv, .avi, .wmv (transcoded via FFmpeg).

Source & Docs

GitHub: https://github.com/javanhut/OSSFlix — full docs, KaidaDB integration, API reference, and keybindings.

License

Open source — see LICENSE in the repo.

Tag summary

Content type

Image

Digest

sha256:8ec88e19f

Size

310.4 MB

Last updated

5 months ago

docker pull javanhut/reelscape