Elevate your File Management ā A modern, self-hosted web file manager. Upload, organize, and share files or folders through a sleek web interface. FileRise is lightweight yet powerful: think of it as your personal cloud drive that you control. With drag-and-drop uploads, in-browser editing, secure user logins (with SSO and 2FA support), and one-click sharing, FileRise makes file management on your server a breeze.
4/3/2025 Video demo:
FileRise_Demo2.mp4
Features at a Glance or Full Features Wiki
-
š Easy File Uploads: Upload multiple files and folders via drag & drop or file picker. Supports large files with pause/resumable chunked uploads and shows real-time progress for each file. No more failed transfers ā FileRise will pick up where it left off if your connection drops.
-
šļø File Management: Full set of file/folder operations ā move or copy files (via intuitive drag-drop or dialogs), rename items, and delete in batches. You can even download selected files as a ZIP archive or extract uploaded ZIP files server-side. Organize content with an interactive folder tree and breadcrumb navigation for quick jumps.
-
šļø Folder Sharing & File Sharing: Easily share entire folders via secure, expiring public links. Folder shares can be password-protected, and shared folders support file uploads from outside users with a separate, secure upload mechanism. Folder listings are paginated (10 items per page) with navigation controls, and file sizes are displayed in MB for clarity. Share files with others using one-time or expiring public links (with password protection if desired) ā convenient for sending individual files without exposing the whole app.
-
š WebDAV Support: Mount FileRise as a network drive or use it headāless from the CLI. Standard WebDAV operations (upload / download / rename / delete) work in Cyberduck, WinSCP, GNOME Files, Finder, etc., and you can also script against it with
curl
ā see the WebDAVĀ +Ā curl quickāstart for examples. FolderāOnly users are restricted to their personal directory, while admins and unrestricted users have full access. -
š API Documentation: Fully autoāgenerated OpenAPI spec (
openapi.json
) and interactive HTML docs (api.html
) powered by Redoc. -
š Built-in Editor & Preview: View images, videos, audio, and PDFs inline with a preview modal ā no need to download just to see them. Edit text/code files right in your browser with a CodeMirror-based editor featuring syntax highlighting and line numbers. Great for config files or notes ā tweak and save changes without leaving FileRise.
-
š·ļø Tags & Search: Categorize your files with color-coded tags and locate them instantly using our indexed real-time search. Easily switch to Advanced Search mode to enable fuzzy matching not only across file names, tags, and uploader fields but also within the content of text filesāhelping you find that āimportantā document even if you make a typo or need to search deep within the file.
-
š User Authentication & User Permissions: Secure your portal with username/password login. Supports multiple users ā create user accounts (admin UI provided) for family or team members. User permissions such as User āFolder Onlyā feature assigns each user a dedicated folder within the root directory, named after their username, restricting them from viewing or modifying other directories. User Read Only and Disable Upload are additional permissions. FileRise also integrates with Single Sign-On (OIDC) providers (e.g., OAuth2/OIDC for Google/Authentik/Keycloak) and offers optional TOTP two-factor auth for extra security.
-
šØ Responsive UI (Dark/Light Mode): FileRise is mobile-friendly out of the box ā manage files from your phone or tablet with a responsive layout. Choose between Dark mode or Light theme, or let it follow your system preference. The interface remembers your preferences (layout, items per page, last visited folder, etc.) for a personalized experience each time.
-
š Internationalization & Localization: FileRise supports multiple languages via an integrated i18n system. Users can switch languages through a user panel dropdown, and their choice is saved in local storage for a consistent experience across sessions. Currently available in English, Spanish, French & Germanāplease report any translation issues you encounter.
-
šļø Trash & File Recovery: Mistakenly deleted files? No worries ā deleted items go to the Trash instead of immediate removal. Admins can restore files from Trash or empty it to free space. FileRise auto-purges old trash entries (default 3 days) to keep your storage tidy.
-
āļø Lightweight & SelfāContained: FileRise runs on PHP 8.1+ with no external database required ā data is stored in files (users, metadata) for simplicity. Itās a singleāfolder web app you can drop into any Apache/PHP server or run as a container. Docker & Unraid ready: use our preābuilt image for a hassleāfree setup. Memory and CPU footprint is minimal, yet the app scales to thousands of files with pagination and sorting features.
(For a full list of features and detailed changelogs, see the Wiki, changelog or the releases pages.)
Curious about the UI? Check out the live demo: https://demo.filerise.net (login with username ādemoā and password ādemoā). The demo is read-only for security. Explore the interface, switch themes, preview files, and see FileRise in action!
You can deploy FileRise either by running the Docker container (quickest way) or by a manual installation on a PHP web server. Both methods are outlined below.
If you have Docker installed, you can get FileRise up and running in minutes:
- Pull the image from Docker Hub:
docker pull error311/filerise-docker:latest
- Run a container:
docker run -d \
-p 8080:80 \
-e TIMEZONE="America/New_York" \
-e TOTAL_UPLOAD_SIZE="5G" \
-e SECURE="false" \
-v ~/filerise/uploads:/var/www/uploads \
-v ~/filerise/users:/var/www/users \
-v ~/filerise/metadata:/var/www/metadata \
--name filerise \
error311/filerise-docker:latest
This will start FileRise on port 8080. Visit http://your-server-ip:8080
to access it. Environment variables shown above are optional ā for instance, set SECURE="true"
to enforce HTTPS (assuming you have SSL at proxy level) and adjust TIMEZONE
as needed. The volume mounts ensure your files and user data persist outside the container.
- Using Docker Compose:
Alternatively, use docker-compose. Save the snippet below as docker-compose.yml and run
docker-compose up -d
:
version: '3'
services:
filerise:
image: error311/filerise-docker:latest
ports:
- "8080:80"
environment:
TIMEZONE: "UTC"
TOTAL_UPLOAD_SIZE: "10G"
SECURE: "false"
PERSISTENT_TOKENS_KEY: "please_change_this_@@"
volumes:
- ./uploads:/var/www/uploads
- ./users:/var/www/users
- ./metadata:/var/www/metadata
FileRise will be accessible at http://localhost:8080
(or your serverās IP). The above example also sets a custom PERSISTENT_TOKENS_KEY
(used to encrypt āremember meā tokens) ā be sure to change it to a random string for security.
First-time Setup: On first launch, FileRise will detect no users and prompt you to create an Admin account. Choose your admin username & password, and youāre in! You can then head to the User Management section to add additional users if needed.
If you prefer to run FileRise on a traditional web server (LAMP stack or similar):
- Requirements: PHP 8.3 or higher, Apache (with mod_php) or another web server configured for PHP. Ensure PHP extensions json, curl, and zip are enabled. No database needed.
- Download Files: Clone this repo or download the latest release archive.
git clone https://github.com/error311/FileRise.git
Place the files into your web serverās directory (e.g., /var/www/
). It can be in a subfolder (just adjust the BASE_URL
in config as below).
-
Composer Dependencies: Install Composer and run
composer install
in the FileRise directory. (This pulls in a couple of PHP libraries like jumbojett/openid-connect for OAuth support.) -
Folder Permissions: Ensure the server can write to the following directories (create them if they donāt exist):
mkdir -p uploads users metadata
chown -R www-data:www-data uploads users metadata # www-data is Apache user; use appropriate user
chmod -R 775 uploads users metadata
The uploads/ folder is where files go, users/ stores the user credentials file, and metadata/ holds metadata like tags and share links.
-
Configuration: Open the
config.php
file in a text editor. You may want to adjust:-
BASE_URL
ā the URL where you will access FileRise (e.g.,āhttps://files.mydomain.com/ā
). This is used for generating share links. -
TIMEZONE
andDATE_TIME_FORMAT
ā match your locale (for correct timestamps). -
TOTAL_UPLOAD_SIZE
ā max aggregate upload size (default 5G). Also adjust PHPāsupload_max_filesize
andpost_max_size
to at least this value (the Docker start script auto-adjusts PHP limits). -
PERSISTENT_TOKENS_KEY
ā set a unique secret if you use āRemember Meā logins, to encrypt the tokens. -
Other settings like
UPLOAD_DIR
,USERS_FILE
etc. generally donāt need changes unless you move those folders. Defaults are set for the directories mentioned above.
-
-
Web Server Config: If using Apache, ensure
.htaccess
files are allowed or manually add the rules from.htaccess
to your Apache config ā these disable directory listings and prevent access to certain files. For Nginx or others, youāll need to replicate those protections (see Wiki: Nginx Setup for examples). Also enable mod_rewrite if not already, as FileRise may use pretty URLs for share links.
Now navigate to the FileRise URL in your browser. On first load, youāll be prompted to create the Admin user (same as Docker setup). After that, the application is ready to use!
Once FileRise is running, you must enable WebDAV in admin panel to access it.
# Linux (GVFS/GIO)
gio mount dav://demo@your-host/webdav.php/
# macOS (Finder ā Go ā Connect to Serverā¦)
dav://demo@your-host/webdav.php/
-
Open File Explorer ā Right-click This PC ā Map network driveā¦
-
Choose a drive letter (e.g.,
Z:
). -
In Folder, enter:
https://your-host/webdav.php/
-
Check Connect using different credentials, and enter your FileRise username and password.
-
Click Finish. The drive will now appear under This PC.
Important:
Windows requires HTTPS (SSL) for WebDAV connections by default.
If your server uses plain HTTP, you must adjust a registry setting:
Open Registry Editor (
regedit.exe
).Navigate to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
Find or create a
DWORD
value named BasicAuthLevel.Set its value to
2
.Restart the WebClient service or reboot your computer.
š For a full guide (including SSL setup, HTTP workaround, and troubleshooting), see the WebDAV Usage Wiki.
-
āUpload failedā or large files not uploading: Make sure
TOTAL_UPLOAD_SIZE
in config and PHPāspost_max_size
/upload_max_filesize
are all set high enough. For extremely large files, you might also need to increase max_execution_time in PHP or rely on the resumable upload feature in smaller chunks. -
How to enable HTTPS? FileRise itself doesnāt handle TLS. Run it behind a reverse proxy like Nginx, Caddy, or Apache with SSL, or use Docker with a companion like nginx-proxy or Caddy. Set
SECURE="true"
env var in Docker so FileRise knows to generate https links. -
Changing Admin or resetting password: Admin can change any userās password via the UI (User Management section). If you lose admin access, you can edit the
users/users.txt
file on the server ā passwords are hashed (bcrypt), but you can delete the admin line and then restart the app to trigger the setup flow again. -
Where are my files stored? In the
uploads/
directory (or the path you set forUPLOAD_DIR
). Within it, files are organized in the folder structure you see in the app. Deleted files move touploads/trash/
. Tag information is inmetadata/file_metadata
.json and trash metadata inmetadata/trash.json
, etc. Regular backups of these folders is recommended if the data is important. -
Updating FileRise: If using Docker, pull the new image and recreate the container. For manual installs, download the latest release and replace the files (preserve your
config.php
and the uploads/users/metadata folders). Clear your browser cache if you have issues after an update (in case CSS/JS changed).
For more Q&A or to ask for help, please check the Discussions or open an issue.
Contributions are welcome! If you have ideas for new features or have found a bug, feel free to open an issue. Check out the CONTRIBUTING.md for guidelines. You can also join the conversation in GitHub Discussions or on Reddit (see links below) to share feedback and suggestions.
Areas where you can help: translations, bug fixes, UI improvements, or building integration with other services. If you like FileRise, giving the project a ā star ā on GitHub is also a much-appreciated contribution!
- Reddit: r/selfhosted: FileRise Discussion ā (Announcement and user feedback thread).
- Unraid Forums: FileRise Support Thread ā for Unraid-specific support or issues.
- GitHub Discussions: Use the Q&A category for any setup questions, and the Ideas category to suggest enhancements.
- jumbojett/openid-connect-php (v^1.0.0)
- phpseclib/phpseclib (v~3.0.7)
- robthree/twofactorauth (v^3.0)
- endroid/qr-code (v^5.0)
- sabre/dav (^4.4)
- Google Fonts ā Roboto and Material Icons (Google Material Icons)
- Bootstrap (v4.5.2)
- CodeMirror (v5.65.5) ā For code editing functionality.
- Resumable.js (v1.1.0) ā For file uploads.
- DOMPurify (v2.4.0) ā For sanitizing HTML.
- Fuse.js (v6.6.2) ā For indexed, fuzzy searching.
- Based on uploader by @sensboston.
This project is open-source under the MIT License. That means youāre free to use, modify, and distribute FileRise, with attribution. We hope you find it useful and contribute back!