Skip to content

Ferrex documentation

Ferrex combines a Rust media server, native desktop playback, Android and Android TV clients, packaging, and generated mobile contracts. This site is the canonical public documentation target at https://ferrexmedia.org/.

Operate Ferrex

Configure self-hosted deployments, understand auth/security behavior, run demo mode, and find recovery-oriented answers.

Build and extend

Navigate the Rust workspace, player crate boundaries, UI testing, and SQLx workflows used by contributors.

Mobile and QA reference

Find Android/TV QA packets, playback/auth evidence, visual accessibility runbooks, and mobile FlatBuffers contracts.

Release and packaging

Follow packaging references such as the Flathub submission guide and release-preflight source material.

Reader goalGo to
Run Ferrex locally or self-host itConfiguration
Check deployment/security assumptionsAuthentication security model and project policies
Understand the codebaseArchitecture
Change desktop player crates or UIPlayer dependency boundaries and UI testing workflow
Work on database/query metadataSQLx dynamic query policy and SQLx PostgreSQL workflow
Review Android/TV readinessQA and evidence reference
Work with mobile generated contractsMobile device-auth FlatBuffers contract
  • Operator pages explain observable behavior, configuration, recovery paths, and validation commands before implementation details.
  • Developer pages link architecture decisions to the crates, scripts, tests, and Nix shells that enforce them.
  • Reference pages preserve dated QA evidence and canonical repository documents with explicit status labels so reviewers can tell current guidance from historical packets.
  • Release pages summarize packaging workflows while leaving deployment, DNS, and secret-dependent hosting automation to separate approved work.