MCPcopy Index your code
hub / github.com/ShaneIsrael/fireshare

github.com/ShaneIsrael/fireshare @v1.7.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.7.3 ↗ · + Follow
926 symbols 2,339 edges 129 files 156 documented · 17% updated 9d agov1.7.3 · 2026-06-29★ 1,41611 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Logo

Fireshare

Share your game clips, videos, or other media via unique links.





<a href="https://github.com/shaneisrael/fireshare/actions">
  <img alt="Docker Build" src="https://github.com/shaneisrael/fireshare/actions/workflows/docker-publish-main.yml/badge.svg" />
</a>
<a href="https://hub.docker.com/r/shaneisrael/fireshare">
  <img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/shaneisrael/fireshare?label=docker%20pulls">
</a>
<a href="https://hub.docker.com/r/shaneisrael/fireshare/tags?page=1&ordering=last_updated">
  <img alt="GitHub tag (latest SemVer)" src="https://img.shields.io/github/v/tag/shaneisrael/fireshare?label=version">
</a>
<a href="https://github.com/shaneisrael/fireshare/stargazers">
  <img alt="GitHub stars" src="https://img.shields.io/github/stars/shaneisrael/fireshare">
</a>





<a href="https://www.buymeacoffee.com/shaneisrael">
  <img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" height="41" width="174" />
</a>





<a href="https://demo.fireshare.net">Live Demo</a>
&nbsp;&middot;&nbsp;
<a href="https://github.com/ShaneIsrael/fireshare/issues">Report a Bug</a>

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

card-view

Automatic Game Organization

folders

folders-game

Video Details

edit

Public / Private Uploading

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=true has 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

  1. Install the "NVIDIA Driver" plugin from Apps / Community Applications.
  2. Add to the Fireshare container environment: ENABLE_TRANSCODING=true TRANSCODE_GPU=true NVIDIA_DRIVER_CAPABILITIES=all
  3. Add --gpus=all to "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.

  1. Clone the repo: sh git clone https://github.com/ShaneIsrael/fireshare.git
  2. Start backend services from the project root: sh ./run_local.sh
  3. Start the frontend: sh cd app/client npm install npm start
  4. Open http://localhost:3000 and sign in with admin / admin.

Contributing

Contributions are welcome. For larger changes, open an issue first to align on scope.

  1. 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.
  2. Fork the repository
  3. Create a branch from develop
  4. Commit your changes
  5. Rebase on latest develop
  6. 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.

<img alt="Star History Chart" src="https://api.star-history.com/chart?repos=shaneisrael/fireshare&type=date&legend=top-left" />


Core symbols most depended-on inside this repo

Api
called by 106
app/client/src/services/Api.js
json
called by 63
app/server/fireshare/models.py
count
called by 27
app/server/fireshare/models.py
getSetting
called by 20
app/client/src/common/utils.js
create_app
called by 14
app/server/fireshare/__init__.py
disconnect
called by 13
app/client/src/services/AdminSSE.js
getGameAssetUrl
called by 13
app/client/src/common/utils.js
getUrl
called by 10
app/client/src/common/utils.js

Shape

Function 703
Route 141
Method 60
Class 22

Languages

Python58%
TypeScript42%

Modules by API surface

app/server/fireshare/api/video.py58 symbols
app/server/fireshare/models.py56 symbols
app/server/fireshare/api/admin.py51 symbols
app/server/fireshare/api/image.py41 symbols
app/server/fireshare/util.py40 symbols
app/server/fireshare/cli.py39 symbols
app/server/fireshare/api/scan.py36 symbols
app/client/src/services/VideoService.js32 symbols
app/server/fireshare/api/game.py31 symbols
app/server/fireshare/api/tag.py22 symbols
app/client/src/services/GameService.js22 symbols
app/server/fireshare/api/misc.py20 symbols

For agents

$ claude mcp add fireshare \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page