All apps · 0 apps
Krusader
Docker app from junkerderprovinz's Repository
Overview
Readme
View on GitHub
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.
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.
Table of Contents
- What it looks like
- What it does
- How it compares
- Getting started
- How AI is used here
- Support this project
1. What it looks like
The files and folders in these pictures are made up.
Two panes side by side in Dark Mode, streamed to any browser on your network
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.
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.
Categories
Download Statistics
Related apps
Explore more like this
Explore allLinks
Details
junkerderprovinz/krusader:latestRuntime arguments
- Web UI
https://[IP]:[PORT:3001]/- Network
bridge- Shell
bash- Privileged
- false
- Extra Params
--restart=unless-stopped --shm-size=1gb
Template configuration
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
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
Persistent Krusader configs, history, bookmarks, default-files lock.
- Target
- /config
- Default
- /mnt/user/appdata/krusader
- Value
- /mnt/user/appdata/krusader
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
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
Color scheme. 'dark' = Dark Mode, 'light' = Breeze.
- Target
- KRUSADER_THEME
- Default
- dark|light
- Value
- dark
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
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
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
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 Krusader runs as. Default 99 (nobody on Unraid).
- Target
- PUID
- Default
- 99
- Value
- 99
Group-ID. Default 100 (users on Unraid).
- Target
- PGID
- Default
- 100
- Value
- 100
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