Хмарний файловий менеджер з консоллю та редактором
Виправити помилку на сайті
Зв'язатися з автором
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” |
--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 |
закрити |
Клавіша | Дія |
---|---|
~ |
відкрити |
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, /* показувати статус файлових операцій */
"htmlDialogs" : true /* показувати html діалоги */
}
Натискання на праву клавішу мишки, викликає меню з наступними пунктами:
авторизацію
)Клавіша | Дія |
---|---|
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'
];
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.
Просто запустіть 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. В 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
: