Files
2026-06-09 18:40:21 +02:00

148 lines
6.2 KiB
Markdown

---
title: Cloud Commander
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, file-management, nodejs, double-panel, midnight-commander, console, vintage]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=File+Management, https://github.com/coderaiser/cloudcmd]
---
# Cloud Commander 🪖
> Web file manager **double panneau** en Node.js qui rappelle **Midnight Commander** : deux colonnes synchronisées, navigation clavier, console intégrée, éditeur de texte. L'outil idéal pour les anciens de la console qui veulent un file manager web ergonomique.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://cloudcmd.io |
| **GitHub** | https://github.com/coderaiser/cloudcmd |
| **License** | MIT |
| **Langage** | JavaScript (Node.js) |
| **Étoiles** | 264 ⭐ |
| **Dernière MAJ** | 2026-04 |
| **Catégorie** | [[cat-file-management]] |
## Description
Cloud Commander (anciennement **Cloud Commander**, parfois appelé simplement **cloudcmd**) est un vétéran des file managers web : le projet existe depuis 2012 et reste activement maintenu. Son parti pris est radical : **imiter Midnight Commander** (mc) en mode web, avec ses deux panneaux côte à côte, ses raccourcis clavier, et son efficacité légendaire.
L'UI est volontairement **sobre et fonctionnelle** : pas de Material Design tape-à-l'œil, juste deux colonnes, un menu, et des raccourcis. Pour qui aime **Vim**, **Emacs** ou **mc**, c'est un bonheur. Pour qui préfère une UI moderne type [[app-filestash]], ça semblera daté (avis subjectif).
Fonctionnalités clés :
- **Double panneau** synchronisé (chemin miroir ou indépendant)
- **Console intégrée** : un shell bash/sh dans le navigateur, **redoutable d'efficacité** (mais danger)
- **Éditeur intégré** : Dwordl ou Ace Editor, coloration syntaxique
- **Navigation clavier** : F1-F10, Tab, Ctrl+R, etc. (comme mc)
- **Drag&drop** entre les deux panneaux
- **Upload/download** par drag&drop
- **Compression/décompression** à la volée (.zip, .tar.gz)
- **Auth basique** : login/password (pas de multi-user natif)
- **Packaging** : peut tourner en single process Node ou en module
L'auteur **coderaiser** (Ivan Kotenkov) maintient aussi **MultyFS**, **Editdor**, **Flyoner** et d'autres outils CLI/web. Le projet est stable, mature, et dispose d'un écosystème de plugins.
C'est le file manager parfait pour un **homelab** ou un serveur Linux, accessible depuis n'importe quel navigateur, sans dépendre d'un client lourd. Pas idéal pour exposer à des non-techs (l'UX est spartiate).
## Installation
### Option 1 : Docker Compose (recommandé)
```yaml
services:
cloudcmd:
image: coderaiser/cloudcmd:latest
container_name: cloudcmd
restart: unless-stopped
ports:
- "8000:8000"
volumes:
- /srv/data:/mnt # répertoire à exposer
- ./config:/config # configuration JSON
environment:
- PASSWORD=*** - CONSOLE=true # console intégrée activée
```
UI sur `http://localhost:8000`. Identifiants par défaut : `admin` / vide si pas de PASSWORD (mettre en place rapidement !).
### Option 2 : npm global
```bash
npm install -g cloudcmd
cloudcmd --root /srv/data --port 8000 --password ***
# Accès : http://localhost:8000
```
### Option 3 : Module dans une app Node
```bash
npm install cloudcmd
```
```javascript
const cloudcmd = require('cloudcmd');
cloudcmd({
root: '/srv/data',
port: 8000,
password: '***'
});
```
## Configuration
- **Premier accès** : si `PASSWORD` est défini, l'auth est demandée. Sinon, l'app est ouverte à tous (⚠️ dangereux).
- **Fichiers de config** : `config.json` pour config globale, `config/modules.json` pour les modules activés.
- **Console** : `CONSOLE=true` active le shell intégré. À **désactiver** en exposition publique.
- **Auth** : basique HTTP (login/password). Brancher en amont [[app-authelia]] pour du SSO.
- **Packaging** : Cloud Commander peut être "embarqué" dans une autre app Node, pratique pour des intégrations custom.
- **Reverse proxy** : derrière [[app-caddy]] / [[app-traefik]] avec HTTPS. WebSocket peut être requis pour certaines features.
## Alternatives
### Open Source
- [[app-file-browser]] — Go, plus moderne, mono-utilisateur
- [[app-filebrowser-quantum]] — File Browser avec éditeur
- [[app-filestash]] — UI moderne multi-protocoles
- [[app-filegator]] — PHP multi-user
- **JupyterLab** — Pas vraiment file manager, mais UI double-panel
- **Filerun** — UX riche PHP
- **Eternal Terminal** — Pas un file manager mais même philosophie CLI/web
- [[app-code-server]] — VS Code complet
### Propriétaires
- Midnight Commander (natif, pas web)
- WinSCP (client, pas serveur)
- FileZilla (client)
- Cyberduck
- Forklift (Mac)
## Sécurité
- **⚠️ Console intégrée = DANGER** : avec `CONSOLE=true`, un utilisateur authentifié a un **shell root** sur le serveur. À **désactiver impérativement** en exposition publique (`CONSOLE=false`).
- **Auth obligatoire** : toujours définir `PASSWORD` ou un fichier `.htpasswd` via reverse proxy.
- **HTTPS** : obligatoire ([[app-caddy]] / [[app-traefik]]).
- **Rate limiting** : Cloud Commander n'a pas de rate limit natif, le mettre sur le reverse proxy.
- **Brute force** : la page de login est exposée. Utiliser fail2ban ou un WAF ([[app-authelia]] avec rate limit).
- **Scope limité** : ne JAMAIS donner accès à `/`. Cloud Commander peut naviguer au-dessus du `--root` (c'est un bug historique), d'où l'importance de jailer avec un chroot ou un bind mount strict.
- **Backups** : `cloudcmd.json` + le volume exposé.
- **Updates** : suivre npm advisories.
## Ressources
- [Site officiel](https://cloudcmd.io)
- [Documentation](https://cloudcmd.io/documentation)
- [GitHub](https://github.com/coderaiser/cloudcmd)
- [Demo](https://cloudcmd.io/demo)
- [selfh.st/apps/?tag=File+Management](https://selfh.st/apps/?tag=File+Management)
## Pages Liées
- [[cat-file-management]] — Catégorie parente
- [[app-file-browser]] — Concurrent plus moderne
- [[app-filestash]] — Concurrent UI moderne
- [[app-code-server]] — VS Code complet (pas file manager)
- [[app-caddy]] / [[app-traefik]] — Reverse proxy
- [[app-authelia]] — SSO recommandé
- [[recettes-docker-compose]] — Templates Docker
- [[securisation-home-lab]] — Bonnes pratiques