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.
| Variable | Description | Default | Required |
|---|
DOMAIN | Base 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_KEY | API key for SteamGridDB to fetch game metadata and cover art. | — | No |
MINUTES_BETWEEN_VIDEO_SCANS | How often (in minutes) the video library is scanned for new or removed files. | 5 | No |
ANALYTICS_TRACKING_SCRIPT | A full <script> tag from an analytics provider (e.g. Umami, Plausible) injected into the frontend HTML. | — | No |
TZ | Timezone for the container (e.g. America/New_York, Europe/London). | UTC | No |
FS_LOGLEVEL | Application log verbosity. Valid values: DEBUG, INFO, WARNING, ERROR, CRITICAL. | INFO | No |
THUMBNAIL_VIDEO_LOCATION | Timestamp in seconds used to capture the video thumbnail preview frame. | 50 | No |
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.
| Variable | Description | Default | Required |
|---|
DATA_DIRECTORY | Absolute path to the directory where the application database and metadata are stored. | $(pwd)/fireshare/data/ | Yes |
PROCESSED_DIRECTORY | Absolute path to the directory where derived data is stored — transcoded video variants, symlinks, poster images. | $(pwd)/fireshare/processed/ | Yes |
VIDEO_DIRECTORY | Absolute path to the source directory containing raw video files. | $(pwd)/path/to/my/videos/ | Yes |
IMAGE_DIRECTORY | Absolute 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.
| Variable | Description | Default | Required |
|---|
SECRET_KEY | Flask 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_USERNAME | Username for the initial administrative account created on first run. | admin | No |
ADMIN_PASSWORD | Password for the initial administrative account created on first run. | admin | No |
DISABLE_ADMINCREATE | Set to true to prevent automatic admin account creation on first run. Useful when using LDAP exclusively. | false | No |
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.
| Variable | Description | Default | Required |
|---|
ENABLE_TRANSCODING | Set to true to enable video transcoding. Fireshare will generate 480p, 720p, and 1080p variants during the background scan. | false | No |
TRANSCODE_GPU | Set 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. | false | No |
TRANSCODE_TIMEOUT | Maximum time in seconds allowed for a single transcoding job before it is cancelled. | 7200 | No |
Integrations
Webhook URLs for upload notifications. See Notifications for full payload examples and setup instructions.
| Variable | Description | Default | Required |
|---|
DISCORD_WEBHOOK_URL | Discord channel webhook URL. A notification is sent to this channel whenever a new video is uploaded. | — | No |
GENERIC_WEBHOOK_URL | Endpoint for a generic HTTP POST webhook notification. Must be used together with GENERIC_WEBHOOK_PAYLOAD. | — | No |
GENERIC_WEBHOOK_PAYLOAD | JSON 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.
| Variable | Description | Default | Required |
|---|
PUID | User 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. | 1000 | No |
PGID | Group ID the container process runs as. Files written to mounted volumes will be owned by this GID. | 1000 | No |
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.
| Variable | Description | Default | Required |
|---|
GUNICORN_WORKERS | Number 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_CAP | Upper 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. | 4 | No |
GUNICORN_THREADS | Number of threads per worker process. | 8 | No |
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.
| Variable | Description | Default | Required |
|---|
DEMO_MODE | Set to true to enable demo mode. Uses known credentials, disables transcoding, blocks destructive actions, and hides sensitive API keys. | false | No |
DEMO_UPLOAD_LIMIT_MB | Maximum upload size in MB when DEMO_MODE is enabled. Files over the limit are rejected before the upload begins. 0 disables the limit. | 0 | No |
DEMO_MODE_DELETE_ALL | Set to true to wipe all data, processed, video, and image directories on container startup. Only takes effect when DEMO_MODE is also true. | false | No |
DEMO_MODE_DELETE_ALL=true permanently deletes all content in the mounted directories on every container start. Never enable this on a production instance.