Dirflux
Docker app from marcvandecoevering's Repository
Overview
Readme
View on GitHubDirflux
Your files, in your browser, on your own server. Browse two folders side by side, upload, edit text, preview images/PDFs/media, share links and recover deleted files.
Get started
Install on Unraid
Existing installations: beta.11 changes the internal port to 8080. Keep your host port and update the saved port mapping and WebUI when upgrading.
Find Dirflux in Apps, select Install, choose your files folder and enter an Initial administrator password of 12–1024 characters. Click Apply, open WebUI, and sign in as admin.
Manual installation (Docker → Add Container)
Start with an empty template and fill in these fields:
| Field | Enter |
|---|---|
| Name | Dirflux |
| Repository | ghcr.io/marcvandecoevering/dirflux:beta |
| Network Type | Bridge |
| Privileged | Off |
| WebUI (Advanced View) | http://[IP]:[PORT:8080]/ |
Use Add another Path, Port, Variable, Label or Device for each row below. These are separate fields, not combined mappings. Name is a display label; container paths, ports and variable keys must match exactly.
| Config Type | Name (display label) | Container Port / Container Path / Key | Host Port / Host Path / Value | Other setting |
|---|---|---|---|---|
| Port | Web interface | 8080 |
8080 |
Connection Type: TCP |
| Path | Files | /files |
/mnt/user/dirflux |
Access Mode: Read/Write |
| Path | Appdata | /config |
/mnt/user/appdata/dirflux |
Access Mode: Read/Write |
| Variable | Initial administrator password | INITIAL_ADMIN_PASSWORD |
Your chosen password, 12–1024 characters | Required for a new installation |
| Variable | User ID | PUID |
99 |
Default Unraid user ID |
| Variable | Group ID | PGID |
100 |
Default Unraid group ID |
For the password entry, enter INITIAL_ADMIN_PASSWORD in Key and your password in Value. Enter values without backticks or quotation marks. Keep the WebUI placeholders literally as shown.
Choose another host port if 8080 is occupied; keep container port 8080. You can change the Files host folder, but Files and Appdata must stay separate, with neither inside the other. Existing files are preserved and must already be accessible to the configured user.
Click Apply. Unraid downloads the public image automatically; no GitHub account, clone or manual image download is needed. Open WebUI or http://YOUR-SERVER:8080 (using your chosen host port), then sign in as admin with your chosen password. The Repository field takes the image address above, not the GitHub website URL.
See the Unraid guide for container restrictions, updates and HTTPS settings.
Other installation options
Without Docker: install Node.js 24.22.1 or newer, clone this repository, then run:
npm ci
npm start
Open http://127.0.0.1:8080. Read data/config/setup-token to create your administrator account. There is no default password.
Docker: install ghcr.io/marcvandecoevering/dirflux:beta (AMD64 / ARM64). Persist /files and /config separately. Use HTTPS for remote access.
Technology and security
| Area | Dependencies / behavior |
|---|---|
| Language & server | JavaScript, Node.js 24.22.1+, Express 5; SQLite database |
| Browser | CodeMirror 6 text editor, PDF.js, native browser media codecs; all assets served locally |
| Network | HTTP or HTTPS (native TLS 1.2+), JSON API, Server-Sent Events and HTTP range downloads |
| Storage | Local or host-mounted files; no built-in SMB, FTP or WebDAV server |
| Privacy | No telemetry, CDN or third-party account required |
| Updates | Daily security scans; automatic patched images when fixes are available; install updates through Unraid |
All users share one file tree. Public links grant access without login. Media is not transcoded. Keep private configuration outside shared files, back up both directories and use one app process per configuration directory. Do not give untrusted host processes write access to this storage.
See security and known limitations, dependency versions and third-party licenses. A passing scan does not prove that software has no vulnerabilities. Report security issues privately.
Configuration & backups · Native deployment · Contributing
BSD-2-Clause. Inspired by droppy; original assets retain their attribution.
Requirements
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/marcvandecoevering/dirflux:betaRuntime arguments
- Web UI
http://[IP]:[PORT:8080]/- Network
bridge- Shell
sh- Privileged
- false
- Extra Params
--read-only --cap-drop=ALL --cap-add=CHOWN --cap-add=FOWNER --cap-add=DAC_OVERRIDE --cap-add=SETUID --cap-add=SETGID --security-opt=no-new-privileges --tmpfs=/tmp:rw,noexec,nosuid,size=64m
Template configuration
HTTP port. Use an HTTPS proxy for remote access.
- Target
- 8080
- Default
- 8080
Only this folder is exposed through the file manager. Keep it outside Appdata.
- Target
- /files
- Default
- /mnt/user/dirflux
Private accounts, sessions, settings and trash. Never place inside Files.
- Target
- /config
- Default
- /mnt/user/appdata/dirflux
Choose 12–1024 characters. Used only when no account exists; never resets an existing password.
- Target
- INITIAL_ADMIN_PASSWORD
Numeric application user ID.
- Target
- PUID
- Default
- 99
Numeric application group ID.
- Target
- PGID
- Default
- 100
Set true to disable file mutations.
- Target
- READ_ONLY
- Default
- false
Set true only when accessing through HTTPS.
- Target
- COOKIE_SECURE
- Default
- false