Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ShaneIsrael/fireshare/llms.txt

Use this file to discover all available pages before exploring further.

Fireshare is a self-hosted media platform built for gamers who want full control over their clips. Drop your video files into a watched directory, and Fireshare automatically scans, organizes, and generates a unique shareable link for each one — no third-party upload service required, no accounts needed for viewers, and no data leaving your server.

What is Fireshare?

Fireshare runs entirely inside a single Docker container. You point it at a folder of game clips, set a few environment variables, and it does the rest: it scans your library on a schedule, generates poster thumbnails, organizes videos by game using SteamGridDB cover art, and serves everything through a clean web interface backed by nginx and a Flask/Python API. The React frontend gives you a responsive dashboard that works on both desktop and mobile. Viewers access clips through unique links without creating an account. The admin — that’s you — can mark any video as public or private, add tags, assign games, crop clips, and configure whether uploads are allowed for other users.

Key Features

Quickstart

Deploy Fireshare with Docker Compose in under five minutes. Mount your video folder, set credentials, and you’re live.

Video Library

Automatic library scanning picks up new clips on a configurable schedule. Posters, metadata, and playback-ready symlinks are generated in your /processed volume.

Sharing

Every video gets a unique, permanent link. Open Graph metadata is embedded so previews render correctly when pasted into Discord, Slack, or social media.

Uploads

Optional upload support lets other users contribute clips. Uploads can be restricted to admin-only or left open, with a configurable size limit.

Games & Tags

Organize clips by game with cover art pulled from SteamGridDB. Add tags for finer-grained search and categorization across your library.

Transcoding

Generate 720p and 1080p adaptive-quality variants with CPU or NVIDIA GPU (NVENC). Fireshare automatically downgrades quality for buffering viewers.

Notifications

Send a webhook notification to Discord or any generic HTTP endpoint whenever a new video is uploaded or published.

LDAP

Authenticate users against an existing LDAP directory instead of managing local accounts.

Environment Variables

Every aspect of Fireshare — scanning intervals, transcoding, webhooks, gunicorn workers — is configured through environment variables.

Troubleshooting

Resolve common issues with permissions, playback, transcoding, LDAP, and more.

Supported Video Formats

Fireshare serves the original file directly to the viewer, so files must be in a browser-playable format. Transcoding (when enabled) only generates additional lower-quality variants for adaptive streaming — the original file is never modified.
ContainerExtensionNotes
MP4.mp4Most compatible, recommended
MP4 (Apple).m4vIdentical to MP4, common on Apple devices
QuickTime.movCommon on macOS / iOS
WebM.webmOpen format, browser-native
Supported encodings: H.264 (AVC), H.265 (HEVC), AV1, VP9.

Architecture Overview

Fireshare runs as a single Docker container that bundles four components:
  • nginx — Reverse proxy that serves the React frontend as static files and forwards /api requests to the Flask backend. Exposed on port 80 inside the container (mapped to 8080 by default).
  • Flask / Python backend — Handles library scanning, link generation, transcoding jobs, user authentication, and all API endpoints. Runs under gunicorn with configurable workers and threads.
  • React frontend (Vite) — Single-page application that provides the admin dashboard, public video feed, and viewer pages. Built with Vite at image build time and served as static assets by nginx.
  • FFmpeg — Used for thumbnail generation and, when transcoding is enabled, for producing adaptive-quality video variants. The standard image ships a CUDA-enabled FFmpeg build; the lite image uses the system FFmpeg package.
All persistent state lives in the four volume mounts you provide: /data for the SQLite database, /processed for generated metadata and symlinks, /videos for your source clips, and /images for source images.

Next Steps

Ready to run your own instance?

Quickstart

Deploy Fireshare with Docker Compose in under five minutes.

Build docs developers (and LLMs) love