Cloud Commander

Хмарний файловий менеджер з консоллю та редактором

Подивитись на GitHub

Виправити помилку на сайті
Зв'язатися з автором

Cloud Commander 18.3.0

Головна Блог Підтримати

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 новий файл
Shift + Delete знищити без підтвердження
F8, 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,      /* показувати статус файлових операцій                         */
    "htmlDialogs"       : true       /* показувати html діалоги                                     */
}

Меню

Меню

Натискання на праву клавішу мишки, викликає меню з наступними пунктами:

Гарячі клавіші

Клавіша Дія
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'
];

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

// перевизначити налаштування з json/modules.json
const modules = {
    filePicker,
};

app.use(cloudcmd({
    socket,  // використовується Config'ом, Edit'ом (не обов'язково) та Console'ллю (обов'язково)
    config,  // дані налаштуваннь (не обов'язково)
    plugins, // не обов'язково
    modules, // не обов'язково
}));

server.listen(port);

Сервер

Зазвичай процеси, що запущено з правами не root не можуть прослуховувати порти нижче ніж 1024. В будь-якому випадку, краще запускати Cloud Commander не під рутом. Як це зробити? Існує декілька простих і швидких шляхів. Один з них - просування портів через iptables.

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 rules 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 2
iptables -t nat -D PREROUTING 1

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.

Розгорнути на 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:

Історія версій

Щира подяка: