Option 1: Jellyfin on a Home Server
Jellyfin is the simplest path to self-hosted streaming with a polished UI. Install it on any machine (Windows, Linux, macOS, or a Raspberry Pi 4B for low-power use), point it at a folder of video files, and access the web UI from any browser on your local network. Enable hardware transcoding (if your CPU or GPU supports it) to handle format conversion on the fly. For access outside your home, either set up port forwarding on your router or use Tailscale for a private VPN tunnel — the latter is significantly easier and more secure.
Option 2: nginx + Cloud Object Storage
For streaming files to external users, the most reliable setup is storing videos in an S3-compatible object storage bucket (Cloudflare R2 is free for egress, AWS S3 is widely supported) and serving them with proper headers. Configure your bucket to allow public read access on specific paths and ensure the server responds with `Accept-Ranges: bytes` and the correct `Content-Type` header. Files served this way are directly streamable in any browser or player, including FluxPlays.
Option 3: Simple nginx Static File Serving
If you already have a Linux server, nginx can serve video files with two configuration changes: enable `sendfile on` for efficient file transfer, and set `add_header Accept-Ranges bytes` to enable seeking. Place your video files in the nginx web root and they become direct streamable URLs. Add basic auth with `htpasswd` for access control. This approach has minimal overhead and can handle several simultaneous viewers on modest hardware.