GithubHelp home page GithubHelp logo

coderaiser / cloudcmd Goto Github PK

View Code? Open in Web Editor NEW
1.8K 44.0 252.0 34.9 MB

✨☁️📁✨ Cloud Commander file manager for the web with console and editor.

Home Page: https://cloudcmd.io

License: MIT License

JavaScript 93.35% CSS 3.98% HTML 1.06% Dockerfile 0.10% Handlebars 1.52%
file-manager mit commander console editor windows linux macos android docker

cloudcmd's Introduction

Cloud Commander v17.4.0 Build Status Codacy Gitter

Cloud Commander a file manager for the web with console and editor.

Cloud Commander

Install

npm i cloudcmd -g

Start

For starting just type in console:

cloudcmd

How to use?

Open url http://localhost:8000 in browser.

View

You will see something similar to this. View

Deploy

Cloud Commander could be easily deployed to Heroku.

Deploy

Using as Middleware

Cloud Commander could be used as middleware for node.js applications based on socket.io and express:

Init package.json:

npm init -y

Install dependencies:

npm i cloudcmd express socket.io -S

And create index.js:

import http from 'node:http';
import cloudcmd from 'cloudcmd';
import {Server} from 'socket.io';
import express from 'express';

const app = express();

const port = 1337;
const prefix = '/';

const server = http.createServer(app);
const socket = new Server(server, {
    path: `${prefix}socket.io`,
});

const config = {
    name: 'cloudcmd :)',
};

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

// override option from json/modules.json
const modules = {
    filePicker,
};

const {
    createConfigManager,
    configPath,
} = cloudcmd;

const configManager = createConfigManager({
    configPath,
});

app.use(prefix, cloudcmd({
    socket, // used by Config, Edit (optional) and Console (required)
    config, // config data (optional)
    modules, // optional
    configManager, // optional
}));

server.listen(port);

Docker

The docker images are provided for multiple architectures and types. The following list shows all existing images:

Architecture Type
amd64 linux
arm64 (arm/v8) linux
amd64 linux-alpine
arm64 (arm/v8) linux-alpine

Cloud Commander could be used as a docker container this way:

docker run -it --rm -v ~:/root -v /:/mnt/fs -w=/root -p 8000:8000 coderaiser/cloudcmd

Config would be read from home directory, hosts root file system would be mount to /mnt/fs, 8000 port would be exposed to hosts port.

Also you could use docker compose with docker-compose.yml:

version: '2'
services:
  web:
    ports:
      - 8000:8000
    volumes:
      - ~:/root
      - /:/mnt/fs
    image: coderaiser/cloudcmd

When you create this file run:

docker-compose up

Documentation

More documentation you can find on https://cloudcmd.io/.

Get involved

There is a lot ways to be involved in Cloud Commander development:

License

MIT

cloudcmd's People

Contributors

brianmcmichael avatar brunoamaral avatar cintolas avatar coderaiser avatar davidrapin avatar drane avatar fossabot avatar frakman1 avatar hoalongntc avatar ihatemyisp avatar j35tor avatar jzaefferer avatar machuu avatar makeros avatar manoellobo avatar markkey014 avatar matteocontrini avatar max8rr8 avatar onedr0p avatar piamancini avatar slyw avatar tarzak avatar timoknapp avatar twome avatar whitespine avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cloudcmd's Issues

Права файла

Хотелось бы иметь возможность выставлять права на файлы, в т.ч. масово (управлять атрибутами). Это основное. Из мелочей - было бы здорово составлять списки проигрывания аудио и видео, и что бы настройки ( в т.ч. звука) сохранялись). Сейчас проигрывается по одному ...

Благодарю за отличное приложение!

Из ошибок. не уверен что это ошибка. задумал сначала, при перебросе портов в nginx привязать не в корень домена, а в папку допустим /cmd/. Слетели все стили и скрипты, видимо пути до них так прописаны.. Я уж не смог разобраться где и что править.

Корневой каталог

Здравствуйте
у меня такой вопрос ... у меня есть единый каталог для хранения файлов, но для определенных пользователей, нужно указать, какой у них каталог является корневым

в описании параметров, вижу. что есть параметр --root который указывает корневой каталог для файлового менеджера

есть ли у вас поддержка динамической смены корневого каталога? т.е. для каждого пользователя, так сказать он должен выставляться на лету, в соответствии с настройками системы, и при этом в самом ФМ авторизация должна быть отключена

Docker image for 5.7.0 is not working

  • Version (cloudcmd -v): 5.7.0
  • Node Version node -v: N/A
  • OS (uname -a on Linux): N/A
  • Browser name/version: N/A

Hello I think the latest docker image of cloudcmd is broken, here is what I have:

\> docker run --rm coderaiser/cloudcmd:5.7.0-alpine
module.js:471
    throw err;
    ^

Error: Cannot find module 'currify'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/src/app/node_modules/deepword/server_/index.js:9:17)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)

5.6.2 version is working fine:

\> docker run --rm coderaiser/cloudcmd:5.6.2-alpine
url: http://localhost:8000/
update available: v5.7.0 (current: v5.6.2)

The problem remains the same wether or not I use the -alpine image.
Sorry I don't have the time to investigate what's wrong inside the container further more, I hope you'll find it easily.

Console - Interactive mode

Hey,

is there any way to use applications which require interactive mode with the console? In my case it is a python app using the urwid lib which doesn't support non-interactive.

View of image file

Doesn't show the image. Console log reports "Uncaught TypeError: DOM.getSelectedNames is not a function (view.js:188)". Tested on Chromium and Firefox.

Proxy to nginx is not working

after creating nginx hostfile
this error appears on my browser

ENOENT, lstat '/usr/lib/node_modules/cloudcmd/manager'

and i can't find .cloudcmd.json file

Err 340

Just follow installation but I had this error

pi@raspberrypi:~$ node cloudcmd

module.js:340
    throw err;
          ^
Error: Cannot find module '/home/pi/cloudcmd'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3

Support offline use

I'm sure you've seen Mozilla's makedrive it'd be incredibly awesome if cloudcmd could either support makedrive or some offline editing functionality.

In Makedrives case they store contents of the files in an IndexedDB and whenever connection is lost and regained they preform an rsync. This enables users to either start with no connection (ServiceWorker) or lose connection to the server and reconnect and have changes propagate.

You may also be interested in investigating Bramble which is Adobe's Brackets on top of Filer (used to be on top of makedrive before humphd/brackets@1b463dc)

Other resources:
https://etherpad.mozilla.org/thimble-plublish-plan

Another offline browserFS implementation (mirroring node-fs): https://github.com/jvilk/BrowserFS

Не работает c electron.atom.io

При попытке запустить в окружении electron.atom.io получаем ошибку Uncaught Error: Cannot find module 'execon' module.js:341

Cannot extract compressed archives.

  • Version (cloudcmd -v): v5.7.0 (Dockerized version)
  • OS: Windows
  • Browser name/version: Chrome

Uploaded a 7z, zip, tar, and none can be extracted using a right click > extract. Tried however using the terminal from cloudcmd and it worked (for the tar at least). Also it didn't show any error.

Contact form can't be closed

Cloudcmd ver 2.5.0
Once the Contact form is opened it can't be closed without sending. It can be minimized but there is no way to close it.

Right click menu not available if root directory is empty.

If the directory defined as the root for cloudcmd is empty, right click shows plain right click menu, and none of the functionality works. This is resolved as soon as one file is available in the root directory.

Tested on 3.4.0, but release notes for 3.5.0 don't indicate any changes that would resolve this issue.

Editor polling error when running as middleware

App is running as express middleware with prefix pun/dev/cloudcmd/

The default editor is attempting to poll socket.io on the server, but it is affixing the entire app prefix, which includes the cloudcmd app name. The socket.io app was deployed by the installer into the same node_modules directory as the cloudcmd app, so the appropriate prefix would be pun/dev/socket.io in this case.

It seems that the editor needs to be informed to step back a directory from the prefix to connect to socket.io. Alternatively, cloudcmd maintains it's own node_modules folder, but socket.io isn't present in that path. Perhaps adding socket.io to cloudcmd/node_modules/socket.io would also resolve this issue. I haven't had a chance to experiment with it yet, but I'm reporting it here in case you have any thoughts.

The editor begins polling on open:
pollingerror

Poller gets 404 from invalid path:
pollingerror2

Icons in the top of each pane apply to the pane with focus, not to their parent pane

If you are viewing two panes in the same directory and you create a file in the first, and then you click the refresh button in the second (without bringing the focus to a file or folder in the second), the refresh icon in the second pane will refresh the first pane.

Tested on 3.4.0. The release notes for 3.5.0 don't indicate a fix for this issue.

Интерфейс

Подскажите, как я могу настроить интерфейс, так как мне нужно
например

  1. убрать в футере некоторые кнопки. чтобы не было желания туда тыкнуть
  2. отключить некоторые пункты контекстного меню

... еще, раз ФМ мультиязычный ... интересно, почему не реализованы локализации

api ignores the context root

hi,

the api still ignores the context root.

replicate:
server1:
setup cloudcmd with a context root

server2:
do a proxypass to the other server for that context root

on server 2, you cannot download since it tries to get server2/api which is not defined.
of course, on server1, you can download, since it tries to get server1/api which is available.

Drag & drop of folder misses some files

  • Version (cloudcmd -v): v5.7.0 (Docker container running on Linux)
  • Browser: Chrome (latest stable)

Drag & drop of a folder from Windows to cloudcmd will miss the content of some files and not extract some other files. Try with a bunch of random binary files.

Drop & drop a folder from cloudcmd to Windows will generate a tar.gz that 7-zip says is invalid: Unexpected end of input.

Note: Tried on both the alpine and nodejs based versions.

Проблема апгрейда

From @krot4u on March 20, 2015 12:25

Проблема с установкой.
Как удалить и почистить от старой версии систему?
Стояла еще 0.9 версия
Пытался накатить 2.2.1

Copied from original issue: coderaiser/article#3

-p password argument ignored when starting cloudcmd

Hi,

I tried cloudcmd through Docker, using the following command:

docker run -d -p 8000:8000 coderaiser/cloudcmd:5.2.3 npm start -- --root /data -u admin -p sOmEpAsSwOrD

However, the -p password parameter seems to be ignored. cloudcmd runs perfectly, but I can access it without giving any password. So, everyone can access.

Is this a bug or did I miss anything?

Thanks!

Johannes

Space key does not work as expected

Cloudcmd v.2.5.0
I looked at the source code and see that Space key should work as Pause/Resume button.
In Chrome it does not work in this way.
How to reproduce:

  • open cloud commander
  • find video file and click it
  • click F3 screen button using mouse(!)
    A media player is started. But F3 still has a focus and the Space key reloads the file viewer.
    If media file viewer is triggered by hardware F3 key it works as expected.

Права доступа

Подскажите, каким образом в вашем ФМ можно изменить права доступа к файлам и каталогам? по этому поводу я вообще нигде никаких упоминаний не встретил, и функционала так же не вижу

Not working

Not working on Ubuntu 14.04
$ cloudcmd -v
$
$ cloudcmd -h
$
On localhost:8000 nothing

file sorting

Can I sort my files by date or name? I couldn't and any option to do so.

Проблема апгрейда

From @krot4u on March 20, 2015 12:25

Проблема с установкой.
Как удалить и почистить от старой версии систему?
Стояла еще 0.9 версия
Пытался накатить 2.2.1

Copied from original issue: coderaiser/article#3

Auth doesn't work

When I change the password, either in web console, or in config, nothing happens, it is still available without authentication.

showing the date modified

hi,

we are using this app alot, it is excellent.

a user was asking if there is any way to show the modified date with the file list? (e,g, rather than the owner).

как использовать auth авторизацию

В конфиге пишу

    "auth"              : true,    
    "username"          : "root",   
    "password"          : "my_password",   
    "algo"              : "sha512WithRSAEncryption", 
...

В браузере ввожу юзера и пароль - говорит не верный пароль.
Спасибо.

  • Version (cloudcmd -v):
  • Node Version node -v:
  • OS (uname -a on Linux):
  • Browser name/version:

Can't download beyond 1GB

When I try to download a file bigger than 1 GB, owncloud stops at 1GB exactly.

Example: File size is 3,2 GB. Download starts and finishes after downloading 1GB.

v 3.2.0

эта версия ФМ не обновляется и не устанавливается на nodejs 0.12.4

npm ERR! Windows_NT 6.2.9200
npm ERR! argv "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "i" "cloudcmd" "-g"
npm ERR! node v0.12.4
npm ERR! npm  v2.10.1
npm ERR! path C:\Users\Администратор\AppData\Roaming\npm\node_modules\cloudcmd
npm ERR! code EISGIT

npm ERR! git Appears to be a git repo or submodule.
npm ERR! git     C:\Users\Администратор\AppData\Roaming\npm\node_modules\cloudcmd
npm ERR! git Refusing to remove it. Update manually,
npm ERR! git or move it out of the way first.

On Android with Termux

Just thought you might find it cool (I do) that this works rather well on android under Termux.
I use it on an a95x (a real cheap android tv box) to transfer files and edit scripts.
The console is so handy.
Thanks!

localStorage

увидел, что для своей работы ФМ использует localStorage, не проще ли использовать для его работы sessionStorage? тогда не будет необходимости принудительно очищать историю, при заполнении localStorage

Dropbox Err 400, Gdrive and OneDrive Nothing happens

I had this error with upload to Dropbox
This is the pop-up window

Error (400)
It seems the app you were using submitted a bad request. If you would like to report this error to the app's developer, include the information below.


More details for developers

Invalid redirect_uri: u'http://127.0.0.1:8000/html/auth/dropbox.html'. It must exactly match one of the redirect URIs you've pre-configured for your app (including the path)

I try GDrive and OneDrive too but nothing happens

Recent change breaks file upload.

I'm not sure where the change occurred yet, but a recent update broke the file upload capability. (A recent change to (client.js), I think?

It appears that the prefix and API url is being added twice to the request.

virtualbox_ubuntu 15 10 ssd_10_03_2016_11_01_04

Downloads are not affected.

Allow for file permission control.

It may be a good idea to include a file permission modifier using fs.chmod() CloudCmd already displays these permissions, but there is no way to modify them.

2016-03-10 4

As an example, our current file manager is an old version of AjaxExplorer (now Pydio) that includes this feature as a context menu. I have included images below of how that looks.

This would actually probably be a feature that would need to be added to Restafary, with the cloudcmd client sending the request to make the modification.

Context Menu:
permissionscontext

Modify permissions:

permissions selection

Command line args to disable config dialog and console

Hi,

The Cloud Commander provides this config dialog (e.g. by pressing F10) to change some parameters.
Wouldn't it be great to have a command-line argument available to disable this config dialog? For example:

cloudcmd --no-config-dialog

This is because some of the config options are not meant to be changed by a user such as the port or the root directory, or even the auth credentials. Same is true for the console dialog, which also provides too much access for some use cases. So another option would be nice:

cloudcmd --no-console

Johannes

Cannot download a files containing #

  • Version (cloudcmd -v): v5.7.0 (Dockerized version)
  • OS: Windows
  • Browser name/version: Chrome

If a file contains # in its name, drag & drop of that file to the local file explorer will fail: Browser says cannot find the file.

My guess is that # is not escaped which leads to probably other filenames other that are not working.

documents preview

Do you plan to include in distribution something like ViewerJS to make it possible to preview DOC, ODT, PDF etc. documents (as it is made in midnight commander throught filters)?

either as middleware or let configure a "client" prefix

hi,
i'm trying to achieve following:
http://host:port/**individual-prefix/**

right now, I only can host in in the webroot (e.g. http://host:port**/**) directory, as soon as i try to add a prefix everysthing breaks (e.g. by routing through nginx with a different location url http://externalurl/mycloudcmd/ -> http://localhost:8000/ ).

maybe I need to set this "client prefix" parameter somewhere? Event though I found "prefix" in the code, I couldn't figure out how to use it. As far as I've seen it, this "prefix" is something else and has not directly anything todo with the client prefix thingy I'm looking for.

So I see two possible solutions (either one would me make happy ;))

  • either provide a config option to set a client prefix
  • allow to use cloudcmd as middleware..

thanks,
looking forward to any kind of feedback :)

regards
simon

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.