Skip to install instructions
v1.8.0 Multi-user accounts, permissions & profiles

A link for every clip.
Hosted on your box.

Fireshare turns a folder on your server into a searchable video and image library. Every file gets its own URL you can drop in Discord — and the file people watch is your original, untouched. No upload caps. No re-encoding. No expiry date.

730k
Docker pulls
1.5k
GitHub stars
GPLv3
no paid tier
~/homelab
$ docker run -d --name fireshare -p 8080:80 \
    -v ./data:/data \
    -v ./processed:/processed \
    -v ./videos:/videos \
    -v ./images:/images \
    -e ADMIN_USERNAME=admin \
    -e ADMIN_PASSWORD=changeme \
    shaneisrael/fireshare:latest-lite
Then open http://localhost:8080 and drop in a clip.
The Fireshare dashboard: a grid of game clips with titles, durations, view counts and game tags

Runs anywhere Docker does

Docker Unraid Synology Proxmox TrueNAS Raspberry Pi Linux

You already recorded it.
Why does someone else get to hold it?

Every clip host solves the same problem the same way: take your file, shrink it, put it behind their brand, and charge you when you outgrow the free tier. Fireshare skips all of that — the file stays on your disk and the link points at your server.

A clip site or a chat upload

  • Your file lives on someone else's disk, under their terms of service
  • Re-encoded on upload — the 1440p clip your viewers get is not the one you recorded
  • Upload caps and storage tiers decide what you're allowed to share
  • Links rot: accounts lapse, free tiers expire, clips get pruned
  • Ads, watermarks and sign-up walls between your friend and your clip
  • Monthly subscription, forever, for a folder of videos

Fireshare

  • Your file never moves — it sits in the folder you mounted
  • The original is served untouched; transcodes are extra qualities, never replacements
  • A 2.4 GB clip is as shareable as a 12 MB one. Your disk is the limit
  • Links last exactly as long as you keep the file
  • No account needed to watch. Public, link-only, or password-protected — per file
  • Free and GPLv3. You already pay for the hardware

Built for a folder that keeps growing

01 / SHARE

Copy link. Paste. Done.

Open a clip, grab its URL, and it plays in the browser for anyone you send it to — with a real title, thumbnail and inline player when it unfurls in Discord, Slack or Twitter. Trim the dead air off the front first if you want — the crop is reversible.

  • ·Per-file privacy: public, link-only, or password
  • ·Open Graph previews that embed instead of showing a bare URL
  • ·Titles, descriptions, tags and custom thumbnails
A clip open in Fireshare with its share link, game, tags, thumbnail picker and a trim timeline
02 / ORGANIZE

It sorts your clips by game, on its own

Fireshare reads what you dropped in and groups it by game, pulling cover art automatically. Four hundred clips stop being a wall of 2026-03-05_20-05-14 and turn into shelves you can actually browse.

  • ·Automatic game detection with cover art
  • ·Tags, folders and search across titles, tags and games
  • ·Images get the same treatment — gallery, lightbox, links
Fireshare's game view: a grid of cover art for ARC Raiders, Battlefield 6, Helldivers 2, Overwatch and more
03 / PEOPLE

Hand out accounts, not your admin password

New in v1.8.0: invite your squad with a link. Each of them gets a profile page at /u/username showing their own uploads, and you decide exactly what they're allowed to do. Settings and user management stay yours.

upload view_private edit_own delete_own edit_any manage_tags transcode manage_library

Ten capability keys, or three presets — Viewer, Contributor, Curator.

Uploading a clip to Fireshare, choosing whether it lands in the public or private feed
04 / OWN IT

Still just files, in a folder, on your server

No opaque blob store, no external database to run. Point Fireshare at a directory and it scans what's there. The file manager gives you bulk moves, privacy changes and transcode cleanup — and if you ever walk away, your clips are exactly where you left them.

  • ·Optional transcoding, CPU or NVIDIA NVENC, off by default
  • ·Viewers pick a quality; buffering drops them down automatically
  • ·PUID/PGID so files stay owned by you, not root
Fireshare's file manager listing clips with size, duration, resolution, transcodes and privacy

This clip is coming off a Fireshare box right now

Not YouTube, not a CDN. It's streaming from v.fireshare.net, a public instance running the same container you're about to install. Switch the quality — those are the transcodes.

v.fireshare.net/w/c35114e0f7a3675b47a987027fa523bd
Dude had 4 surveyor vaults!
Open the real page

Want to poke around the whole library instead? demo.fireshare.net

Everything in the box

No tiers, no add-ons, no feature held back for a pro plan. This is the whole list.

Sharing

  • A unique link per video and image
  • Public, link-only, or password-protected
  • Rich embeds in Discord, Slack & Twitter
  • Share a whole folder as one link
  • RSS feed of new public clips
  • Discord & webhook notifications
  • Per-video view counts

Library

  • Automatic game sorting with cover art
  • Tags and full-library search
  • Image gallery with lightbox
  • In-browser trim & crop
  • Custom thumbnails and descriptions
  • Bulk file manager with folders
  • Drag-and-drop web upload

People

  • Multi-user accounts
  • Ten granular permission keys
  • Viewer / Contributor / Curator presets
  • Shareable profile pages
  • Avatars and banners
  • Single-use invite links
  • Upload attribution per file

Your server

  • One Docker container
  • No external database
  • CPU or NVIDIA NVENC transcoding
  • Adaptive quality on buffering
  • Two-factor authentication (TOTP)
  • Login IP whitelisting
  • PUID/PGID file ownership

Plays .mp4, .m4v, .mov and .webm (H.264, H.265, AV1, VP9) — the original file is always what gets served.

Three steps, one container

If you've run anything in Docker before, this is a five-minute job. If you're on Unraid, it's a button.

  1. 01

    Pick your folders

    One for clips, one for images, plus two small ones Fireshare uses for its database and generated posters.

  2. 02

    Start the container

    Copy the compose file below, change the paths and the admin password, then docker compose up -d.

  3. 03

    Open it and log in

    Visit http://localhost:8080. Drop a clip in, hit copy, paste it to a friend.

docker-compose.yml
services:
  fireshare:
    image: shaneisrael/fireshare:latest-lite
    container_name: fireshare
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - /path/to/data:/data
      - /path/to/processed:/processed
      - /path/to/videos:/videos
      - /path/to/images:/images
    environment:
      - ADMIN_USERNAME=admin
      - ADMIN_PASSWORD=changeme
      # your public domain — needed for link previews
      - DOMAIN=clips.example.com
      # run `id` on the host so files stay yours
      - PUID=1000
      - PGID=1000
      # optional: extra qualities for slower connections
      - ENABLE_TRANSCODING=true
latest-lite is the smaller image — use latest for NVIDIA GPU transcoding. Full install docs →

Before you ask

What hardware do I need?

Anything that runs Docker and has disk space. Fireshare streams the original file straight to the browser, so serving clips is cheap — an old NUC or a NAS handles it fine. Transcoding is the only heavy part, and it's off by default.

Does it re-encode or compress my clips?

No. Your original file is never modified and is what viewers get by default. If you turn transcoding on, Fireshare writes additional lower-quality versions next to it so someone on hotel wifi can still watch.

Do people need an account to watch?

No. Anyone with the link can watch. Private media is link-only — it stays out of feeds and listings but opens for whoever you sent it to — and individual videos can also sit behind a password. Accounts are only for people who upload or manage the library.

What video formats work?

MP4, M4V, MOV and WebM, encoded as H.264, H.265, AV1 or VP9 — which covers what ShadowPlay, ReLive and your phone record by default. Because the original is served straight to the browser, it has to be something browsers can play, so MKV recordings need remuxing to MP4 first.

How do I share links outside my house?

Put it behind whatever reverse proxy you already run — Nginx Proxy Manager, Caddy, Traefik, a Cloudflare tunnel — and set the DOMAIN variable to that hostname so link previews point at the right place. Login IP whitelisting and TOTP two-factor are built in for the admin side.

Can I give other people accounts?

Since v1.8.0, yes. Send an invite link or set a password for them, then grant any mix of ten capabilities. Each account gets a profile page of its own uploads. Settings and user management stay admin-only.

I'm on 1.7.x and I use LDAP. What happens?

LDAP was removed in v1.8.0. Fireshare refuses to start while any LDAP_* variable is still set, before it touches your database — removing them is how you confirm the upgrade. Each directory account is then converted to a local one, keeping its uploads, profile and permissions, but with no password: you set one or send an invite from Settings → Users. If you still need a directory server, pin to 1.7.9. Read the release notes →

Is it actually free?

Yes — GPLv3, no paid tier, nothing held back. Sponsoring is optional and pays for the public demo server and the weekends that go into new releases.

Your clips are already on a disk you own.

Give them a link that belongs to you too.

$ docker run -d --name fireshare -p 8080:80 ... shaneisrael/fireshare:latest-lite

Fireshare is built on weekends. Sponsoring keeps the demo server online and the releases coming.

Install