Convert Figma logo to code with AI

coderaiser logocloudcmd

✨☁️📁✨ Cloud Commander file manager for the web with console and editor.

1,893
262
1,893
21

Top Related Projects

📂 Web File Browser

16,018

A VIM-inspired filemanager for the console

2,838

Vifm is a file manager with curses interface, which provides Vim-like environment for managing objects within file systems, extended with some useful ideas from mutt.

1,306

File browser for Cinnamon

Quick Overview

CloudCmd is a web-based file manager with a dual-panel layout, offering a user-friendly interface for managing files and directories on a server. It provides a range of features including file operations, built-in text editor and viewer, and support for various cloud storage services.

Pros

  • Cross-platform compatibility, accessible through any modern web browser
  • Dual-panel interface for efficient file management and comparison
  • Built-in text editor and viewer with syntax highlighting
  • Integration with cloud storage services like Dropbox and Google Drive

Cons

  • Requires server-side installation and configuration
  • May have a steeper learning curve for users accustomed to traditional file managers
  • Performance might be slower compared to native file managers, especially for large file operations
  • Limited customization options for the user interface

Getting Started

To install and run CloudCmd:

npm i cloudcmd -g
cloudcmd

Access the file manager by opening a web browser and navigating to http://localhost:8000.

For more advanced configuration, create a ~/.cloudcmd.json file:

{
    "port": 8000,
    "prefix": "/",
    "root": "/"
}

You can then start CloudCmd with custom options:

cloudcmd --port 1337 --prefix /files --root /home/user

Competitor Comparisons

📂 Web File Browser

Pros of filebrowser

  • Lightweight and fast, with a clean and modern user interface
  • Built-in user management system with granular permissions
  • Supports multiple storage backends, including local, S3, and Google Drive

Cons of filebrowser

  • Limited built-in file editing capabilities compared to cloudcmd
  • Fewer advanced features like remote management and terminal access
  • Less extensive plugin ecosystem and customization options

Code comparison

filebrowser

func (f *FileInfo) IsDir() bool {
    return f.Mode().IsDir()
}

cloudcmd

const isDir = (mode) => {
    return (mode & constants.S_IFMT) === constants.S_IFDIR;
};

Both projects implement directory checking, but filebrowser uses Go's built-in file mode methods, while cloudcmd uses a custom JavaScript function with bitwise operations.

filebrowser focuses on simplicity and core file management features, making it ideal for users who need a straightforward, lightweight solution. cloudcmd offers a more comprehensive set of features, including advanced file operations, remote management, and terminal access, making it suitable for power users and developers who require extensive functionality.

While filebrowser has a cleaner, more modern interface, cloudcmd provides greater flexibility and customization options. The choice between the two depends on the specific needs of the user and the desired balance between simplicity and advanced features.

16,018

A VIM-inspired filemanager for the console

Pros of ranger

  • Terminal-based file manager, ideal for users who prefer command-line interfaces
  • Highly customizable with extensive keybindings and configuration options
  • Lightweight and fast, suitable for low-resource environments

Cons of ranger

  • Steeper learning curve for users unfamiliar with terminal-based applications
  • Limited graphical features compared to web-based file managers
  • Requires local installation and may not be suitable for remote file management

Code comparison

ranger:

def get_selection(self):
    return [f for f in self.thistab.get_selection() if f.is_file]

def execute_file(self, files, **kw):
    mode = kw.get('mode', 0)
    if mode == 0:
        self.execute_command(files)

cloudcmd:

const getPanel = (side) => {
    const panel = DOM.getByDataName('js-panel', side);
    return panel;
};

const getActivePanel = () => {
    const panel = DOM.getByClass('panel .current');
    return panel;
};

While both projects deal with file management, ranger focuses on terminal-based operations using Python, whereas cloudcmd is a web-based file manager implemented in JavaScript. The code snippets demonstrate their different approaches to handling file selection and panel management.

2,838

Vifm is a file manager with curses interface, which provides Vim-like environment for managing objects within file systems, extended with some useful ideas from mutt.

Pros of vifm

  • Lightweight and efficient, designed for terminal use
  • Highly customizable with extensive configuration options
  • Vim-like keybindings for familiar and efficient navigation

Cons of vifm

  • Limited to terminal interface, lacking graphical features
  • Steeper learning curve for users unfamiliar with Vim-style commands
  • Less focus on cloud integration and remote file management

Code Comparison

vifm configuration example:

" Custom key mapping
nnoremap <C-h> :cd ~<CR>
" Color scheme
colorscheme solarized
" File preview
fileviewer *.pdf pdftotext -nopgbrk %c -

CloudCmd configuration example:

CloudCmd.config({
    prefix: '/cloudcmd',
    auth: true,
    username: 'user',
    password: 'pass'
});

While vifm focuses on terminal-based file management with Vim-like syntax, CloudCmd offers a web-based interface with broader cloud integration capabilities. vifm excels in local file management and customization, whereas CloudCmd provides a more accessible interface for remote and cloud-based file operations.

1,306

File browser for Cinnamon

Pros of Nemo

  • Native file manager for Linux Mint, providing deep system integration
  • Extensive plugin system for customization and feature expansion
  • Familiar interface for traditional desktop users

Cons of Nemo

  • Limited to Linux environments, not cross-platform
  • Requires more system resources compared to web-based alternatives
  • Less suitable for remote file management scenarios

Code Comparison

Nemo (C):

static void
nemo_file_operations_copy_move (GtkWidget *parent_view,
                                GFile *target_dir,
                                GList *files,
                                GdkDragAction action,
                                int x, int y)
{
    NemoFile *target_file;
    GtkWindow *parent_window;

CloudCmd (JavaScript):

const copyFiles = async (from, to) => {
    const names = DOM.getSelectedNames();
    const files = names.map((name) => join(from, name));
    
    await prompt.confirm({
        type: 'copy',
        name: 'files',
        from,
        to,
    });

Nemo is a traditional file manager written in C, deeply integrated with the Linux system. CloudCmd, on the other hand, is a web-based file manager written in JavaScript, offering cross-platform compatibility and easier remote file management. While Nemo provides a more native experience for desktop users, CloudCmd offers flexibility and accessibility from any device with a web browser.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Cloud Commander v18.5.1 Build Status Codacy Gitter

Main Blog Support Demo

Cloud Commander a file manager for the web with console and editor.

Cloud Commander

Install

npm i cloudcmd -g

Start

For starting just type in console:

cloudcmd

How to use?

Open url http://localhost:8000 in browser.

View

You will see something similar to this. View

Deploy

Cloud Commander could be easily deployed to Heroku.

Deploy

Using as Middleware

Cloud Commander could be used as middleware for node.js applications based on socket.io and express:

Init package.json:

npm init -y

Install dependencies:

npm i cloudcmd express socket.io -S

And create index.js:

import http from 'node:http';
import cloudcmd from 'cloudcmd';
import {Server} from 'socket.io';
import express from 'express';

const app = express();

const port = 1337;
const prefix = '/';

const server = http.createServer(app);
const socket = new Server(server, {
    path: `${prefix}socket.io`,
});

const config = {
    name: 'cloudcmd :)',
};

const filePicker = {
    data: {
        FilePicker: {
            key: 'key',
        },
    },
};

// override option from json/modules.json
const modules = {
    filePicker,
};

const {
    createConfigManager,
    configPath,
} = cloudcmd;

const configManager = createConfigManager({
    configPath,
});

app.use(prefix, cloudcmd({
    socket, // used by Config, Edit (optional) and Console (required)
    config, // config data (optional)
    modules, // optional
    configManager, // optional
}));

server.listen(port);

Docker

The docker images are provided for multiple architectures and types. The following list shows all existing images:

ArchitectureType
amd64linux
arm64 (arm/v8)linux
amd64linux-alpine
arm64 (arm/v8)linux-alpine

Cloud Commander could be used as a docker container this way:

docker run -it --rm -v ~:/root -v /:/mnt/fs -w=/root -p 8000:8000 coderaiser/cloudcmd

Config would be read from home directory, hosts root file system would be mount to /mnt/fs, 8000 port would be exposed to hosts port.

Also you could use docker compose with docker-compose.yml:

version: '2'
services:
  web:
    ports:
      - 8000:8000
    volumes:
      - ~:/root
      - /:/mnt/fs
    image: coderaiser/cloudcmd

When you create this file run:

docker-compose up

Documentation

More documentation you can find on https://cloudcmd.io/.

Get involved

There is a lot ways to be involved in Cloud Commander development:

License

MIT

NPM DownloadsLast 30 Days