Облачный файловый менеджер с консолью и редактором
Исправить ошибку на сайте
Связаться с автором
Cloud Commander - двухпанельный веб файл менеджер с консолью и редактором. Поможет вам управлять сервером и работать с файлами, каталогами и программами в браузере на любом компьютере, смартфоне или планшете.
Установить Cloud Commander проще простого.
cloudcmd
через npm
: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” или “deepword” |
--root | установить корневой каталог |
--prefix | установить url префикс |
--port | назначить порт |
--minify | включить минификацию |
--progress | показывать состояние файловых операций |
--html-dialogs | показывать html диалоги |
--open | открыть веб браузер после старта сервера |
--one-panel-mode | включить однопанельный режим |
--config-dialog | включить диалог конфигурирования |
--console | включить консоль |
--no-server | не запускать сервер |
--no-auth | выключить авторизацию |
--no-online | загружать скрипты с локального сервера |
--no-open | не открывать веб браузер после старта сервер |
--no-minify | выключить минификацию |
--no-progress | не показывать состояние файловых операций |
--no-one-panel-mode | выключить однопанельный режим |
--no-config-dialog | выключить диалог конфигурирования |
--no-console | выключить консоль |
Если не задано параметров, 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 | закрыть |
Клавиша | Действие |
---|---|
~ | открыть |
Ctrl + p | вставить путь текущего каталога |
Esc | закрыть |
Клавиша | Действие |
---|---|
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 перед сохранением */ "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, /* показывать состояние файловых операций */ "onePanelMode" : false, /* включить однопанельный режим */ "configDialog" : true, /* включить диалог конфигурирования */ "console" : true /* включить консоль */ }
Щелчок правой кнопкой мыши вызывает контекстное меню с такими пунктами:
авторизации
)Клавиша | Действие |
---|---|
F9 | открыть |
Esc | закрыть |
Cloud Commander может работать в режиме одной панели, в том случае, если размер экрана не позволяет разместить вторую панель. Такое может случится в случае использования мобильного, планшета или маленького окна браузера для взаимодействия с файловым менеджером.
Cloud Commander может использоваться в качестве middleware для node.js
приложений основанных на socket.io и express:
Инициализируйте package.json
:
npm init -y
Установите зависимости:
npm i cloudcmd express socket.io -S
И создайте index.js
:
const http = require('http'); const cloudcmd = require('cloudcmd'); const io = require('socket.io'); const app = require('express')(); const port = 1337; const prefix = '/cloudcmd'; const server = http.createServer(app); const socket = io.listen(server, { path: `${prefix}/socket.io` }); const config = { prefix /* основной URL или функция которая возвращает основной URL (не обязательно) */ }; const plugins = [ __dirname + '/plugin.js' ]; app.use(cloudcmd({ socket, /* используется Config'ом, Edit'ом (не обязательно) и Console'ью (обязательно) */ config, /* опции настроек (не обязательно) */ plugins, /* не обязательно */ })); server.listen(port);
Обычно процессы, запущенные с правами отличными от root, не могут слушать порты с номером меньше, чем 1024. В любом случае, я советую запускать Cloud Commander не под root. Как это сделать? Существует несколько простых и быстрых вариантов. Один из них - перенаправление портов.
Просто запустите 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. В 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.
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
Существует масса способов поучаствовать в разработке Cloud Commander
: