Skip to content

Latest commit

 

History

History
770 lines (670 loc) · 44 KB

v10.1.0.md

File metadata and controls

770 lines (670 loc) · 44 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.1.0

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

Cloud Commander

Переваги

  • Відкритий код (MIT License).
  • Має дві класичні панелі.
  • Можливість авторизації.
  • Клієнт працює у веб браузері.
  • Сервер працює під Windows, Linux, Mac OS та Android (за допомогою Termux).
  • Може використовуватись локально або віддалено.
  • Підлаштовується під розмір екрану.
  • Три вбудовані редактори з підтримкою підсвітки синтаксису: 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"
--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:

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

Щира подяка:

  • Олена Заліток за logo та favicon.
  • TarZak
    • Російський та український переклади;
    • налаштування: шаблон та стилі