Initial vault setup
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user