Облачный файловый менеджер с консолью и редактором
Исправить ошибку на сайте
Связаться с автором
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
: