tofa

tofa

Docker app from tofa's Repository

Overview

tofa is a media server for your movies and shows. One container runs everything, including its own database and automatic backups. Point it at your media, claim it with your tofa account, and watch on the web, Apple TV, iPhone, iPad, Android TV, and Windows. First start: open http://[your-server]:33333 from a device on your network and sign in to claim the server. Config note: keep the app data path on a fast pool device (the default below uses /mnt/cache). tofa runs its own database in there; database files on the /mnt/user FUSE layer are slower and not recommended. tofa is in beta and needs a tofa account. Sign up at https://tofa.tv.

tofa on Unraid

tofa is a media server for your movies and shows. One container runs everything: the server, its own database, automatic backups, and its own video engine for hardware transcoding. Point it at your media, claim the server with your tofa account, and watch on the web, Apple TV, iPhone, iPad, Android TV, and Windows.

tofa is in beta. You need a tofa account to claim a server; you can sign up at tofa.tv.

Install

Install tofa from the Apps tab. Two settings are worth understanding before you click Apply, and both are filled in for you by default:

  • Config (/data) defaults to /mnt/cache/appdata/tofa. tofa runs its own database in there, and databases do a lot of small writes. Paths under /mnt/user go through Unraid's share layer, which adds overhead to every one of those writes, even when the share lives on your cache pool. Pointing tofa at the pool directly avoids that. If your pool has a different name, adjust the path.
  • Media (/media) defaults to /mnt/user/media. Point this at wherever your library lives. Set the mode to Read Only if tofa should never delete files from disk.

PUID and PGID default to 99 and 100, Unraid's nobody user and users group, which own appdata and shares out of the box. tofa fixes ownership of its own data folder on every start. It never changes ownership of your media.

The container uses host networking. That is what lets devices on your network connect to tofa directly, and lets tofa ask your router for a port for remote access. tofa listens on port 33333, which avoids the default ports of other media servers, so it can run alongside them.

Claim your server

Open a browser on any device on your network:

http://YOUR-UNRAID-IP:33333

Sign in with your tofa account and claim the server. The first start takes a minute or two while tofa sets up its database. Your server picks up its secure certificate on its own moments after the claim, so there is no need to restart the container.

Then add a library in the web interface and point it at your media inside the container: /media, or a subfolder like /media/Movies. tofa scans, matches, and fills in artwork on its own.

Hardware transcoding

  • Intel or AMD, including iGPUs: in the container settings, turn on Advanced View and set the /dev/dri device to /dev/dri on both sides. Then use Settings, then Transcoding, then Test hardware in the tofa web interface.
  • NVIDIA: install the Nvidia Driver plugin from Community Applications, set Extra Parameters to --init --runtime=nvidia, and add two variables: NVIDIA_VISIBLE_DEVICES = all and NVIDIA_DRIVER_CAPABILITIES = compute,video,utility.

Updates

tofa shows an update banner in the web interface when a new build is out. To apply it, use force update on the container in the Docker tab (turn on Advanced View to see it). Your data and settings live in your appdata path and survive updates.

If something is off

  • The container stops right after starting. Check its log from the Docker tab. If you see a permissions message, confirm PUID and PGID are set to 99 and 100 and that your appdata path is a real disk path like /mnt/cache/appdata/tofa.
  • My media isn't showing up. Check that the /media mapping points at the right share and that the nobody user can read those files. Files moved onto the array by other tools occasionally end up with odd ownership; Unraid's New Permissions tool on the Tools tab resets a share to nobody:users.
  • Playback stutters on big files. Set up hardware transcoding above, and keep tofa's appdata on a pool device rather than /mnt/user.
  • Port 33333 is already in use. Something else on the host claimed it. Stop that service, or switch the container off host networking and map a different port. Off host networking tofa cannot detect your server's address by itself, so also set your Unraid server's LAN IP in the ADVERTISED_LAN_IP variable, or under Settings, then Remote Access in the app. That keeps devices at home connecting directly.

Getting help

Once you have a tofa account, the support portal is at https://accounts.tofa.tv/support, and it is also linked from Settings inside the app. Diagnostics from your server attach to a ticket in one click, which is usually the fastest route to an answer.

About this repository

templates/tofa.xml is the Community Applications template for the tofa media server. Issues with the template itself can be raised here.

Media gallery

1 / 4

Install Tofa on Unraid in a few clicks.

Find Tofa in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Tofa Review the template variables and paths Click Install

Requirements

A tofa account, from https://tofa.tv. x86-64 or ARM64 Unraid host.

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/tofatv/tofa:beta
Last Updated2026-08-03
First Seen2026-08-03

Runtime arguments

Web UI
http://[IP]:33333
Network
host
Shell
sh
Privileged
false
Extra Params
--init

Template configuration

ConfigPathrw

tofa's own data: database, backups, transcode cache, logs. Keep this on a pool (cache) device, not /mnt/user.

Target
/data
Default
/mnt/cache/appdata/tofa
Value
/mnt/cache/appdata/tofa
MediaPathrw

Your media library. Set Mode to Read Only if tofa should never delete files from disk.

Target
/media
Default
/mnt/user/media
Value
/mnt/user/media
PUIDVariable

User id tofa runs as. 99 is Unraid's nobody user, which owns appdata and shares by default.

Default
99
Value
99
PGIDVariable

Group id tofa runs as. 100 is Unraid's users group.

Default
100
Value
100
UMASKVariable

File-creation mask for files tofa writes.

Default
0022
Value
0022
Hardware transcoding (Intel / AMD)Device

Leave empty unless you have an Intel or AMD GPU or iGPU. Set both sides to /dev/dri to let tofa use it for hardware transcoding. NVIDIA users leave this empty and instead install the Nvidia-Driver plugin, add --runtime=nvidia to Extra Parameters, and set NVIDIA_VISIBLE_DEVICES=all plus NVIDIA_DRIVER_CAPABILITIES=compute,video,utility as variables.

Target
/dev/dri
ADVERTISED_LAN_IPVariable

Only needed if you switch the container off host networking (bridge/custom network): set it to your Unraid server's LAN IP so devices at home can connect directly. You can also set this later in the app under Settings > Remote Access. With host networking (the default) tofa detects the address automatically and this can stay empty.