Files
wiki/Catalogue-Self-Hosted/apps/app-cloud-commander.md
T
2026-06-09 18:40:21 +02:00

6.2 KiB


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é)

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

npm install -g cloudcmd
cloudcmd --root /srv/data --port 8000 --password ***
# Accès : http://localhost:8000

Option 3 : Module dans une app Node

npm install cloudcmd
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

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

Pages Liées