Skip to content

Releases: fireshare-app/fireshare

v1.8.3

Choose a tag to compare

@ShaneIsrael ShaneIsrael released this 23 Sep 06:40
6d52814

Upload tokens, and the Firesync companion app

Upload Tokens

  • Scripts, capture boxes and other tools can now upload without a password or a browser session. Create a token under Settings → Security → Upload Tokens. It uploads as you and obeys whatever permissions you hold at that moment, so revoking the account revokes the token.
  • Chunked uploads survive a server restart instead of starting over.
  • Tools can look before they send — ask whether a video or image is already in the library, and list your folders and games to decide where it belongs.
  • Full API in docs/UploadTokens.md.

Firesync

A companion app for Windows and Linux that watches folders on your machine and uploads new clips and screenshots on its own, with per-folder rules for where they land. It signs in with a token from the pane above, never your password. Linked from Settings, downloads on the Firesync releases page.

Fixes

  • Uploading a clip you already have no longer creates a second copy. The upload is hashed on arrival, and a match answers with the existing video instead. A record whose file went missing still accepts a re-upload as a restore.
  • nginx stops filling the error log with uninitialized "video_id" warnings on every thumbnail request.

v1.8.2

Choose a tag to compare

@ShaneIsrael ShaneIsrael released this 22 Sep 20:19
8c9d99c

Home feed and recovering media you moved

Home

  • A new page showing videos and photos together, grouped by day in a waterfall layout, with a toggle to narrow it to one or the other. (#709)
  • Settings → Sidebar is now one draggable list. Reorder pages, drag below the line to hide. The top page is your landing page.

Find Moved Files

Settings → Actions → Find Moved Files recovers records for media you moved outside Fireshare. (#716) It hashes files that aren't indexed at their current path, matches them against missing records, and shows you a plan — only the rows you tick get relinked. Views, tags, posters and transcodes stay attached; nothing on disk moves.

Fixes

  • Media found by a library scan is now attributed to the administrator instead of being left unowned. (#731) Existing rows are untouched — File Manager → Uploader adopts those.
  • Large profiles load again. The client's API timeout went from 10s to 25s. Thanks @jaherron.

Housekeeping

  • The repo has moved to fireshare-app/fireshare. Docker Hub images and Sponsors links are unchanged.

Upgrading

  • Home is on by default and first, so you'll land on it after upgrading. Drag Videos back to the top of Settings → Sidebar, or hide Home, to restore the old landing page. Existing links still work.
  • No configuration changes.

v1.8.1

Choose a tag to compare

@ShaneIsrael ShaneIsrael released this 14 Sep 21:55
a49d7b5

Uploader visibility and smarter game matching

Uploader visibility

Attribution was only visible on feed cards, so checking who owned a clip meant going back to the grid and searching for it by name.

  • Sortable Uploader column in the File Manager on both tabs, plus an uploader filter and a chip that jumps straight to everything still unattributed. Reattributing an existing library is now: click the chip, select all, set the uploader.
  • The byline appears on the watch page, the video modal and the image view; not just on cards.
  • An Uploader field on the video and image edit modals, for administrators only.
  • Share cards for /w/ and /i/ name the uploader.

Game matching

Games whose names differ only in case are now told apart - clips of "RUMBLE" stopped being suggested as "rumble". Fixing it turned up a second fault: local matching scored against the wrong value, so no filename ever matched a game already in your library and every lookup fell through to a SteamGridDB search. Both are fixed.

Fixes

  • The Images tab of the File Manager has an Uploader action. Images indexed before ownership existed were stuck unattributed with no way to adopt them.
  • Bulk uploader changes no longer report "(0)" on success.
  • The watch page's Open Graph tags are no longer empty. Link previews were unaffected either way. Crawlers use the server-rendered /w/ page.

Configuration

  • Session keys are generated and kept for you, at /data/.secret_key. Previously an instance with no key set generated a fresh one every boot, signing everyone out on each restart. Setting your own key still works.
  • CORS_ORIGINS makes cross-origin API access opt-in; SECURE_COOKIES marks both cookies Secure. A normal deployment needs neither. Both are documented in Security.md.

Upgrading

  1. Everyone will be signed out once - the cookie signing key changes on upgrade. Restarts keep sessions after that.
  2. Remove the SECRET_KEY line from your compose file if it still holds the example value from the docs.

v1.8.0

Choose a tag to compare

@ShaneIsrael ShaneIsrael released this 10 Sep 05:08
0cba514

Users, Permissions, and Profiles

Fireshare is now multi-user. Accounts, permissions, media ownership, and shareable profile pages all land in this release — along with the removal of LDAP, which needs a deliberate step from anyone still using it.

⚠️ Breaking: LDAP has been removed

LDAP authentication is gone and every account is now a local account. Because converting directory accounts is a one-way change to your database, Fireshare refuses to start while any LDAP_* variable is still set, and it checks this before touching the database:

LDAP has been discontinued
---------------------------------------------------------------------
LDAP authentication has been removed from Fireshare in this version
and all later versions. This instance still has an LDAP
configuration, so Fireshare has not started and your database has
not been modified.

Removing those variables from your compose file is how you confirm the upgrade. On the next start, each directory account is converted to a local account:

  • Uploads, profile, display name and permissions are kept. Nothing is deleted, and every account keeps its database id, so media stays attributed to whoever uploaded it.
  • The account has no password, so it cannot sign in yet. Set one, or send an invite, from Settings → Users.
  • Administrator status is left exactly as it was at that account's last sign-in. It used to be re-derived from LDAP_ADMIN_GROUP on every login; now it's an ordinary flag you manage yourself. Worth reviewing once after upgrading, since it's no longer maintained for you.

If you still depend on a directory server, do not remove the variables. Pin your image to 1.7.9 and stay there.

Users, Permissions, and Profiles

See Users.md for the full guide.

  • Admin-managed accounts with individual permissions, plus Viewer / Contributor / Curator presets. Administrators can still do everything.
  • view_private governs discovery — feeds, folders, tags, games, and profiles. Direct access by id is deliberately unchanged: private media stays link-only.
  • Media ownership. Videos and images record who uploaded them, threaded through the upload endpoints and the background scan. Deleting a user never deletes their media; the uploader link is just cleared.
  • Bulk "Set uploader" in File Manager for adopting existing content. On upgrade, your existing library is attributed to the administrator account.
  • Profile pages with header art, banner uploads, a games tab, and a link through from Settings → Users.
  • ⚠️ fireshare add-user now creates non-admin accounts by default. Before permissions existed it created administrators, because the underlying admin flag defaulted to true. Pass --admin for the old behaviour.
  • ADMIN_USERNAME / ADMIN_PASSWORD are re-applied on every start and manage exactly one account — the administrator created on first run. Accounts created through Settings or the CLI are never touched by them.

P.S I have absolutely no intention of ever adding a commenting system to Fireshare. If you want to comment on videos, go to YouTube. Please do not request the ability to add interactions, comments, or any social systems on videos, they will be closed and ignored.

Content Visibility

  • Private/public filter on the videos view and the image feed for authenticated users. Thanks @J-Stuff (#719)

Mobile Layout

  • The top bar no longer runs off the edge of a phone. On the Videos and Images pages it packed the drawer toggle, three filter selects and the edit/search buttons into one row — around 500px of content. Those selects now collapse into a single button that opens them in a popover, with a dot when a filter is off its default so nothing is hidden silently.
  • Form dialogs go fullscreen on mobile. Edit profile, Add user, and both upload dialogs take over the screen below the small breakpoint instead of sitting cramped in a centred box. The upload dialogs also stack their two columns, so the fields get full width instead of half.

UI/UX

  • Sidebar navigation is grouped, with tighter item sizing.
  • Sort and visibility filter selects are narrower.
  • Switch labels are spaced away from their toggle.
  • The empty top bar no longer renders on profile pages.
  • The image viewer opens correctly from a profile page.

Security

  • Action buttons are gated by the permission each endpoint actually requires, so the UI stops offering things the server will refuse.

Other

  • NVIDIA_DRIVER_CAPABILITIES is baked into the image (compute,utility,video), so NVENC works without setting it yourself.

Upgrading

Three database migrations run automatically on first start. Back up your database first, as always.

  1. If you use LDAP, read the breaking-change section above before pulling this image.
  2. After upgrading, review administrator flags on any converted directory accounts.
  3. Set passwords or send invites for converted accounts from Settings → Users.

v1.7.9

Choose a tag to compare

@ShaneIsrael ShaneIsrael released this 30 Aug 16:57
9bd61ad

Security Update

  • Fixed an authenticated SSRF (server-side request forgery) in the game asset update endpoint. The URL allowlist was validated with a different parser than the one used to fetch the asset, so a crafted URL could pass the SteamGridDB host check while causing the server to issue requests to arbitrary internal hosts and ports. Reported by @wenbo222

If you run Fireshare with LDAP auth enabled, this is exploitable by any logged-in user (including non-admins), so updating to v1.7.9 is highly recommended. Without LDAP, the endpoint requires an admin account, but upgrading is still advised.

v1.7.8

Choose a tag to compare

@ShaneIsrael ShaneIsrael released this 28 Aug 21:40
a49e436

Security Update

  • Fixed an LDAP authentication bypass that could happen through an LDAP filter injection which would allow an unauthenticated user to login on systems with LDAP auth enabled. @wenbo222

If you are using LDAP auth with Fireshare it is highly recommended that you update to v1.7.8 or disable LDAP auth until you are able to do so.

Other Fixes

  • A failed custom poster conversion no longer destroys your existing poster

v1.7.7

Choose a tag to compare

@ShaneIsrael ShaneIsrael released this 21 Aug 04:09
9e73899

What's changed

Two new security features have been added to Fireshare along with a couple other minor improvements and fixes.

Security & Authentication

  • Two-factor authentication (TOTP) - optional MFA for logins, with a new multi-step login flow (code entry + error handling). See Security.md for setup.
  • Login IP whitelisting - restrict which IPs are allowed to attempt a login.
  • Login button is now hidden in the navbar when logins are disabled due to IP whitelisting.

LDAP Fixes

Note: These LDAP fixes were primarily tested with AI as I do not have an easy way to test and validate LDAP. If there are any issues please report them ASAP.

  • LDAPS now works out of the box. The images ship CA certs but OpenLDAP had no CA configured, so every ldaps:// handshake failed with a bare "Can't contact LDAP server". Connections now verify against the system CA bundle.
  • New LDAP_TLS_CACERT and LDAP_TLS_REQCERT options for private/internal CAs.
  • LDAP_STARTLS is now actually implemented (it was previously read but unused).
  • ⚠️ Boolean env vars are parsed properly. LDAP_ENABLE, LDAP_STARTLS, and DISABLE_ADMINCREATE previously treated any value as true — including false. If you set one of these to false/0/no, it now does what you meant. Double-check these before upgrading.
  • Fireshare keeps serving if the LDAP server is unreachable at startup, so local accounts can still log in.
  • Stale service binds reconnect automatically instead of breaking every login until a restart.
  • Added connect/operation timeouts, clearer TLS failure logging, and fixed a connection leak on failed logins.

Library Scanning

  • MINUTES_BETWEEN_VIDEO_SCANS=0 now disables the automatic scan entirely - useful if you'd rather scan on demand from the admin panel. Startup logs tell you which mode you're in.
  • An invalid value falls back to the default of 5 with a warning, instead of silently turning scanning off.

UI/UX

  • View count icon turns red on private videos/images so they're easier to spot at a glance.
  • More reliable touch-device detection on video cards (now uses modern media queries). @Hyrull

Responsive Layout

  • Reworked the video modal layout for short and narrow viewports - the video and info panel stay usable and balanced on any screen size.

v1.7.6

Choose a tag to compare

@ShaneIsrael ShaneIsrael released this 08 Aug 14:38
7889e7f

Security Fix

Update recommended if you use password-protected videos.

What was wrong

  • When auth checking password protected videos nginx and the auth check parsed the request URL differently, and the auth check allowed requests against URL's it couldn't parse.

What's fixed

  • nginx now passes the video ID it already resolved directly to the auth check - one parser, no mismatch.
  • The auth check now denies requests it can't resolve instead of allowing them.
  • URLs are decoded and normalized before matching, and matching is now case-insensitive.

Not affected

  • Videos without a password (unchanged - private still means link-only, as documented).
  • Thumbnails, screenshots, and normal playback all behave as before.

Full Changelog: v1.7.5...v1.7.6

v1.7.5

Choose a tag to compare

@ShaneIsrael ShaneIsrael released this 07 Aug 15:12
ef1bcc5

What's Changed

  • Fix browser/GPU crash caused by leaked video players when closing the video modal by @yahya-kousa
  • Fix game folder auto-sort not properly moving newly added videos to their respective game folders by @ShaneIsrael
  • Fix delete racing with derived directory writers which could result in derived data failing to delete (i.e when deleting a game category) by @ShaneIsrael

Full Changelog: v1.7.4...v1.7.5

v1.7.4

Choose a tag to compare

@ShaneIsrael ShaneIsrael released this 26 Jul 15:08
42ef1f4

What's Changed

  • Fixed video seek causing playback to reset to 0 and pause by @yahya-kousa
  • Added ability to multi upload videos and see progress by @yahya-kousa
  • Added shift-click range support to selections when editing videos by @yahya-kousa

Full Changelog: v1.7.3...v1.7.4