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
๐ก Looking for FileRise Pro (brandable header, user groups, client upload portals, license handling)? Check out filerise.net โ FileRise Core stays fully open-source (MIT).
- ๐ Live demo: Demo (username:
demo/ password:demo) - ๐ Docs & Wiki: Wiki
- ๐ณ Docker image: Docker
- ๐ฌ Discord: Join the FileRise server
- ๐ Changelog: Changes
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.
The easiest way to run FileRise is the official Docker image.
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:latestThen 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 recursivechownon every start.
โ ๏ธ Uploads folder recommendationItโs strongly recommended to bind
/var/www/uploadsto a dedicated folder (for example~/filerise/uploadsor/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.
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/metadataBring it up with:
docker compose up -d| 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_FORMATis not set, FileRise uses the default fromconfig/config.php(currentlym/d/y h:iA). ๐ Using an existing folder tree
- Point
/var/www/uploadsat 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 recursivechownon 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.)
- Install & Setup
- Nginx
- FAQ
- Kubernetes / k8s deployment
- Portainer templates: add this URL in Portainer โ Settings โ App Templates:
https://raw.githubusercontent.com/error311/filerise-portainer-templates/refs/heads/main/templates.json - See also the Docker repo: error311/filerise-docker
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
-
Clone or download FileRise into your web root:
git clone https://github.com/error311/FileRise.git
-
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
-
(Optional) Install PHP dependencies with Composer:
composer install
-
Configure PHP (upload limits / timeouts) and ensure rewrites are enabled.
- Apache: allow
.htaccessor copy its rules into your vhost. - Nginx/Caddy: mirror the basic protections (no directory listing, block sensitive files).
- Apache: allow
-
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.
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
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
- 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:latestand recreate the container with the same volumes. - Manual: replace app files with the latest release (keep
uploads/,users/,metadata/, and your config).
- Docker:
Please report vulnerabilities responsibly via the channels listed in SECURITY.md.
- ๐งต 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:
- โค๏ธ GitHub Sponsors
- โ Ko-fi
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.
