Dirflux

Dirflux

Docker app from marcvandecoevering's Repository

Overview

Dirflux is a self-hosted file manager with two panes, uploads, previews, editing and share links. Beta release. Set the initial administrator password during installation, then sign in as admin. Protect remote access with HTTPS.

Dirflux

Dirflux

Release verification

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.

Beta: Releases · Support

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

Use separate Files and Appdata folders. Empty mount roots are initialized automatically; existing files and permissions are preserved.

Categories

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/marcvandecoevering/dirflux:beta
Last Updated2026-10-31
First Seen2026-10-31

Runtime 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

Web interfacePorttcp

HTTP port. Use an HTTPS proxy for remote access.

Target
8080
Default
8080
FilesPathrw

Only this folder is exposed through the file manager. Keep it outside Appdata.

Target
/files
Default
/mnt/user/dirflux
AppdataPathrw

Private accounts, sessions, settings and trash. Never place inside Files.

Target
/config
Default
/mnt/user/appdata/dirflux
Initial administrator passwordVariable

Choose 12–1024 characters. Used only when no account exists; never resets an existing password.

Target
INITIAL_ADMIN_PASSWORD
User IDVariable

Numeric application user ID.

Target
PUID
Default
99
Group IDVariable

Numeric application group ID.

Target
PGID
Default
100
Read onlyVariable

Set true to disable file mutations.

Target
READ_ONLY
Default
false
Secure cookiesVariable

Set true only when accessing through HTTPS.

Target
COOKIE_SECURE
Default
false