Skip to content

Latest commit

 

History

History
771 lines (674 loc) · 45.4 KB

v10.3.0.md

File metadata and controls

771 lines (674 loc) · 45.4 KB
layout lang scripts styles hideDownloadButtons
default
name link translation
English
//cloudcmd.io
на Английском
name link translation
Ukrainian
//ua.cloudcmd.io
на Украинском
name link translation
Russian
//ru.cloudcmd.io
на Русском
true

Cloud Commander 10.3.0

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

Cloud Commander

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

  • Открытый код (MIT License).
  • Две классические панели.
  • Возможность авторизации.
  • Клиент работает в веб браузере.
  • Сервер работает под Windows, Linux, Mac OS и Android (при помощи Termux).
  • Может использоваться локально или удаленно.
  • Адаптируется под размер экрана.
  • 3 встроенных редактора с поддержкой подсветки синтаксиса: Dword, Edward и Deepword.
  • Консоль с поддержкой стандартной командной строки ОС.
  • Написан на JavaScript/Node.js.

Установка

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

  • установить последнюю версию node.js, если Вы этого еще не сделали.
  • установить 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 закрыть

Горячие клавиши 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 перед сохранением              */
    "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 может работать в режиме одной панели, в том случае, если размер экрана не позволяет разместить вторую панель. Такое может случится в случае использования мобильного, планшета или маленького окна браузера для взаимодействия с файловым менеджером.

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

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

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. Как это сделать? Существует несколько простых и быстрых вариантов. Один из них - перенаправление портов.

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

Присоединяйтесь

Существует масса способов поучаствовать в разработке Cloud Commander:

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

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