148 lines
6.2 KiB
Markdown
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
|