All apps · 0 apps
Fireshare
Docker app from Shane Israel's Repository
Overview
Readme
View on GitHubFireshare
Share your game clips, videos, or other media via unique links.
Live Demo
·
Report a Bug
If Fireshare is useful to you, GitHub Sponsors is the best way to support development. It keeps the demo server running and helps me carve out time on weekends for new features and updates.
Key Features
- Share videos through unique links
- Public / private feeds (private is link-only)
- Video transcoding with CPU or GPU
- Password protected videos
- Game-based organization with cover art
- Folder sharing
- Mobile device support
- Uploads (optional, can be restricted)
- Video view counting
- Video cropping
- Video tags for improved search and categorization
- Open Graph metadata for rich link previews
- Notifications to Discord and others
- RSS feed for new public videos
- LDAP support
Supported Video Formats
| Container | Extension | Notes |
|---|---|---|
| MP4 | .mp4 |
Most compatible, recommended |
| MP4 (Apple) | .m4v |
Identical to MP4, common on Apple devices |
| QuickTime | .mov |
Common on macOS / iOS |
| WebM | .webm |
Open format, browser-native |
Supported encodings: H.264 (AVC), H.265 (HEVC), AV1, VP9.
Files must be in a supported format because the original file is always served directly to the viewer. Transcoding (when enabled) only generates additional lower-quality versions for adaptive streaming; the original is never modified.
Navigation
Dashboard

Automatic Game Organization


Video Details

Public / Private Uploading

Installation
Fireshare is designed to run in Docker.
Required volume mounts:
| Mount | Purpose |
|---|---|
/data |
Internal database |
/processed |
Generated metadata (posters, metadata files) |
/videos |
Source video directory to scan |
/images |
Source image directory to scan |
Docker Compose
services:
fireshare:
container_name: fireshare
image: shaneisrael/fireshare:latest-lite
ports:
- "8080:80"
volumes:
- /path/to/data:/data
- /path/to/processed:/processed
- /path/to/videos:/videos
- /path/to/images:/images
environment:
- ADMIN_USERNAME=your-admin-username
- ADMIN_PASSWORD=your-admin-password
- SECRET_KEY=replace_with_random_string_can_be_anything
# The domain your instance is hosted at. e.x: demo.fireshare.net
# this is required for opengraph to work correctly for shared links.
- DOMAIN=
# PUID/PGID: the user/group ID the container runs as. Files written to your
# volumes (data, processed, videos, images) will be owned by this user. Set these to
# match the owner of your host directories to avoid permission errors.
# Run `id` on your host to find your UID and GID.
- PUID=1000
- PGID=1000
# The port the web server (nginx) listens on inside the container (default: 80).
# Leave this alone and change the host-side "ports" mapping above unless you run
# with network_mode: host, where "ports" is ignored and this becomes the host port.
# - FIRESHARE_PORT=80
Update the volume paths and credentials, then run:
docker-compose up -d
Open http://localhost:8080.
Docker Run
docker run --name fireshare \
-v $(pwd)/fireshare/data:/data:rw \
-v $(pwd)/fireshare/processed:/processed:rw \
-v /path/to/my/videos:/videos:rw \
-v /path/to/my/images:/images:rw \
-p 8080:80 \
-e ADMIN_USERNAME=your-admin-username \
-e ADMIN_PASSWORD=your-admin-password \
-e PUID=user-id-with-read-write-permissions \
-e PGID=group-id-with-read-write-permissions \
-d shaneisrael/fireshare:latest
Open http://localhost:8080.
Fireshare Lite
The fireshare:latest-lite image is a smaller alternative that uses the system-provided FFmpeg instead of the CUDA-enabled build included in the standard image. It is a good fit for most users who do not need GPU transcoding.
| Standard | Lite | |
|---|---|---|
| GPU transcoding (NVIDIA NVENC) | Supported | Not available |
| CPU transcoding | Supported | Supported |
| Image size | Larger (CUDA libraries) | Smaller |
Use the lite image by appending -lite to your tag:
Note: Setting
TRANSCODE_GPU=truehas no effect in the lite image. GPU transcoding is permanently disabled regardless of environment variables.
Configuration
LDAP
See LDAP.md for setup instructions.
Transcoding (Optional)
When enabled, Fireshare will create lower quality versions of your original supported file type videos. Your viewers can then choose to play your videos at lower qualities that their internet can handle. Fireshare will also attempt to automatically downgrade the quality of a viewer who is constantly buffering.
Transcoding is off by default. To enable it, set the following environment variables:
ENABLE_TRANSCODING=true
TRANSCODE_GPU=true # optional, NVIDIA only
CPU transcoding works out of the box. For NVIDIA GPU transcoding, you only need an NVIDIA GPU on the host. The image handles drivers and toolkit.
GPU requirements: NVIDIA GPU with NVENC support.
Unraid Setup
- Install the "NVIDIA Driver" plugin from Apps / Community Applications.
- Add to the Fireshare container environment:
ENABLE_TRANSCODING=true TRANSCODE_GPU=true NVIDIA_DRIVER_CAPABILITIES=all - Add
--gpus=allto "Extra Parameters".
Encoder Selection
Fireshare automatically selects the best available encoder.
GPU mode (TRANSCODE_GPU=true):
| Encoder | Requirement |
|---|---|
| AV1 (av1_nvenc) | RTX 40 series or newer |
| H.264 (h264_nvenc) | GTX 1050 or newer |
| CPU fallback | Used if GPU encoding fails |
CPU mode (TRANSCODE_GPU=false):
| Encoder | Notes |
|---|---|
| H.264 | Most compatible, faster encoding |
| AV1 | Best compression, slower |
Docker Environment Variables
See EnvironmentVariables.md for the full list of available environment variables.
Local Development
Requirements: Python 3, Node.js, and npm.
- Clone the repo:
git clone https://github.com/ShaneIsrael/fireshare.git - Start backend services from the project root:
./run_local.sh - Start the frontend:
cd app/client npm install npm start - Open
http://localhost:3000and sign in withadmin/admin.
Contributing
Contributions are welcome. For larger changes, open an issue first to align on scope.
- Know how to code! I DO NOT WANT VIBE CODERS SUBMITTING PRs AI assisted coding is fine if you can read, understand, and validate AI code. Asking AI to review itself doesn't count as reading, understanding, and validating AI code.
- Fork the repository
- Create a branch from
develop - Commit your changes
- Rebase on latest
develop - Open a pull request to
develop
For issues and feature requests, visit the issue tracker.
Please DO NOT open a pull request for a feature or addition that was not previously discussed with me. Pull requests that do this will be automatically closed.
Database Changes
If you update models, create a migration and review it before opening a pull request.
Troubleshooting
See TROUBLESHOOTING.md for a full guide covering installation issues, playback problems, permission errors, transcoding, LDAP, and more.
Star History
If you like the project, consider giving it a star. It helps increase visibility and supports continued development.
Install Fireshare on Unraid in a few clicks.
Find Fireshare in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Download Statistics
Total Downloads Over Time
Related apps
Explore more like this
Explore allLinks
Details
shaneisrael/fireshare:latestRuntime arguments
- Web UI
http://[IP]:[PORT:80]- Network
bridge- Shell
sh- Privileged
- false
- Extra Params
--gpus=all
Template configuration
The admin account username
- Target
- ADMIN_USERNAME
- Default
- admin
- Value
- admin
The admin account password
- Target
- ADMIN_PASSWORD
- Default
- admin
- Value
- admin
The domain your fireshare instance is located. This is required for Open Graph tags to work in social media sites/apps where you share your links. (leave out http:// and https://) example: fireshare.mysite.com
- Target
- DOMAIN
Replace with some random string. Without it, you'll be forced to login every restart of the app.
- Target
- SECRET_KEY
How often in minutes Fireshare will scan for new videos
- Target
- MINUTES_BETWEEN_VIDEO_SCANS
- Default
- 5
- Value
- 5
The location in the video thumbnails are generated. A value between 0-100 where 50 would be the frame in the middle of the video file and 0 would be the first frame of the video.
- Target
- THUMBNAIL_VIDEO_LOCATION
- Value
- 0
Required for and enables game categorization.
- Target
- STEAMGRIDDB_API_KEY
Allow Fireshare to transcode your videos.
- Target
- ENABLE_TRANSCODING
- Default
- false
- Value
- false
If transcoding enabled, use nvidia gpu transcoding if available.
- Target
- TRANSCODE_GPU
- Default
- false
- Value
- false
- Target
- NVIDIA_DRIVER_CAPABILITIES
- Default
- all
- Value
- all
- Default
- 99
- Value
- 99
- Default
- 100
- Value
- 100
Container Path: /data
- Target
- /data
- Value
- /mnt/user/appdata/fireshare/data
This is where data generated by fireshare related to your shared videos will live. If this is not mapped, whenever you update the container this data will be lost and will need to be regenerated. DO NOT EDIT OR CHANGE FILES IN THIS DIRECTORY.
- Target
- /processed
- Value
- /mnt/user/appdata/fireshare/processed
This is where fireshare will look for videos that you want to share.
- Target
- /videos
This is where fireshare will look for images that you want to share.
- Target
- /images
Container Port: 80
- Target
- 80
- Value
- 8080