Tater Tube Server is the backend for Tater Tube players. It provides The Tube catalog, Newznab-backed streaming, local media libraries, player pairing, optional FFmpeg transcoding, queue status, logs, and a mobile-friendly setup UI.
This server is designed to pair with the Tater Tube player image. The player repo has the Raspberry Pi images, module setup, built-in updater details, and device-specific notes for CRT composite and HDMI builds.
- Player GitHub: TaterTotterson/Tater-Tube
- Project website: tatertube.tv
- Start the server with Docker.
- Open
http://SERVER-IP:8080. - Add at least one NNTP provider under
Configuration -> NNTP Providers. - Add your Newznab URL and API key under
Configuration -> Newznab Stream. - Create a player PIN under
Configuration -> Tater Tube Players. - On the Tater Tube player, open The Tube and enter the server URL plus PIN.
Login is disabled by default. Configure users later from the web UI if you want to lock down the server dashboard.
The release image is published to GitHub Container Registry:
docker pull ghcr.io/tatertotterson/tater-tube-server:latestMinimal run command:
docker run -d \
--name tater-tube-server \
-p 8080:8080 \
-v /path/to/tater-tube-server/config:/config \
--restart unless-stopped \
ghcr.io/tatertotterson/tater-tube-server:latestDocker Compose:
services:
tater-tube-server:
image: ghcr.io/tatertotterson/tater-tube-server:latest
container_name: tater-tube-server
ports:
- "8080:8080"
volumes:
- /path/to/tater-tube-server/config:/config
restart: unless-stoppedThe only required volume is /config. It stores server settings, player pairing
tokens, stream metadata, and the segment cache.
Unraid template icon URL:
https://raw.githubusercontent.com/TaterTotterson/tater-tube-server/main/frontend/public/unraid-icon.png
To use Local Media, mount host media folders into the container, then add the
container paths in Configuration -> Local Media.
Example:
services:
tater-tube-server:
image: ghcr.io/tatertotterson/tater-tube-server:latest
container_name: tater-tube-server
ports:
- "8080:8080"
volumes:
- /mnt/user/appdata/tater-tube-server/config:/config
- /mnt/user/media/movies:/media/movies:ro
- /mnt/user/media/tv:/media/tv:ro
- /mnt/user/media/music:/media/music:ro
- /mnt/user/media/home-videos:/media/home-videos:ro
restart: unless-stoppedThen add categories like:
| Category | Library Type | Folder Path |
|---|---|---|
| Movies | Movies | /media/movies |
| TV Shows | TV Shows | /media/tv |
| Music | Music | /media/music |
| Home Videos | Folders | /media/home-videos |
Library types:
Moviesshows a clean movie title list.TV Showsbrowses as show, season, then episode.Musicscans album folders for Tape Deck when Tater Tube Server is selected as its provider.Folderskeeps the original directory structure.
Use container paths, not host paths, inside the Tater Tube Server web UI.
Tube TV builds shared server-side channels from the local movie and television libraries. Every paired player receives the same schedule, commercials, channel numbers, and optional logo overlays.
The Bumpers tab supports named station-ID groups for Before commercials,
After commercials, or Before + after. Select the groups on each custom
channel and Tube TV inserts one eligible bumper at each configured position.
Bumpers are shuffled without repeating until every video in that placement pool
has played.
Transcoding is optional and lives under Configuration -> Hardware Transcoding.
The Docker image includes a bundled FFmpeg build with Intel QSV/VAAPI driver
support. Profiles are included for CRT 480p, HDMI 1080p, and HDMI 4K playback.
For Intel, AMD, Raspberry Pi, and other /dev/dri hardware encoders, pass the
device into the container:
services:
tater-tube-server:
image: ghcr.io/tatertotterson/tater-tube-server:latest
devices:
- /dev/dri:/dev/dri
volumes:
- /path/to/tater-tube-server/config:/configFor NVIDIA, install the NVIDIA Container Toolkit on the host, then run with GPU access:
docker run -d \
--name tater-tube-server \
--gpus all \
-p 8080:8080 \
-v /path/to/tater-tube-server/config:/config \
ghcr.io/tatertotterson/tater-tube-server:latestThe dashboard shows detected hardware and active playback cards show whether a stream is direct play, software transcode, or hardware transcode.
For Docker installs:
docker pull ghcr.io/tatertotterson/tater-tube-server:latest
docker restart tater-tube-serverThe built-in updater can also update Docker installs when the container has access to the Docker socket and Docker CLI.
go run ./cmd/tater-tube-server serve --config ./config.yamlFrontend development:
cd frontend
npm install
npm run devThe frontend dev server proxies API requests to http://localhost:8080.
This project is based on javi11/altmount. The streaming internals and queue/import pipeline come from that project. Tube TV channel logo browsing uses the public logo catalog from tv-logo/tv-logos.
Tater Tube Server is licensed under the GNU Affero General Public License v3.0. Portions derived from AltMount retain the upstream MIT notice in NOTICE.
