Cloud Commander

Облачный файловый менеджер с консолью и редактором

Посмотреть на GitHub

Исправить ошибку на сайте
Связаться с автором

Cloud Commander 5.11.1

Главная Блог Демо(Heroku Heroku)

Cloud Commander - двухпанельный веб файл менеджер с консолью и редактором. Поможет вам управлять сервером и работать с файлами, каталогами и программами в браузере на любом компьютере, смартфоне или планшете.

Cloud Commander

Преимущества

Установка

Установить Cloud Commander проще простого.

npm i cloudcmd -g

Возникли проблемы:

npm i cloudcmd -g --force

Запуск

Для запуска наберите в консоли:

cloudcmd

Cloud Commander поддерживает параметры командной строки:

Параметр Действие
-h, --help помощь
-v, --version вывести версию и выйти
-s, --save сохранить настройки
-o, --online загружать скрипты с удаленных серверов
-a, --auth включить авторизацию
-u, --username установить имя пользователя
-p, --password установить пароль
-c, --config путь к файлу с настройками
--editor назначить редактор: “dword” или “edward”
--root установить корневой каталог
--prefix установить url префикс
--port назначить порт
--minify включить минификацию
--progress показывать состояние файловых операций
--html-dialogs показывать html диалоги
--open открыть веб браузер после старта сервера
--no-server не запускать сервер
--no-auth выключить авторизацию
--no-online загружать скрипты с локального сервера
--no-open не открывать веб браузер после старта сервер
--no-minify выключить минификацию
--no-progress не показывать состояние файловых операций
--no-html-dialogs не использовать html диалоги

Если не задано параметров, Cloud Commander читает информацию с ~/.cloudcmd.json и использует порт оттуда (8000 по умолчанию), если переменных PORT или VCAP_APP_PORT не существует.

Что бы начать работу, введите в адресной строке вашего браузера:

http://localhost:8000

Обновление

Если Вы установили Cloud Commander при помощи npm, остановите приложение и переустановите его:

npm update cloudcmd -g

После чего запустите его снова, почистите кэш и обновите страницу.

Горячие клавиши

Клавиша Действие
F1 помощь
F2 переименовать
F3 просмотр
Shift + F3 просмотр в markdown
F4 редактировать
F5 копировать
F6 переименовать/переместить
F7 новый каталог
Shift + F7 новый файл
F8, Delete удалить текущий файл
Shift + Delete удалить без запроса о подтверждении
F9 меню
F10 настройки
(*) выделить/снять выделение со всех файлов
(+) расширить выделение
(-) сузить выделение
Ctrl + x вырезать в буфер
Ctrl + с копировать в буфер
Ctrl + v вставить из буфера
Ctrl + r обновить
Ctrl + d очистить локальное хранилище
Ctrl + a выбрать (выделить) все файлы на панели
Ctrl + u поменять панели местами
Up, Down, Enter перемещение по файловой системе
Alt + Left/Right показать содержимое каталога под курсором в целевой панели
Alt + g перейти к каталогу
Ctrl + \ перейти в корневой каталог
Tab переключение между панелями
Page Up вверх на одну страницу
Page Down вниз на одну страницу
Home в начало списка
End в конец списка
Space выделить текущий файл (и получить размер каталога)
Insert выделить текущий файл (и перейти к следующему)
Shift + F10 контекстное меню
~ консоль
Ctrl + Click открыть файл в новой вкладке

Просмотр

Просмотр

Возможности

Горячие клавиши

Клавиша Действие
F3 открыть
Esc закрыть

Редактор

Редактор

Горячие клавиши

Клавиша Действие
F4 открыть
Esc закрыть

Горячие клавиши Edward.

Консоль

Консоль

Горячие клавиши

Клавиша Действие
~ открыть
Ctrl + p вставить путь текущего каталога
Esc закрыть

Горячие клавиши console.

Настройки

Настройки

Горячие клавиши

Клавиша Действие
F10 открыть
Esc закрыть

Результат настройки файлового менеджера записывается в текстовый файл доступный для чтения и редактирования. Он называется ~/.cloudcmd.json и содержит следующие поля:

{
    "auth"              : false,            /* разрешить http авторизацию                                      */
    "username"          : "root",           /* имя пользователя для авторизации                                */
    "password"          : "toor",           /* хеш пароля в sha-1 для авторизации                              */
    "algo"              : "sha512WithRSAEncryption", /* криптографический алгоритм                             */
    "editor"            : "edward",         /* по умолчанию, может быть "dword" или "edward"                   */
    "diff"              : false,            /* при сохранении - отсылает патч, а не весь файл                  */
    "zip"               : false,            /* zip текст перед отсылкой / unzip перед сохранением              */
    "notifications"     : false,            /* показывать оповещения, если вкладка не активна                  */
    "localStorage"      : true,             /* локальное хранилище                                             */
    "buffer"            : true,             /* буфер для копирования файлов                                    */
    "dirStorage"        : true,             /* сохранить листинг каталога в localStorage                       */
    "minify"            : false,            /* минификация js, css, html и изображений                         */
    "online"            : true,             /* загрузить файлы js из cdn или Local path                        */
    "open"              : false,            /* открыть веб браузер после старта сервера                        */
    "cache"             : true,             /* кеширование                                                     */
    "showKeysPanel"     : true,             /* показать классическую панель с кнопками функциональных клавиш   */
    "port"              : 8000,             /* http порт                                                       */
    "ip"                : null,             /* ip или null(по умолчанию)                                       */
    "root"              : "/",              /* корневой каталог                                                */
    "prefix"            : "",               /* url префикс                                                     */
    "progress"          : true,             /* показывать состояние файловых операций                          */
    "htmlDialogs"       : true              /* показывать html диалоги                                         */
}

Меню

Меню

Щелчок правой кнопкой мыши вызывает контекстное меню с такими пунктами:

Горячие клавиши

Клавиша Действие
F9 открыть
Esc закрыть

Режим одной панели

Cloud Commander может работать в режиме одной панели, в том случае, если размер экрана не позволяет разместить вторую панель. Такое может случится в случае использования мобильного, планшета или маленького окна браузера для взаимодействия с файловым менеджером.

Режим одной панели

Использование в качестве Middleware

Cloud Commander может использоваться в качестве middleware для node.js приложений основанных на socket.io и express:

var http        = require('http'),
    cloudcmd    = require('cloudcmd'),
    express     = require('express'),
    io          = require('socket.io'),
    app         = express(),
    
    PORT        = 1337,
    
    server,
    socket;
    
server = http.createServer(app);
socket = io.listen(server);

app.use(cloudcmd({
    socket: socket,          /* используется Config'ом, Edit'ом (не обязательно) и Console'ью (обязательно)  */
    config: {                /* опции настроек (не обязательно)                                              */
        prefix: '/cloudcmd', /* основной URL или функция возвращающая основной URL (не обязательно)          */
    }
}));

server.listen(PORT);

Сервер

Обычно процессы, запущенные с правами отличными от root, не могут слушать порты с номером меньше, чем 1024. В любом случае, я советую Вам запускать Cloud Commander не под root. Как это сделать? Существует несколько простых и быстрых вариантов. Один из них - перенаправление портов.

Iptables

Просто запустите shell/addtables.sh для стандартных опций.

iptables -t nat -L # look rules before
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8000
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 4430
iptables -t nat -L # look reles after

Вы должны увидеть что-то вроде ( 8000 и 4430 должно быть в config как port и sslPort )

target     prot opt source               destination
REDIRECT   tcp  --  anywhere             anywhere             tcp dpt:http redir ports 8000
REDIRECT   tcp  --  anywhere             anywhere             tcp dpt:https redir ports 4430

Если захотите всё вернуть, просто очистите правила ( 1 и 2 — это номера правил, в вашем случае они могут отличаться).

iptables -t nat -D PREROUTING 1
iptables -t nat -D PREROUTING 2

###nginx Возьмите nginx. В Linux это можно сделать так:

sudo apt-get install nginx #for ubuntu and debian

И сделайте хост файл /etc/nginx/sites-enabled/io.cloudcmd.io ( io.cloudcmd.io ваше доменное имя) с содержимым:

server {
    listen 80;
    client_max_body_size 100m;
    server_name io.cloudcmd.io;
    access_log /var/log/nginx/io.cloudcmd.io.access.log;
    location / {
        proxy_pass    http://127.0.0.1:8000/;
    }
}

Если вы хотите включить SSL, добавьте несколько строчек в раздел сервера:

server {
    listen 443;
    client_max_body_size 100m;
    ssl                  on;
    ssl_certificate      /home/coderaiser/cloudcmd/ssl/ssl.crt;
    ssl_certificate_key  /home/coderaiser/cloudcmd/ssl/ssl.key;
    server_name io.cloudcmd.io;
    access_log /var/log/nginx/io.cloudcmd.io.access.log;
    location / {
        proxy_pass    http://127.0.0.1:8000/;
    }
}

Если Вам нужно перенаправление с http на https, просто сделайте так:

server {
    listen 80;
    server_name admin.cloudcmd.io;
    rewrite ^ https://io.cloudcmd.io$request_uri? permanent; #301 redirect
    access_log /var/log/nginx/io.cloudcmd.io.access.log;
}
# create symlink of this file
ln -s ./sites-enabled/io.cloudcmd.io ./sites-available
# restart nginx
/etc/init.d/nginx restart

Разворачивание

Cloud Commander можно легко развернуть на Heroku.

Развернуть

Docker

Cloud Commander можно использовать как docker контейнер:

docker run -v ~:/root -v /:/mnt/fs -t -p 8000:8000 coderaiser/cloudcmd

Настройки будут читаться из домашнего каталога, корень файловой системы монтирован к /mnt/fs, 8000 порт контейнера будет доступен через порт главной системы.

Также Вы можете использовать docker compose с docker-compose.yml:

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

Когда создадите этот файл, запустите:

docker-compose up

История версий

Особая благодарность: