Skip to content

Releases: error311/FileRise

v3.1.1

18 Jan 04:17

Choose a tag to compare

Changes 01/17/2026 (v3.1.1)

release(v3.1.1): OIDC env overrides + configurable resumable chunk size + clearer startup logs (closes #86, closes #87, closes #90)
Screenshot 2026-01-17 at 11 19 06 PM

Commit message

release(v3.1.1): OIDC env overrides + configurable resumable chunk size + clearer startup logs (closes #86, closes #87, closes #90)

- config: allow env overrides for OIDC knobs (auto-create, group claim, admin group, Pro group prefix)
- uploads: add configurable Resumable.js chunk size (Admin + siteConfig) and honor it in upload.js
- uploads: improve relative-path folder uploads and remote staging/cleanup for non-local sources
- admin: add settings search + smoother section open/close animations
- admin: restrict Pro license actions to the registered/primary admin user
- remote storage: add FR_REMOTE_DIR_MARKER to preserve empty dirs; skip Trash on Google Drive sources
- UX: clearer “FileRise startup complete” log line + better long-running delete/restore/loading feedback

Closes #86
Closes #87
Closes #90

Added

  • OIDC env overrides (in addition to config defaults):
    FR_OIDC_AUTO_CREATE, FR_OIDC_GROUP_CLAIM, FR_OIDC_ADMIN_GROUP, FR_OIDC_PRO_GROUP_PREFIX.
  • Upload tuning (Admin): “Resumable chunk size (MB)” (0.5–100 MB).
    Exported via siteConfig so the frontend can size chunks dynamically.
  • Remote folder marker: FR_REMOTE_DIR_MARKER (default: .filerise_keep) to preserve empty remote folders (S3-style prefix backends).
  • Admin settings search: quick filter for sections/settings in the Admin panel UI.

Changed

  • Resumable uploads honor configured chunk size (used by file picker + drag/drop when Resumable is available).
  • Upload handling for folder paths:
    • validates and sanitizes resumableRelativePath / relativePath
    • supports subfolder uploads more consistently
    • remote sources stage chunks in meta root (uploadtmp/) and push via adapter, then cleanup temp folders
  • Admin Pro license visibility/actions are restricted to the primary/registered admin (first admin in users.txt order).
  • Remote deletes / Trash behavior:
    • Google Drive sources skip Trash (deletes are permanent)
    • remote folder “empty checks” ignore the marker file
  • Docker startup log clarity:
    • start.sh prints a “startup complete” line and clarifies that further output is Apache logs.

Fixed

  • #86: OIDC behavior is now controllable via environment variables (no code/config edits required).
  • #87: Resumable chunk size is now configurable to fit proxy limits (e.g., tunnels/CDNs).
  • #90: Clearer startup output + better guidance for collecting logs.
  • UI responsiveness / long operations
    • “Deleting…” busy states for file/folder delete confirmations and Trash restore/delete actions
    • “Still loading…” toast for slow remote listings, with a fallback if a folder no longer exists

Notes

  • FR_REMOTE_DIR_MARKER is best-effort and primarily intended for remote backends that treat directories as prefixes (e.g., S3).
  • Google Drive sources do not support Trash semantics in the adapter; the UI notes this and deletes are permanent.
  • Some Admin Panel strings still fall back to English; translations will continue to improve over time.

v3.1.1

Full Changelog

v3.1.0 → v3.1.1

SHA-256 (zip)

dce7c531fd4b52dd5f0cda4b74774871ce78b9685f1010aaf01f0e44a01f0faf  FileRise-v3.1.1.zip

v3.1.0

16 Jan 08:30

Choose a tag to compare

Changes 01/16/2026 (v3.1.0)

release(v3.1.0): default language + portal i18n + ffmpeg path config (closes #88, closes #89)

Commit message

release(v3.1.0): default language + portal i18n + ffmpeg path config (closes #88, closes #89)

- Admin: add “Default language” setting (used when a user has not chosen a language yet)
- Admin: add optional FFmpeg binary path setting (env FR_FFMPEG_PATH overrides / locks)
- Thumbnails: resolve ffmpeg path from env first, then admin config, then PATH
- Portals: add language selector + apply defaultLanguage from siteConfig on first run
- Portals: fix button styling (accent-aware) + refresh button color (fixes #88)
- i18n: split locales into separate files and add Polish/Russian/Japanese; refresh German strings (fixes #89)
- UI: replace hardcoded upload/login alerts/toasts with i18n keys for better translation coverage

Closes #88
Closes #89

Added

  • Admin setting: Default language
    • New display.defaultLanguage config surfaced in Admin → Header/File List/Language section.
    • Used automatically when a user has not chosen a language yet.
  • Admin setting: FFmpeg binary path (optional)
    • New ffmpegPath config for video thumbnail generation.
    • FR_FFMPEG_PATH remains the source of truth when set (admin field becomes read-only).
  • New locales shipped
    • Polish (pl), Russian (ru), Japanese (ja), plus Simplified Chinese (zh-CN) locale file.
  • Portal language selector
    • Added a language dropdown to both portal.html and portal-login.html.

Changed

  • FFmpeg resolution order for thumbnails
    • FR_FFMPEG_PATH → admin ffmpegPath → fallback to ffmpeg from PATH (and standard locations).
    • This keeps the Docker image lean while still supporting thumbnails when ffmpeg exists on the host/container.
  • Portals now inherit default language
    • If localStorage.language is missing, portals fetch /api/siteConfig.php and apply display.defaultLanguage.
  • Translations architecture
    • Locales are now maintained in dedicated files under public/js/i18n/locales/ lazy load instead of a giant embedded map.
    • Added missing i18n keys for upload flows and admin/pro toasts to reduce English-only strings.

Fixed

  • Portal button styling / colors (fixes #88)
    • Portal buttons now use accent-aware classes (portal-btn-primary / portal-btn-outline) and render correctly across themes.
  • German translation gaps (fixes #89)
    • German strings were refreshed and missing UI keys were added/normalized.
  • More consistent i18n coverage
    • Upload-related toasts and some boot/login alerts now use translation keys instead of hardcoded English.

Notes

  • There are still parts of the Admin Panel and some edge UI strings that may fall back to English. This release fixes the reported German issues and adds new locales, but translation coverage will continue to improve over time.
  • If you want video thumbnails in Docker without bundling ffmpeg, mount a host ffmpeg binary or install it in your own derived image and set FR_FFMPEG_PATH (or set the path in Admin).

v3.1.0

Full Changelog

v3.0.2 → v3.1.0

SHA-256 (zip)

6afcd2a6413eb6b2bfbbbea567951921123fe9f40dbd75c772352ada645ffbbe  FileRise-v3.1.0.zip

v3.0.2

15 Jan 07:44

Choose a tag to compare

Changes 01/15/2026 (v3.0.2)

release(v3.0.2): ffmpeg-backed video thumbnails (Docker) + new thumbnail API (closes #79)

Commit message

release(v3.0.2): ffmpeg-backed video thumbnails (Docker) + new thumbnail API (closes #79)

- Docker: ship ffmpeg so video thumbnails work out-of-the-box in container installs
- add /api/file/thumbnail.php endpoint to generate + cache JPEG thumbnails for video files
- UI: use ffmpeg-backed thumbnails for hover previews + gallery cards (fallback to movie icon)
- harden query param parsing for file endpoints (avoid array/querystring edge cases)
- docs: add FFmpeg + archive tools to THIRD_PARTY notices

Closes #79

Added

  • Video thumbnail API endpoint: GET /api/file/thumbnail.php?folder=...&file=...
    Returns a cached JPEG thumbnail for supported video files.
  • Server-side thumbnail generator (local sources only):
    • Uses ffmpeg to extract a frame and writes it into a meta-root cache (thumb_cache/).
    • Cache key includes file path + mtime + size + thumb dimensions for stable reuse.
    • Optional env tuning:
      • FR_FFMPEG_PATH (override ffmpeg path)
      • FR_VIDEO_THUMB_MAX_W, FR_VIDEO_THUMB_MAX_H (thumbnail max size)
  • Docker image now installs ffmpeg so thumbnails work in Docker/Unraid without extra setup.

Changed

  • Hover preview video thumbs now use the thumbnail API instead of <video preload="metadata"> seeking.
  • Gallery view video cards now render an <img> thumbnail with a play overlay; falls back to the movie icon on error.
  • Thumbnail generation respects your existing “max video preview size (MB)” setting:
    • If a video exceeds the configured cap, the thumbnail endpoint returns “too large”.
  • Source-aware behavior (when Sources is enabled):

Security / Hardening

  • Thumbnails are only generated for authenticated users and still enforce:
    • ACL read rules (and read_own ownership checks where applicable)
    • no thumbnails for encrypted files
  • Cache responses include X-Content-Type-Options: nosniff and a private cache policy.

Docs / Compliance

  • Updated THIRD_PARTY.md to mention Docker-bundled system packages:
    • FFmpeg (LGPL-2.1+; builds may include GPL components)
    • p7zip / unar (for archive handling)

v3.0.2

Full Changelog

v3.0.1 → v3.0.2

SHA-256 (zip)

9a22cef243febf95a3579759221fcc741f2b83f7c7c4ecfb1ee98e595422bba5  FileRise-v3.0.2.zip

v3.0.1

15 Jan 02:10

Choose a tag to compare

Changes 01/14/2026 (v3.0.1 Archive update + login focus)

release(v3.0.1): archive create/extract upgrades (7z + RAR via unar) + login focus fix (closes #82)
Screenshot 2026-01-14 at 8 29 28 PM

Commit message

release(v3.0.1): archive create/extract upgrades (7z + RAR via unar) + login focus fix (closes #82)

- add 7z archive format option for multi-file downloads (worker + download streaming)
- expand extraction to support ZIP + 7z formats via 7z, with RAR preferring unar when available
- harden archive extraction against traversal, symlinks, zip-bombs, and empty/escaped outputs
- improve archive job robustness (stale job cleanup, clearer queued/worker errors, correct MIME/filenames)
- UI: archive format selector + name normalization, better “Extract Archive” handling, i18n updates
- fix login screen focus (auto-focus username when login prompt shows)

Closes #82

Added

  • Archive download format selector (ZIP / 7z) in the “Download Selected Files as Archive” modal.
  • 7z archive creation support in the background worker (zip_worker.php) using 7zz/7z.
  • RAR extraction prefers unar when available (FOSS-friendly); falls back to 7z when needed.
  • Archive detection helper isArchiveFileName() supporting:
    • .zip, .7z, .tar.*, .gz, .bz2, .xz, .rar
    • RAR split parts like .r01, .r02, etc.

Changed

  • “ZIP” language → “Archive” language across UI, admin notes, and translations.
  • Archive job enqueue + download endpoint now supports a format field (zip or 7z):
    • download streaming sets correct extension + MIME type (application/zip or application/x-7z-compressed)
    • filename normalization strips any existing .zip/.7z and applies the chosen extension
  • Archive extraction is no longer ZIP-only:
    • ZIP still uses ZipArchive
    • non-ZIP formats use 7z listing (7z l -slt) + extraction of an allow-listed set
    • RAR parts like .r01 map to their base .rar / .part1.rar automatically
  • Archive queue robustness
    • stale queued/working jobs are cleaned up (PID checks + cmdline sanity where available)
    • queued jobs that never start can surface a clearer error message (“worker did not start…”)

Fixed

  • Login UX: auto-focus username field when the login prompt appears (reduces “why can’t I type?” friction).
  • Extract action visibility: Extract button/menu now appears for supported archive formats (not just .zip).
  • Better extraction feedback: extraction API returns optional warning text; UI shows success + warning separately when partial issues occur.

Security / Hardening

  • Archive extraction safety controls:
    • blocks absolute paths / traversal (../) and unsupported folder names
    • skips dotfiles (configurable) instead of extracting hidden entries by default
    • detects and skips symlinks and removes any symlinks created during extraction
    • zip-bomb limits: max uncompressed bytes + max files (configurable)
    • prunes empty outputs that indicate partial/broken extraction and removes any files that escape the extraction root

Docker

  • Image now installs 7zip + unar so archive create/extract works out-of-the-box with FOSS tooling.
  • Ubuntu repo components are restricted to main universe (avoids non-free repos by default).

v3.0.1

Full Changelog

v3.0.0 → v3.0.1

SHA-256 (zip)

b24fc6b5775d1f78ab73d2c876795941b28575702bae1e5664957402d723852a  FileRise-v3.0.1.zip

v3.0.0

12 Jan 03:26

Choose a tag to compare

Changes 1/11/2026 (V3.0.0)

release(v3.0.0): storage adapter seam + source-aware core (Sources-ready)

FileRisePro-Sources

  • Display file size for items thumbnail view (closes #85)
  • add StorageAdapterInterface + LocalFsAdapter and StorageFactory/StorageRegistry
  • introduce SourceContext (active source, per-source upload/meta/trash roots, read-only gating)
  • make core file/folder ops source-aware (uploads, downloads, shares, trash, portals, OnlyOffice)
  • add cross-source copy/move for files + folders with guardrails and audit logging
  • add source selector UI + visible-sources API and propagate sourceId through UI flows
  • add minimizable transfer progress UI and toast severity styling
  • add Pro API-level gating + bundle installer refactor + one-click Pro bundle download/install

v3.0.0 Highlights

  • Storage adapter seam landed in core, enabling FileRise to operate against different backends through a consistent interface.
  • Core is now source-aware end-to-end (UI + API + backend), so Pro “Sources” can plug in cleanly while Core remains local-first by default.
  • Major performance improvements for folder trees and listings (especially in remote/large-tree scenarios).
  • Cross-source copy/move works for both files and folders with explicit guardrails.
  • New UX polish: transfer progress card + toast severity styling.

Core architecture

Storage adapter layer

  • Added a formal adapter interface and default local implementation:
    • StorageAdapterInterface
    • LocalFsAdapter
  • Added adapter orchestration:
    • StorageFactory to instantiate adapters for the active source
    • StorageRegistry to cache/reuse adapter instances
  • Added source/session plumbing:
    • SourceContext to resolve active source + per-source roots (upload/meta/trash) and carry read-only state
    • ReadOnlyAdapter wrapper to enforce read-only sources at the adapter boundary

Outcome: core file/folder operations no longer assume a single local filesystem root.

Sources support (core plumbing + UI/APIs)

UI

  • Added a Sources selector manager (public/js/sourceManager.js) and wired it into the main app bootstrap so the UI can:
    • load visible sources
    • persist/restore active selection
    • notify the rest of the UI on source changes

APIs (core-side endpoints, Pro-gated at runtime)

  • Added/expanded source endpoints under /api/pro/sources/:
    • visible.php (what the current user can see/select)
    • select.php (set active source)
    • list.php, save.php, delete.php (admin management)
    • test.php (connection test action)

Source-aware request threading

  • Threaded sourceId through many UI and API flows so reads/writes execute under the correct adapter context (including inactive dual-pane reads).

File operations

Cross-source copy/move

  • Implemented cross-source file copy/move (adapter → adapter) with safe fallbacks.
  • Implemented cross-source folder copy/move (recursive) with explicit guardrails:
    • FR_XCOPY_MAX_FILES
    • FR_XCOPY_MAX_BYTES
    • FR_XCOPY_MAX_DEPTH
  • Added safety rules:
    • block writes when destination is read-only
    • enforce scope/ACL/ownership rules consistently
    • block operations in encrypted folders when not supported by the active backend

Transfers UX
Screenshot 2026-01-12 at 12 09 27 AM

  • Added a global, minimizable transfer progress card (transferProgress.js)
    • percent + speed where size is known
    • indeterminate progress where size is unknown
    • hooks wired into copy/move modals + drag/drop flows

Uploads / Downloads / Streaming

Uploads

  • Upload pipeline is now adapter-aware and source-aware.
  • Enforces read-only sources and other capability limits server-side.
  • Remote backends can be staged and written via adapter writeStream() when applicable.

Downloads

  • Download streaming is adapter-aware (local vs remote) and supports Range behavior where possible:
    • Accept-Ranges, Content-Range, 206/416 handling
  • Shared link flows were updated to resolve files within the correct source context.

Folder tree + listing performance

Reduced fan-out and expensive probes

  • Added/expanded shallow listing paths to avoid accidental deep scans for huge remote trees.
  • Introduced optimizations to reduce per-entry stat calls when list results already provide enough metadata.
  • Kept the “large tree” goal intact (no regressions intended for very large folder counts).

Search / Pro feature gating (core-side)

Search Everywhere integration

  • Updated core wiring so Search Everywhere can operate in a source-aware manner (including “All sources” behavior when enabled).

Pro gating by API level

  • Added/expanded Pro API level gating logic (FR_PRO_API_LEVEL) so features can be enabled/disabled safely without brittle version-string comparisons.

Admin + maintenance plumbing

  • Expanded admin plumbing around Pro state, license fields, and feature availability.
  • Added/updated Pro bundle management wiring (including download/install paths) to support smoother Pro updates without breaking offline installs.

UX polish
Screenshot 2026-01-12 at 12 10 29 AM

  • Toasts now support severity/tone (success / info / warning / error) and consistent styling.
  • Various UI flows updated to use the improved toast semantics.

Notes / behavioral considerations

  • This release introduces a major internal architecture shift (adapter seam + source context).
  • Many endpoints now accept sourceId (optional in most cases; defaults to the current/legacy local behavior).
  • Remote backends may have feature limitations compared to local FS (e.g., ZIP/encryption-at-rest behaviors depending on backend support).

FileRise v3.0.0 is a major internal milestone: a new storage adapter seam + source-aware core that unlocks Pro “Sources” (multi-backend) while keeping Core local-first and fast. Expect continued iteration on adapter edge cases and remote performance tuning.

v3.0.0

Full Changelog

v2.13.1 → v3.0.0

SHA-256 (zip)

f8c245d2a2012dd1271433f8884a212788b284653eeaa52277100707a501f7cf  FileRise-v3.0.0.zip

v2.13.1

03 Jan 02:42

Choose a tag to compare

Changes 1/2/2025 (v2.13.1)

release(v2.13.1): harden Docker startup perms + explicit inline MIME mapping (see #79)

Fixes

  • Prevent Docker container startup from exiting when chown/chmod are unsupported (exFAT/NTFS/CIFS/NFS root_squash, non-root runs). Startup now logs warnings and continues.
  • Add non-fatal permission writeability hints for /var/www/{uploads,users,metadata,sessions} to help diagnose mount/UID issues.

Improvements

  • Serve inline-safe images/audio/video with explicit MIME mapping to avoid nosniff + application/octet-stream preview issues (more reliable inline previews).

Docs

  • Add AI disclosure section to README.

v2.13.1

Full Changelog

v2.13.0 → v2.13.1

SHA-256 (zip)

67485803063b896a594e54f35b72982b77f8cb108c659425844954d97e61b425  FileRise-v2.13.1.zip

v2.13.0

30 Dec 08:01

Choose a tag to compare

Changes 12/30/2025 (v2.13.0)

release(v2.13.0): inline rename + video preview limits + folder tree perf (see #79)

Screenshot 2025-12-29 at 10 32 30 AM

Added

  • Inline rename:
    • File list inline rename (table view) + context-menu support
    • Folder tree inline rename (tree context menu + Rename button)
    • Keyboard shortcuts: F2 rename, plus Ctrl/Cmd+Shift+N (new folder)
  • Admin Panel setting (Display): Hover preview max video size (MB)
    • Applies to hover previews + Gallery video thumbnails
  • Folder APIs:
    • GET /api/folder/getFolderList.php?counts=0 to skip metadata count reads (faster on large trees)
    • GET /api/folder/listChildren.php?probe=0 to skip per-child “has subfolders / non-empty” probing (faster)

Changed

  • Hover previews & Gallery video thumbs:
    • Use the new video size limit setting
    • Improved “no preview available” fallback when a frame can’t be decoded quickly
  • File streaming:
    • Improved HTTP Range support (incl. suffix ranges like bytes=-500)
    • Expanded safe inline rendering to allowlisted video/audio types when requested (inline=1)

Fixed

  • Context menus now position correctly using clientX/clientY (more reliable across layouts).
  • Blank folder icons are repaired after drag/drop moves and dual-pane refreshes.
  • Admin “Folder Access” modal help text is now collapsible (“More/Less”) for readability.

Performance

  • Reduced IO for large installs by:
    • Avoiding folder count reads when not needed (counts=0)
    • Avoiding directory iterator probes when not needed (probe=0)

v2.13.0

Full Changelog

v2.12.1 → v2.13.0

SHA-256 (zip)

698dd3cff95c30ff77c30de2e99f72d2f9b1fe3df971ae9afa3cb61906f42430  FileRise-v2.13.0.zip

v2.12.1

29 Dec 05:16

Choose a tag to compare

Changes 12/29/2025 (v2.12.1)

release(v2.12.1): folder summary depth + video thumbnails + dual-pane toggle fix

Closes #79, #80, #81

Added

  • Admin Panel setting: Display → File list summary depth
    Limits how deep recursive folder totals (files/folders/bytes) will traverse to keep the UI fast on huge trees.
  • Video thumbnails in Gallery view (best-effort frame capture with safe fallbacks for very large videos).
  • Folder stats API support for depth-limited recursion (deep=1&depth=N).

Changed

  • Recursive folder counting is now depth-aware and avoids unnecessary descendant probes when depth is capped.
  • Folder summary caching now keys by (folder + depth) and invalidates correctly after moves/changes.

Fixed

  • View Options dual-pane toggle now shows the active “blue” state correctly in dark mode.
  • Gallery video preview initialization improved (more reliable thumb generation / preview frame selection).

v2.12.1

Full Changelog

v2.12.0 → v2.12.1

SHA-256 (zip)

a3388bfd5aeff3381aedc6db7b47c9bd33e24c9521ea0346cd8f72805c30c634  FileRise-v2.12.1.zip

v2.12.0

28 Dec 06:11

Choose a tag to compare

Changes 12/28/2025 (v2.12.0)

release(v2.12.0): dual-pane mode + keyboard shortcuts

Screenshot 2025-12-27 at 9 01 31 PM

Added

  • Dual-pane mode for the file list (left/right panes) with per-pane folder state, active-pane switching, and persisted last folders.
  • Dual-pane toggle in User Panel and in the View Options popover.
  • Keyboard shortcuts (ignored when a modal is open or when typing):
    • / focus search
    • ? show shortcuts hint
    • Delete delete selected (folder delete if a folder is selected)
    • F3 preview
    • F4 edit (when editable)
    • F5 copy
    • F6 move
    • F7 new folder
    • F8 delete selected
  • Folder summary pill showing folders/files/size, with optional deep totals (recursive) via deep=1.
  • Modal accessibility helpers:
    • Focus trap within modals
    • Restore focus to opener when closing
    • Escape closes the topmost visible modal
  • New i18n strings for dual-pane hints + an filerise:i18n-applied event to refresh UI text after locale changes.

Changed

  • Folder stats endpoint now supports returning recursive totals (folders/files/bytes) when requested (deep=1), computed ACL-aware and with a scan cap to avoid runaway traversal.
  • Copy/Move UX in dual-pane prefers the other pane’s folder as the default destination when applicable.
  • Dual-pane layout + file list controls are now more responsive (pane width classes, improved pagination/search wrapping).
  • Breadcrumb separators adjusted for clearer spacing.

Fixed

  • Better correctness in multi-pane contexts:
    • Folder icons/strip refresh across both panes.
    • Hover preview resolves files using the correct pane’s file data.
    • Folder move/file move operations invalidate folder stats and refresh the right UI surfaces.
  • Secondary pane is properly hidden on logout / unauthenticated state.

Notes

  • Deep folder totals are best-effort and may report as truncated for very large trees due to the scan cap (to keep the UI responsive).

v2.12.0

Full Changelog

v2.11.4 → v2.12.0

SHA-256 (zip)

2edbeb2075cf98e4ca3202e253b63543b49b6b538822d26400962407e5742e66  FileRise-v2.12.0.zip

v2.11.4

27 Dec 04:30

Choose a tag to compare

Changes 12/26/2025 (v2.11.4)

release(v2.11.4): OIDC token auth method compatibility + authMethod logging (see #77)

Improved OIDC token auth method handling

  • Add clearer debug output showing the configured token endpoint auth method (authMethod / library default).
  • Apply tokenEndpointAuthMethod more robustly across Jumbojett/OpenIDConnectClient versions by attempting:
    • setTokenEndpointAuthMethod()
    • setTokenEndpointAuthMethodsSupported()
    • and a providerConfigParam() fallback to force token_endpoint_auth_methods_supported
    • Helps prevent provider token failures like “client id or secret not provided” when an explicit auth method is required.

v2.11.4

Full Changelog

v2.11.3 → v2.11.4

SHA-256 (zip)

1d2d4c65f1871e8fce752cdd68eeb13dc00e213eb70d2a5db73142c6802e9b0c  FileRise-v2.11.4.zip