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.

Every Fireshare option is controlled through environment variables passed to the Docker container. Set them in your docker-compose.yml under environment: or via --env flags in a docker run command. Variables marked Required must be present for the container to start correctly; all others have safe defaults you can override as needed.
SECRET_KEY must be set to a stable, random value. Without it, Flask generates a fresh key on every container restart, which immediately invalidates all active session cookies and logs everyone out.
Generate a strong SECRET_KEY value with a single command:
python3 -c "import secrets; print(secrets.token_hex(32))"
Copy the output into your docker-compose.yml or environment file and keep it stable across restarts.

App Configuration

General application behaviour — domain, library scanning interval, analytics, logging, and timezone.
VariableDescriptionDefaultRequired
DOMAINBase URL or domain name where the instance is hosted. Required for link sharing and Open Graph previews to work correctly. Do not include http:// or https://.Yes (for link sharing)
STEAMGRIDDB_API_KEYAPI key for SteamGridDB to fetch game metadata and cover art.No
MINUTES_BETWEEN_VIDEO_SCANSHow often (in minutes) the video library is scanned for new or removed files.5No
ANALYTICS_TRACKING_SCRIPTA full <script> tag from an analytics provider (e.g. Umami, Plausible) injected into the frontend HTML.No
TZTimezone for the container (e.g. America/New_York, Europe/London).UTCNo
FS_LOGLEVELApplication log verbosity. Valid values: DEBUG, INFO, WARNING, ERROR, CRITICAL.INFONo
THUMBNAIL_VIDEO_LOCATIONTimestamp in seconds used to capture the video thumbnail preview frame.50No

Storage

Absolute paths that map the container’s internal directories to host filesystem locations. All four must be provided via Docker volume mounts; the environment variables tell Fireshare where those mounts live inside the container.
VariableDescriptionDefaultRequired
DATA_DIRECTORYAbsolute path to the directory where the application database and metadata are stored.$(pwd)/fireshare/data/Yes
PROCESSED_DIRECTORYAbsolute path to the directory where derived data is stored — transcoded video variants, symlinks, poster images.$(pwd)/fireshare/processed/Yes
VIDEO_DIRECTORYAbsolute path to the source directory containing raw video files.$(pwd)/path/to/my/videos/Yes
IMAGE_DIRECTORYAbsolute path to the source directory containing raw image files.$(pwd)/path/to/my/images/Yes
Volume mounts (-v / volumes:) physically bind host directories into the container. The *_DIRECTORY variables tell the application code where to find those mount points. In most deployments these four variables do not need to be changed from their defaults because the compose file already mounts into /data, /processed, /videos, and /images.

Security

Credentials and session security for the Fireshare admin account and Flask session layer.
VariableDescriptionDefaultRequired
SECRET_KEYFlask session encryption key. If not set, a random key is generated on each restart, invalidating all active sessions.(random on each start)Strongly recommended
ADMIN_USERNAMEUsername for the initial administrative account created on first run.adminNo
ADMIN_PASSWORDPassword for the initial administrative account created on first run.adminNo
DISABLE_ADMINCREATESet to true to prevent automatic admin account creation on first run. Useful when using LDAP exclusively.falseNo
The default ADMIN_USERNAME and ADMIN_PASSWORD values are publicly known. Always change them before exposing your instance to the internet.
Fireshare also supports LDAP authentication via a separate set of environment variables. See LDAP for the full variable list and setup instructions.

Transcoding

Controls whether Fireshare generates lower-quality video variants for adaptive streaming and which encoder to use. See Transcoding for a full setup guide.
VariableDescriptionDefaultRequired
ENABLE_TRANSCODINGSet to true to enable video transcoding. Fireshare will generate 480p, 720p, and 1080p variants during the background scan.falseNo
TRANSCODE_GPUSet to true to use NVIDIA GPU (NVENC) for transcoding instead of the CPU. Requires an NVIDIA GPU with NVENC support and the standard (non-lite) image.falseNo
TRANSCODE_TIMEOUTMaximum time in seconds allowed for a single transcoding job before it is cancelled.7200No

Integrations

Webhook URLs for upload notifications. See Notifications for full payload examples and setup instructions.
VariableDescriptionDefaultRequired
DISCORD_WEBHOOK_URLDiscord channel webhook URL. A notification is sent to this channel whenever a new video is uploaded.No
GENERIC_WEBHOOK_URLEndpoint for a generic HTTP POST webhook notification. Must be used together with GENERIC_WEBHOOK_PAYLOAD.No
GENERIC_WEBHOOK_PAYLOADJSON payload template POSTed to GENERIC_WEBHOOK_URL. Use the [video_url] placeholder to include a link to the uploaded video.No
Both GENERIC_WEBHOOK_URL and GENERIC_WEBHOOK_PAYLOAD must be set together. Providing only one will cause a fatal error on startup.

Container

User and group identity for the container process. Matching these to the owner of your host directories avoids permission errors on mounted volumes.
VariableDescriptionDefaultRequired
PUIDUser ID the container process runs as. Files written to mounted volumes will be owned by this UID. Run id on your host to find the correct value.1000No
PGIDGroup ID the container process runs as. Files written to mounted volumes will be owned by this GID.1000No

Web Server

Gunicorn worker and thread configuration. The defaults are suitable for most deployments. Adjust these on high core-count machines where the auto-calculated worker count can exceed container PID limits.
VariableDescriptionDefaultRequired
GUNICORN_WORKERSNumber of Gunicorn worker processes. On high core-count machines the default formula (cpu_count × 2 + 1) can spawn dozens of processes; set this to a fixed value to stay within container PID limits.min(cpu_count × 2 + 1, 4)No
GUNICORN_WORKER_CAPUpper bound applied to the auto-calculated worker count. Set to 0 to remove the cap and revert to the original cpu_count × 2 + 1 formula.4No
GUNICORN_THREADSNumber of threads per worker process.8No

Demo Mode

Demo mode restricts destructive actions, hides sensitive configuration, and optionally resets the instance to a clean state on every container restart. It is intended for running a public demo of Fireshare.
VariableDescriptionDefaultRequired
DEMO_MODESet to true to enable demo mode. Uses known credentials, disables transcoding, blocks destructive actions, and hides sensitive API keys.falseNo
DEMO_UPLOAD_LIMIT_MBMaximum upload size in MB when DEMO_MODE is enabled. Files over the limit are rejected before the upload begins. 0 disables the limit.0No
DEMO_MODE_DELETE_ALLSet to true to wipe all data, processed, video, and image directories on container startup. Only takes effect when DEMO_MODE is also true.falseNo
DEMO_MODE_DELETE_ALL=true permanently deletes all content in the mounted directories on every container start. Never enable this on a production instance.

Build docs developers (and LLMs) love