Krusader

Krusader

Docker app from junkerderprovinz's Repository

Overview

Krusader file manager with native Dark Mode, running on a hardware-accelerated Selkies web desktop. It responds much faster than the noVNC-based Krusader containers (binhex / jlesage / ich777). What's pre-configured: • Dark Mode theme for Krusader, Kate and KDE • Kate as Krusader's external editor • Kompare for "File → Compare by Content" (side-by-side diff) • Closing Krusader in the browser starts a fresh one instead of a black screen • RAR support: right-click → "Extract RAR here" / "to subfolder" • 7z, ZIP, TAR, GZ, BZ2, XZ, LHA, ARJ, ACE, RPM, CPIO • Selectable UI language: 33 languages incl. German, English, French, Spanish, Italian, Portuguese (PT/BR), Dutch, Catalan, Basque, Irish, Danish, Swedish, Norwegian, Finnish, Icelandic, Polish, Czech, Slovak, Hungarian, Romanian, Slovenian, Croatian, Serbian, Bulgarian, Ukrainian, Russian, Greek, Turkish, Hebrew, Arabic, Japanese, Korean, Chinese (CN/TW) • Spell-checking in Kate for ~25 languages via Hunspell Notes: • The /storage volume defaults to /mnt, which gives Krusader access to all shares (/mnt/user) and individual disks (/mnt/disk*). • WebUI opens via HTTPS on port 3001 (self-signed cert, accept it once). The Selkies web client requires a secure connection, so open the WebUI directly over HTTPS (3001) only. Port 3000 (HTTP) is for a reverse proxy that terminates TLS in front of the container. Opened directly in a browser, it shows a "requires a secure connection (HTTPS)" error and does not load. • PUID/PGID default to 99/100 (nobody/users on Unraid). • Memory: the desktop follows your browser window, so there is no screen size to set and RAM only grows with the window you actually use. • Auth: leave "WebUI Username" and "Password" empty to run without login. Set both to enable HTTP-basic auth on the WebUI, which is recommended whenever the container is reachable from anything beyond your LAN. Source on GitHub: https://github.com/junkerderprovinz/krusader

Krusader

Build  Lint  Docker Pulls  Image Size  Arch  Selkies  Languages  Unraid  License: AGPL-3.0


A modern, plug-and-play Docker image for Krusader on Unraid. Twin-pane file management in your browser, powered by Selkies, with Dark Mode, Kate as external editor, full archive support and 33 UI languages, all configurable from the Unraid template, no SSH or config-file editing required.

Install from Unraid's Community Applications   Run it with Docker   Download the source archive


A one-knight job: I build it, keep it running, work through the issues and add what people ask for, until nothing is missing. It is free, with no accounts, no telemetry, no ads and no paid tier. No asterisk anywhere. Nothing readable ever leaves your own walls. Forged on evenings and weekends, with heart and stubbornness.

If it has earned a place on your server or computer, toss a coin to your knight: it helps cover the costs and keeps the project alive. It also makes this knight's heart beat a little faster. Three ways below, whichever suits you.

Buy me a coffee   PayPal   Donate with crypto


Table of Contents

  1. What it looks like
  2. What it does
  3. How it compares
  4. Getting started
  5. How AI is used here
  6. Support this project

1. What it looks like

The files and folders in these pictures are made up.

Krusader in a browser window, with a folder of movies on the left and a downloads folder on the right
Two panes side by side in Dark Mode, streamed to any browser on your network

The right-click menu on a RAR archive, with Extract here, Rename with KRename and the copy and move actions
The right-click menu on an archive: extract it, rename in bulk with KRename, copy it to the other pane


2. What it does

  • Selkies instead of noVNC. H.264 video for a smooth desktop at 60 fps, a real clipboard in both directions, and file upload and download from the browser.
  • Dark Mode for Krusader, Kate and the rest of KDE. One variable switches to light.
  • Icons that follow the row colour. Krusader is built from source with a patch that tints each file icon in its row's text colour, so icons stay readable on any highlight.
  • Kate, KRename and Kompare included. Kate is the editor behind F4, KRename renames hundreds of files at once, and File → Compare by Content opens a real diff.
  • Archives out of the box: RAR, 7z, ZIP, TAR, GZ, BZ2, XZ and more, with Extract RAR here in the right-click menu.
  • 33 languages, picked from a dropdown in the Unraid template.
  • The desktop follows your browser window, so there is no screen size to set, and quitting Krusader starts a fresh one instead of leaving a black screen.
  • Your settings survive updates, and the image runs on amd64 and arm64.

3. How it compares

This image binhex jlesage ich777
Web stack Selkies noVNC noVNC noVNC
HW-accelerated rendering ✅ ❌ ❌ ❌
Browser clipboard ✅ ⚠️ ⚠️ ⚠️
File upload via WebUI ✅ ❌ ❌ ❌
Dark Mode default ✅ ❌ ❌ ❌
Kate as editor ✅ ❌ ❌ ❌
Batch rename (krename) ✅ ❌ ❌ ❌
RAR right-click ✅ ❌ ❌ ❌
Language dropdown ✅ (33) ❌ ❌ ❌
Multi-arch ✅ amd64 + arm64 amd64 ✅ amd64
Base LinuxServer binhex/Arch jlesage/Alpine ich777/Debian

4. Getting started

On Unraid, install Krusader from Community Applications. The defaults work as they are. Check the storage path (/mnt by default, which shows every share and disk), the language and the theme, and set a WebUI password if the server can be reached from outside your network. The first start takes 30 to 60 seconds.

Then open https://<server-ip>:3001/ and accept the self-signed certificate once. The Selkies client needs HTTPS. Port 3000 is plain HTTP and only works behind a reverse proxy that handles TLS.

Without Unraid:

docker run -d --name krusader --shm-size=1gb \
  -p 3001:3001 \
  -e PUID=99 -e PGID=100 -e KRUSADER_LANG=en \
  -v /path/to/appdata/krusader:/config \
  -v /mnt:/storage \
  junkerderprovinz/krusader:latest

--shm-size=1gb keeps KDE rendering smooth; the Unraid template sets it for you. Known problems and their fixes are in TROUBLESHOOTING.md.


5. How AI is used here

One knight builds this, and AI is one of the tools I work with, the same way I work with an editor or a compiler. It helps me write code and documentation and it checks my work, and that saves me a good many evenings. It does not make the decisions, though. I read and understand everything before it ships, and if something here breaks, that is on me and not on the tool.

You do not have to take my word for it. The code is open and every release note is written by hand. The issue tracker shows how problems actually get handled, including the ones I got wrong the first time. If you find something that is not right, open an issue and I will look at it.


6. Support this project

Questions? Check the support thread. Bugs, ideas or feature requests? Please open a GitHub issue.

A one-knight job: I build it, keep it running, work through the issues and add what people ask for, until nothing is missing. It is free, with no accounts, no telemetry, no ads and no paid tier. No asterisk anywhere. Nothing readable ever leaves your own walls. Forged on evenings and weekends, with heart and stubbornness.

If it has earned a place on your server or computer, toss a coin to your knight: it helps cover the costs and keeps the project alive. It also makes this knight's heart beat a little faster. Three ways below, whichever suits you.

Buy me a coffee   PayPal   Donate with crypto


The packaging in this repository is AGPL-3.0. Krusader and the bundled KDE, Qt, Selkies, unrar and LinuxServer components keep their own licences; see LICENSE.

Download Statistics

31,588
Total Downloads

Related apps

Details

Repository
junkerderprovinz/krusader:latest
Last Updated2026-08-31
First Seen2026-06-09

Runtime arguments

Web UI
https://[IP]:[PORT:3001]/
Network
bridge
Shell
bash
Privileged
false
Extra Params
--restart=unless-stopped --shm-size=1gb

Template configuration

WebUI Port (HTTPS / Selkies)Porttcp

HTTPS port of the Selkies WebUI (self-signed cert). This is the default WebUI, because the browser only allows clipboard access over HTTPS. Accept the self-signed certificate once.

Target
3001
Default
3001
Value
3001
WebUI Port (HTTP / Selkies)Porttcp

HTTP port of the Selkies WebUI. For a reverse proxy that terminates TLS in front of the container, not for direct browser access: the Selkies web client requires a secure context, so opening http://IP:3000 directly shows a 'requires a secure connection (HTTPS)' error. For direct access use the HTTPS port 3001.

Target
3000
Default
3000
Value
3000
AppData (/config)Pathrw

Persistent Krusader configs, history, bookmarks, default-files lock.

Target
/config
Default
/mnt/user/appdata/krusader
Value
/mnt/user/appdata/krusader
Storage (/storage)Pathrw,slave

Main path for file operations. Default /mnt gives access to all shares (/mnt/user) and individual disks (/mnt/disk*). Adjust if you only need specific shares.

Target
/storage
Default
/mnt
Value
/mnt
UI Language (KRUSADER_LANG)Variable

Language for the Krusader / Kate UI (33 languages). The container reads the leading code, so the full label is fine as a value. Pick 'system' for the container default. Re-applied on every container start.

Target
KRUSADER_LANG
Default
de = Deutsch|en = English|fr = Français|es = Español|it = Italiano|pt = Português|nl = Nederlands|ca = Català|eu = Euskara|ga = Gaeilge|da = Dansk|sv = Svenska|nb = Norsk (Bokmål)|fi = Suomi|is = Íslenska|pl = Polski|cs = Čeština|sk = Slovenčina|hu = Magyar|ro = Română|sl = Slovenščina|hr = Hrvatski|sr = Srpski|bg = Български|uk = Українська|ru = Русский|el = Ελληνικά|tr = Türkçe|he = עברית|ar = العربية|ja = 日本語|ko = 한국어|zh = 中文|system = System default
Value
de = Deutsch
Theme (KRUSADER_THEME)Variable

Color scheme. 'dark' = Dark Mode, 'light' = Breeze.

Target
KRUSADER_THEME
Default
dark|light
Value
dark
Keyboard Layout (KEYBOARD_LAYOUT)Variable

X keyboard layout loaded at session start (setxkbmap). Binds Shift so pasted upper-case text keeps its case in the web desktop, and gives the correct symbols for your layout. Default 'us' suits most users.

Target
KEYBOARD_LAYOUT
Default
us|de|gb|fr|es|it|pt|nl|se|no|dk|fi|pl|cz|hu|ru|jp
Value
us
WebUI UsernameVariable

Optional. Username for HTTP-basic-auth on the WebUI. Leave it empty together with the password for no login. Set both fields to enable login (recommended outside trusted LANs).

Target
CUSTOM_USER
WebUI PasswordVariable

Optional. Password for HTTP-basic-auth on the WebUI. Leave it empty together with the username for no login. Strongly recommended whenever the container is reachable from outside your LAN.

Target
PASSWORD
Timezone (TZ)Variable

Container timezone (affects log timestamps and file mtimes). Use this instead of a /etc/localtime bind-mount, because the LSIO base image manages /etc/localtime internally via TZ.

Target
TZ
Default
Europe/Vienna|Africa/Abidjan|Africa/Accra|Africa/Addis_Ababa|Africa/Algiers|Africa/Asmera|Africa/Bamako|Africa/Bangui|Africa/Banjul|Africa/Bissau|Africa/Blantyre|Africa/Brazzaville|Africa/Bujumbura|Africa/Cairo|Africa/Casablanca|Africa/Ceuta|Africa/Conakry|Africa/Dakar|Africa/Dar_es_Salaam|Africa/Djibouti|Africa/Douala|Africa/El_Aaiun|Africa/Freetown|Africa/Gaborone|Africa/Harare|Africa/Johannesburg|Africa/Juba|Africa/Kampala|Africa/Khartoum|Africa/Kigali|Africa/Kinshasa|Africa/Lagos|Africa/Libreville|Africa/Lome|Africa/Luanda|Africa/Lubumbashi|Africa/Lusaka|Africa/Malabo|Africa/Maputo|Africa/Maseru|Africa/Mbabane|Africa/Mogadishu|Africa/Monrovia|Africa/Nairobi|Africa/Ndjamena|Africa/Niamey|Africa/Nouakchott|Africa/Ouagadougou|Africa/Porto-Novo|Africa/Sao_Tome|Africa/Tripoli|Africa/Tunis|Africa/Windhoek|America/Adak|America/Anchorage|America/Anguilla|America/Antigua|America/Araguaina|America/Argentina/La_Rioja|America/Argentina/Rio_Gallegos|America/Argentina/Salta|America/Argentina/San_Juan|America/Argentina/San_Luis|America/Argentina/Tucuman|America/Argentina/Ushuaia|America/Aruba|America/Asuncion|America/Bahia|America/Bahia_Banderas|America/Barbados|America/Belem|America/Belize|America/Blanc-Sablon|America/Boa_Vista|America/Bogota|America/Boise|America/Buenos_Aires|America/Cambridge_Bay|America/Campo_Grande|America/Cancun|America/Caracas|America/Catamarca|America/Cayenne|America/Cayman|America/Chicago|America/Chihuahua|America/Ciudad_Juarez|America/Coral_Harbour|America/Cordoba|America/Costa_Rica|America/Coyhaique|America/Creston|America/Cuiaba|America/Curacao|America/Danmarkshavn|America/Dawson|America/Dawson_Creek|America/Denver|America/Detroit|America/Dominica|America/Edmonton|America/Eirunepe|America/El_Salvador|America/Fort_Nelson|America/Fortaleza|America/Glace_Bay|America/Godthab|America/Goose_Bay|America/Grand_Turk|America/Grenada|America/Guadeloupe|America/Guatemala|America/Guayaquil|America/Guyana|America/Halifax|America/Havana|America/Hermosillo|America/Indiana/Knox|America/Indiana/Marengo|America/Indiana/Petersburg|America/Indiana/Tell_City|America/Indiana/Vevay|America/Indiana/Vincennes|America/Indiana/Winamac|America/Indianapolis|America/Inuvik|America/Iqaluit|America/Jamaica|America/Jujuy|America/Juneau|America/Kentucky/Monticello|America/Kralendijk|America/La_Paz|America/Lima|America/Los_Angeles|America/Louisville|America/Lower_Princes|America/Maceio|America/Managua|America/Manaus|America/Marigot|America/Martinique|America/Matamoros|America/Mazatlan|America/Mendoza|America/Menominee|America/Merida|America/Metlakatla|America/Mexico_City|America/Miquelon|America/Moncton|America/Monterrey|America/Montevideo|America/Montserrat|America/Nassau|America/New_York|America/Nome|America/Noronha|America/North_Dakota/Beulah|America/North_Dakota/Center|America/North_Dakota/New_Salem|America/Ojinaga|America/Panama|America/Paramaribo|America/Phoenix|America/Port-au-Prince|America/Port_of_Spain|America/Porto_Velho|America/Puerto_Rico|America/Punta_Arenas|America/Rankin_Inlet|America/Recife|America/Regina|America/Resolute|America/Rio_Branco|America/Santarem|America/Santiago|America/Santo_Domingo|America/Sao_Paulo|America/Scoresbysund|America/Sitka|America/St_Barthelemy|America/St_Johns|America/St_Kitts|America/St_Lucia|America/St_Thomas|America/St_Vincent|America/Swift_Current|America/Tegucigalpa|America/Thule|America/Tijuana|America/Toronto|America/Tortola|America/Vancouver|America/Whitehorse|America/Winnipeg|America/Yakutat|Antarctica/Casey|Antarctica/Davis|Antarctica/DumontDUrville|Antarctica/Macquarie|Antarctica/Mawson|Antarctica/McMurdo|Antarctica/Palmer|Antarctica/Rothera|Antarctica/Syowa|Antarctica/Troll|Antarctica/Vostok|Arctic/Longyearbyen|Asia/Aden|Asia/Almaty|Asia/Amman|Asia/Anadyr|Asia/Aqtau|Asia/Aqtobe|Asia/Ashgabat|Asia/Atyrau|Asia/Baghdad|Asia/Bahrain|Asia/Baku|Asia/Bangkok|Asia/Barnaul|Asia/Beirut|Asia/Bishkek|Asia/Brunei|Asia/Calcutta|Asia/Chita|Asia/Colombo|Asia/Damascus|Asia/Dhaka|Asia/Dili|Asia/Dubai|Asia/Dushanbe|Asia/Famagusta|Asia/Gaza|Asia/Hebron|Asia/Hong_Kong|Asia/Hovd|Asia/Irkutsk|Asia/Jakarta|Asia/Jayapura|Asia/Jerusalem|Asia/Kabul|Asia/Kamchatka|Asia/Karachi|Asia/Katmandu|Asia/Khandyga|Asia/Krasnoyarsk|Asia/Kuala_Lumpur|Asia/Kuching|Asia/Kuwait|Asia/Macau|Asia/Magadan|Asia/Makassar|Asia/Manila|Asia/Muscat|Asia/Nicosia|Asia/Novokuznetsk|Asia/Novosibirsk|Asia/Omsk|Asia/Oral|Asia/Phnom_Penh|Asia/Pontianak|Asia/Pyongyang|Asia/Qatar|Asia/Qostanay|Asia/Qyzylorda|Asia/Rangoon|Asia/Riyadh|Asia/Saigon|Asia/Sakhalin|Asia/Samarkand|Asia/Seoul|Asia/Shanghai|Asia/Singapore|Asia/Srednekolymsk|Asia/Taipei|Asia/Tashkent|Asia/Tbilisi|Asia/Tehran|Asia/Thimphu|Asia/Tokyo|Asia/Tomsk|Asia/Ulaanbaatar|Asia/Urumqi|Asia/Ust-Nera|Asia/Vientiane|Asia/Vladivostok|Asia/Yakutsk|Asia/Yekaterinburg|Asia/Yerevan|Atlantic/Azores|Atlantic/Bermuda|Atlantic/Canary|Atlantic/Cape_Verde|Atlantic/Faeroe|Atlantic/Madeira|Atlantic/Reykjavik|Atlantic/South_Georgia|Atlantic/St_Helena|Atlantic/Stanley|Australia/Adelaide|Australia/Brisbane|Australia/Broken_Hill|Australia/Darwin|Australia/Eucla|Australia/Hobart|Australia/Lindeman|Australia/Lord_Howe|Australia/Melbourne|Australia/Perth|Australia/Sydney|Europe/Amsterdam|Europe/Andorra|Europe/Astrakhan|Europe/Athens|Europe/Belgrade|Europe/Berlin|Europe/Bratislava|Europe/Brussels|Europe/Bucharest|Europe/Budapest|Europe/Busingen|Europe/Chisinau|Europe/Copenhagen|Europe/Dublin|Europe/Gibraltar|Europe/Guernsey|Europe/Helsinki|Europe/Isle_of_Man|Europe/Istanbul|Europe/Jersey|Europe/Kaliningrad|Europe/Kiev|Europe/Kirov|Europe/Lisbon|Europe/Ljubljana|Europe/London|Europe/Luxembourg|Europe/Madrid|Europe/Malta|Europe/Mariehamn|Europe/Minsk|Europe/Monaco|Europe/Moscow|Europe/Oslo|Europe/Paris|Europe/Podgorica|Europe/Prague|Europe/Riga|Europe/Rome|Europe/Samara|Europe/San_Marino|Europe/Sarajevo|Europe/Saratov|Europe/Simferopol|Europe/Skopje|Europe/Sofia|Europe/Stockholm|Europe/Tallinn|Europe/Tirane|Europe/Ulyanovsk|Europe/Vaduz|Europe/Vatican|Europe/Vilnius|Europe/Volgograd|Europe/Warsaw|Europe/Zagreb|Europe/Zurich|Indian/Antananarivo|Indian/Chagos|Indian/Christmas|Indian/Cocos|Indian/Comoro|Indian/Kerguelen|Indian/Mahe|Indian/Maldives|Indian/Mauritius|Indian/Mayotte|Indian/Reunion|Pacific/Apia|Pacific/Auckland|Pacific/Bougainville|Pacific/Chatham|Pacific/Easter|Pacific/Efate|Pacific/Enderbury|Pacific/Fakaofo|Pacific/Fiji|Pacific/Funafuti|Pacific/Galapagos|Pacific/Gambier|Pacific/Guadalcanal|Pacific/Guam|Pacific/Honolulu|Pacific/Kiritimati|Pacific/Kosrae|Pacific/Kwajalein|Pacific/Majuro|Pacific/Marquesas|Pacific/Midway|Pacific/Nauru|Pacific/Niue|Pacific/Norfolk|Pacific/Noumea|Pacific/Pago_Pago|Pacific/Palau|Pacific/Pitcairn|Pacific/Ponape|Pacific/Port_Moresby|Pacific/Rarotonga|Pacific/Saipan|Pacific/Tahiti|Pacific/Tarawa|Pacific/Tongatapu|Pacific/Truk|Pacific/Wake|Pacific/Wallis
Value
Europe/Vienna
User ID (PUID)Variable

User-ID Krusader runs as. Default 99 (nobody on Unraid).

Target
PUID
Default
99
Value
99
Group ID (PGID)Variable

Group-ID. Default 100 (users on Unraid).

Target
PGID
Default
100
Value
100
UMASKVariable

Permission mask for newly created files. The default 000 lets every container user read and write them, which is what you want when other containers touch the same shares. Set 022 or 077 for stricter permissions.

Default
000|022|002|077
Value
000