Skip to content

Latest commit

 

History

History
87 lines (62 loc) · 2.54 KB

File metadata and controls

87 lines (62 loc) · 2.54 KB

totoro-tv

A dark, cinematic web interface for Tunarr channels. Browse your custom TV lineup, check what's on, and watch live streams — all from your browser.

Features

  • Channel grid — all your Tunarr channels at a glance, with live "now playing" info and progress bars
  • TV Guide — EPG grid view with current and upcoming programs across all channels
  • Live player — HLS stream playback via Vidstack
  • Auto-refresh — now-playing data updates every 30s, guide every 60s

Stack

Getting Started

Prerequisites

Development

just install   # install deps + create .env from example
# edit .env — set TUNARR_URL to your Tunarr instance
just dev       # start Vite dev server on http://localhost:5173

The dev server proxies /tunarr/ to TUNARR_URL, matching the production Nginx behaviour.

Configuration

Variable Description Example
TUNARR_URL Base URL of your Tunarr instance http://tunarr:8000

Deployment

Docker (recommended)

# Using the published image
cp .env.example .env
# edit .env
just up

The container runs Nginx on port 8080. Point your reverse proxy there.

Build locally

just build   # builds Docker image tagged totoro-tv
just run     # runs it on http://localhost:8080

CI/CD

Pushing to main triggers a Forgejo Actions workflow that builds and pushes the Docker image to forgejo.patilla.es/patillacode/totoro-tv:latest. Version tags (v1.2.3) additionally push a versioned tag.

Requires a REGISTRY_TOKEN secret in the repository settings.

just release 1.0.0   # tags v1.0.0 and pushes — triggers versioned build

Available recipes

just            # list all recipes
just dev        # dev server
just build      # local Docker build
just run        # build + run container
just up         # pull published image + start
just down       # stop
just restart    # pull + restart
just logs       # tail logs
just release X  # tag + push vX
just clean      # remove dist/ and node_modules/