Skip to content

๐Ÿ—‚๏ธ FileRise โ€“ lightweight, self-hosted file manager with granular ACLs, shared uploads, WebDAV & SSO. Fully Docker / Unraid compatible.

License

Notifications You must be signed in to change notification settings

error311/FileRise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

FileRise

GitHub stars Docker pulls Docker CI CI Demo Release License Discord Sponsor on GitHub Support on Ko-fi

FileRise is a modern, self-hosted web file manager / WebDAV server.
Drag & drop uploads, ACL-aware sharing, OnlyOffice integration, and a clean UI โ€” all in a single PHP app that you control.

  • ๐Ÿ’พ Self-hosted โ€œcloud driveโ€ โ€“ Runs anywhere with PHP (or via Docker). No external DB required.
  • ๐Ÿ” Granular per-folder ACLs โ€“ View / Own / Upload / Edit / Delete / Share, enforced across UI, API, and WebDAV.
  • ๐Ÿ”„ Fast drag-and-drop uploads โ€“ Chunked, resumable uploads with pause/resume and progress.
  • ๐ŸŒณ Scales to huge trees โ€“ Tested with 100k+ folders in the sidebar tree.
  • ๐Ÿงฉ ONLYOFFICE support (optional) โ€“ Edit DOCX/XLSX/PPTX using your own Document Server.
  • ๐ŸŒ WebDAV โ€“ Mount FileRise as a drive from macOS, Windows, Linux, or Cyberduck/WinSCP.
  • ๐Ÿ“Š Storage / disk usage summary โ€“ CLI scanner with snapshots, total usage, and per-volume breakdowns in the admin panel.
  • ๐ŸŽจ Polished UI โ€“ Dark/light mode, responsive layout, in-browser previews & code editor.
  • ๐Ÿ”‘ Login + SSO โ€“ Local users, TOTP 2FA, and OIDC (Auth0 / Authentik / Keycloak / etc.).
  • ๐Ÿ‘ฅ Pro: user groups, client portals & storage explorer โ€“ Group-based ACLs, brandable client upload portals, and an ncdu-style explorer to drill into folders, largest files, and clean up storage inline.

Full list of features available at Full Feature Wiki

FileRise

๐Ÿ’ก Looking for FileRise Pro (brandable header, user groups, client upload portals, license handling)? Check out filerise.net โ€“ FileRise Core stays fully open-source (MIT).


Quick links


1. What FileRise does

FileRise turns a folder on your server into a web-based file explorer with:

  • Folder tree + breadcrumbs for fast navigation
  • Multi-file/folder drag-and-drop uploads
  • Move / copy / rename / delete / extract ZIP
  • Public share links (optionally password-protected & expiring)
  • Tagging and search by name, tag, uploader, and content
  • Trash with restore/purge
  • Inline previews (images, audio, video, PDF) and a built-in code editor

Everything flows through a single ACL engine, so permissions are enforced consistently whether users are in the browser UI, using WebDAV, or hitting the API.


2. Install (Docker โ€“ recommended)

The easiest way to run FileRise is the official Docker image.

Option A โ€“ Quick start (docker run)

docker run -d \
  --name filerise \
  -p 8080:80 \
  -e TIMEZONE="America/New_York" \
  -e TOTAL_UPLOAD_SIZE="10G" \
  -e SECURE="false" \
  -e PERSISTENT_TOKENS_KEY="default_please_change_this_key" \
  -e SCAN_ON_START="true" \
  -e CHOWN_ON_START="true" \
  -v ~/filerise/uploads:/var/www/uploads \
  -v ~/filerise/users:/var/www/users \
  -v ~/filerise/metadata:/var/www/metadata \
  error311/filerise-docker:latest

Then visit:

http://your-server-ip:8080

On first launch youโ€™ll be guided through creating the initial admin user.

๐Ÿ’ก After the first run, you can set CHOWN_ON_START="false" if permissions are already correct and you donโ€™t want a recursive chown on every start.

โš ๏ธ Uploads folder recommendation

Itโ€™s strongly recommended to bind /var/www/uploads to a dedicated folder (for example ~/filerise/uploads or /mnt/user/appdata/FileRise/uploads), not the root of a huge media share.

If you really want FileRise to sit โ€œon top ofโ€ an existing share, use a subfolder (e.g. /mnt/user/media/filerise_root) instead of the share root, so scans and permission changes stay scoped to that folder.


Option B โ€“ docker-compose.yml

services:
  filerise:
    image: error311/filerise-docker:latest
    container_name: filerise
    ports:
      - "8080:80"
    environment:
      TIMEZONE: "America/New_York"
      TOTAL_UPLOAD_SIZE: "10G"
      SECURE: "false"
      PERSISTENT_TOKENS_KEY: "default_please_change_this_key"
      SCAN_ON_START: "true"   # auto-index existing files on startup
      CHOWN_ON_START: "true"  # fix permissions on uploads/users/metadata on startup
    volumes:
      - ./uploads:/var/www/uploads
      - ./users:/var/www/users
      - ./metadata:/var/www/metadata

Bring it up with:

docker compose up -d

Common environment variables

Variable Required Example What it does
TIMEZONE โœ… America/New_York PHP / container timezone.
TOTAL_UPLOAD_SIZE โœ… 10G Max total upload size per request (e.g. 5G, 10G).
SECURE โœ… false true when running behind HTTPS / reverse proxy, else false.
PERSISTENT_TOKENS_KEY โœ… default_please_change_this_key Secret used to sign โ€œremember meโ€ tokens. Change this.
SCAN_ON_START Optional true If true, scan uploads/ on startup and index existing files.
CHOWN_ON_START Optional true If true, chown uploads/, users/, metadata/ on startup.
DATE_TIME_FORMAT Optional Y-m-d H:i Overrides DATE_TIME_FORMAT in config.php (controls how dates are shown).

If DATE_TIME_FORMAT is not set, FileRise uses the default from config/config.php (currently m/d/y h:iA). ๐Ÿ—‚ Using an existing folder tree

  • Point /var/www/uploads at the folder you want FileRise to manage.
  • Set SCAN_ON_START="true" on the first run to index existing files, then usually set it to "false" so the container doesnโ€™t rescan on every restart.
  • CHOWN_ON_START="true" is handy on first run to fix permissions. If you map a large share or already manage ownership yourself, set it to "false" to avoid recursive chown on every start.

Volumes:

  • /var/www/uploads โ€“ your actual files
  • /var/www/users โ€“ user & pro jsons
  • /var/www/metadata โ€“ tags, search index, share links, etc.

More Docker / orchestration options (Unraid, Portainer, k8s, reverse proxy, etc.)


3. Manual install (PHP web server)

Prefer bare-metal or your own stack? FileRise is just PHP + a few extensions.

Requirements

  • PHP 8.3+
  • Web server (Apache / Nginx / Caddy + PHP-FPM)
  • PHP extensions: json, curl, zip (and usual defaults)
  • No database required

Steps

  1. Clone or download FileRise into your web root:

    git clone https://github.com/error311/FileRise.git
  2. Create data directories and set permissions:

    cd FileRise
    mkdir -p uploads users metadata
    chown -R www-data:www-data uploads users metadata   # adjust for your web user
    chmod -R 775 uploads users metadata
  3. (Optional) Install PHP dependencies with Composer:

    composer install
  4. Configure PHP (upload limits / timeouts) and ensure rewrites are enabled.

    • Apache: allow .htaccess or copy its rules into your vhost.
    • Nginx/Caddy: mirror the basic protections (no directory listing, block sensitive files).
  5. Browse to your FileRise URL and follow the admin setup screen.

For detailed examples and reverse proxy snippets, see the Installation page in the Wiki Install & Setup.


4. WebDAV & ONLYOFFICE (optional)

WebDAV

Once enabled in the Admin panel, FileRise exposes a WebDAV endpoint (e.g. /webdav.php). Use it with:

  • macOS Finder โ€“ Go โ†’ Connect to Server โ†’ https://your-host/webdav.php/
  • Windows File Explorer โ€“ Map Network Drive โ†’ https://your-host/webdav.php/
  • Linux (GVFS/Nautilus) โ€“ dav://your-host/webdav.php/
  • Clients like Cyberduck, WinSCP, etc.

WebDAV operations honor the same ACLs as the web UI.

See: WebDAV

ONLYOFFICE integration

If you run an ONLYOFFICE Document Server you can open/edit Office documents directly from FileRise (DOCX, XLSX, PPTX, ODT, ODS, ODP; PDFs view-only).

Configure it in Admin โ†’ ONLYOFFICE:

  • Enable ONLYOFFICE
  • Set your Document Server origin (e.g. https://docs.example.com)
  • Configure a shared JWT secret
  • Copy the suggested Content-Security-Policy header into your reverse proxy

Docs: ONLYOFFICE


5. Security & updates

  • FileRise is actively maintained and has published security advisories.
  • See SECURITY.md and GitHub Security Advisories for details.
  • To upgrade:
    • Docker: docker pull error311/filerise-docker:latest and recreate the container with the same volumes.
    • Manual: replace app files with the latest release (keep uploads/, users/, metadata/, and your config).

Please report vulnerabilities responsibly via the channels listed in SECURITY.md.


6. Community, support & contributing

  • ๐Ÿงต GitHub Discussions & Issues: ask questions, report bugs, suggest features.
  • ๐Ÿ’ฌ Unraid forum thread: for Unraid-specific setup and tuning.
  • ๐ŸŒ Reddit / self-hosting communities: occasional release posts & feedback threads.

Contributions are welcome โ€” from bug fixes and docs to translations and UI polish.
See CONTRIBUTING.md for guidelines.

If FileRise saves you time or becomes your daily driver, a โญ on GitHub or sponsorship is hugely appreciated:


7. License & third-party code

FileRise Core is released under the MIT License โ€“ see LICENSE.

It bundles a small set of well-known client and server libraries (Bootstrap, CodeMirror, DOMPurify, Fuse.js, Resumable.js, sabre/dav, etc.).
All third-party code remains under its original licenses.

See THIRD_PARTY.md and the licenses/ folder for full details.

8. Press