Fireshare
Self host your media and share with unique links
Install / Use
/learn @ShaneIsrael/FireshareREADME
Key Features
- Share videos through unique links
- Public / Private feeds (private is link only)
- Game-based organization with cover art
- 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
- RSS feed for new public videos
- LDAP support
- Optional video transcoding with CPU or NVIDIA GPU




<center><img src=".github/images/ogg-data.png" alt="Open graph preview" /></center>
Installation
Fireshare is designed to run in Docker.
Required mounts:
/data- internal database/processed- generated metadata (posters, metadata files)/videos- source video directory to scan
If your clips are in /path/to/my_game_clips/, mount that path to /videos in the container.
Docker Compose
Edit docker-compose.yml for your host paths and admin credentials, then run:
docker-compose up -d
Then open http://localhost:8080.
Docker Run
docker run --name fireshare \
-v $(pwd)/fireshare:/data:rw \
-v $(pwd)/fireshare_processed:/processed:rw \
-v /path/to/my_game_clips:/videos:rw \
-p 8080:80 \
-e ADMIN_PASSWORD=your-admin-password \
-d shaneisrael/fireshare:latest
Open http://localhost:8080.
Configuration
- LDAP setup: LDAP.md
Transcoding (Optional)
Transcoding is off by default.
ENABLE_TRANSCODING=true
TRANSCODE_GPU=true # optional, NVIDIA only
CPU transcoding works out of the box. For NVIDIA GPU setup with the Docker image, you only need an NVIDIA GPU on the host—the image handles drivers and toolkit.
GPU Requirements
- NVIDIA GPU with NVENC support
Unraid Setup
If you're using Unraid:
- Install "NVIDIA Driver" plugin from Apps/Community Applications
- Add to Fireshare container environment:
ENABLE_TRANSCODING=true TRANSCODE_GPU=true NVIDIA_DRIVER_CAPABILITIES=all - Add to "Extra Parameters":
--gpus=all
Encoder Selection
When GPU mode is enabled, Fireshare selects the best available encoder:
GPU Mode (TRANSCODE_GPU=true):
- AV1 with GPU (av1_nvenc) — RTX 40 series or newer
- H.264 with GPU (h264_nvenc) — GTX 1050+
- Fallback to CPU encoders if GPU encoding fails
CPU Mode (TRANSCODE_GPU=false):
- H.264 with CPU — Most compatible, faster encoding
- AV1 with CPU — Best compression, slower
Local Development
Requirements: Python 3, Node.js, and npm.
- Clone the repo:
git clone https://github.com/ShaneIsrael/fireshare.git - Start backend services from project root:
./run_local.sh - Start 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.
- Fork the repository
- Create a branch from
develop - Commit your changes
- Rebase on latest
develop - Open a pull request to
develop
Issues and feature requests: https://github.com/ShaneIsrael/fireshare/issues
Database Changes
If you update models, create a migration and review it before opening a pull request.
Troubleshooting
Playback Problems
If playback is unstable:
- Reduce source file size/bitrate
- Verify upload bandwidth on the host
- Prefer browser-friendly formats (MP4/H.264 is safest)
- Consider enabling transcoding for better compatibility
- Test in another browser to rule out codec/browser limitations
Upload Fails Behind Nginx
Increase proxy limits/timeouts, for example:
client_max_body_size 0;
proxy_read_timeout 999999s;
If you use a different proxy, apply equivalent upload size and timeout settings there.
Related Skills
node-connect
334.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
334.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.2kCommit, push, and open a PR
