No description
Find a file
2013-09-27 10:22:17 +03:00
bin feature(cloudcmd) add bin 2013-07-12 15:07:51 +00:00
css feature(css) .cmd-button (601px - 785px): 15% -> 13% 2013-09-16 12:41:48 +00:00
font added font files 2013-01-24 11:06:42 -05:00
html feature(index) rm "if lt IE" 2013-09-13 10:27:40 +00:00
img feature(favicon) add 2013-07-08 03:26:44 -04:00
json feature(config) add localStorage 2013-09-18 14:33:40 +00:00
lib feature(edit) showMessage color: rgb(49, 123, 249) -> #D1F1A9; background-color: white -> #7285B7 2013-09-27 06:55:53 +00:00
shell chore(cloudcmd) {github.com/coderaiser/cloudcmd,coderaiser.github.io/cloudcmd} -> cloudcmd.io 2013-09-25 14:41:28 +00:00
ssl changed ssl 2013-03-07 08:21:45 -05:00
test fix(test) ls lib/*.js -> ls lib/client/*.js 2013-09-12 17:49:36 +03:00
.gitignore added ability to get directory size, when space button is pressed and current file is directory. 2013-04-08 03:35:46 -04:00
.travis.yml chore(travis) add node.js v0.11 2013-08-30 10:59:21 +03:00
ChangeLog feature(cloudcmd) v0.3.0 -> v0.4 2013-09-27 07:19:31 +00:00
ChangeLog.rus.md chore(minify) v0.2.0 -> v0.2.1 2013-07-31 15:16:17 +00:00
cloudcmd.js chore(cloudcmd) indexProcessing: add /* min, normal */ 2013-09-24 10:44:17 +00:00
CONTRIBUTING.md docs(contributting) "type(scope): subject" -> "type(scope) subject" 2013-09-18 11:12:29 +00:00
LICENSE doc(license) add 2013-06-23 13:40:06 -04:00
manifest.yml added cloudfoundry manifest 2013-04-19 11:39:20 +03:00
package.json feature(cloudcmd) v0.3.0 -> v0.4 2013-09-27 07:19:31 +00:00
README.md docs(readme) version history: add v0.4 2013-09-27 10:22:17 +03:00

Cloud Commander v0.4 [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL]

###[Main][MainURL] [Blog][BlogURL] [Demo][DemoURL] [![Flattr][FlattrIMGURL]][FlattrURL] [NPMIMGURL]: https://badge.fury.io/js/cloudcmd.png [BuildStatusIMGURL]: https://secure.travis-ci.org/coderaiser/cloudcmd.png?branch=master [DependencyStatusIMGURL]: https://gemnasium.com/coderaiser/cloudcmd.png [FlattrIMGURL]: http://api.flattr.com/button/flattr-badge-large.png [NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png?downloads=true&&stars [NPMURL]: http://badge.fury.io/js/cloudcmd [BuildStatusURL]: http://travis-ci.org/coderaiser/cloudcmd "Build Status" [DependencyStatusURL]: https://gemnasium.com/coderaiser/cloudcmd "Dependency Status" [FlattrURL]: https://flattr.com/submit/auto?user_id=coderaiser&url=github.com/coderaiser/cloudcmd&title=cloudcmd&language=&tags=github&category=software "flattr" [NPM_INFO_URL]: https://npmjs.org/package/cloudcmd "npm" [MainURL]: http://cloudcmd.io "Main" [BlogURL]: http://blog.cloudcmd.io "Blog" [DemoURL]: http://io.cloudcmd.io "Demo"

Cloud Commander - cloud file manager with console and editor.

Cloud Commander

Benefits

  • full browser compatibility (ie6+,chrome,safari,opera,firefox);
  • responsible design
  • one full page loading, and then just one-time json-dir-listings loading (with refresh opportunity).
  • caching read directories to localStorage (for now) (so if network will disconnected or something happens with a signal, we definitely will can work with cached copy of directory listings);
  • key binding
  • disabled js support (working in limited mode).
  • automated minification client js-files and onstart-reading Cloud manager files on server starting.

Cloud Commander uses all benefits of js, so if js is disabled, we go to limited mode.

Limited-mode features

  • no keybinding
  • no local caching
  • full loading of all web page(with styles, js-scripts, html-page etc).

Hot keys

In all modern web browsers (but not in IE, becouse he special) hot keys works. There is a short list:

  • F1 - help
  • F2 - rename current file
  • F3 - view
  • F4 - edit
  • F5 - copy
  • F6 - rename/move
  • F7 - new dir
  • F8, Delete - remove current file
  • F9 - menu
  • Ctrl + r - reload dir content
  • Ctrl + d - clear local cache (wich contains dir contents)
  • Alt + q - disable key bindings
  • Alt + s - get all key bindings back
  • Ctrl + a - select all files in a panel
  • up, down, enter - filesystem navigation
  • Tab - move via panels
  • Page Up - up on one page
  • Page Down - down on one page
  • Home - to begin of list
  • End - to end of list
  • Shift + Delete - remove without prompt
  • Insert - select current file
  • Shift + F10 - context menu
  • ~ - console

Viewer's hot keys

  • F3 - open
  • Esc - close

Editor's hot keys

  • F4 - open
  • Ctrl + s - save
  • Esc - close

Menu

Right mouse click button shows context menu with items:

  • View
  • Edit
  • Rename
  • Delete
  • Upload to (Dropbox, Github, GDrive)
  • Download
  • New (File, Dir, from cloud)

Install

[![NPM_INFO][NPM_INFO_IMG]][NPM_INFO_URL]

Installing Cloud Commander is very simple. All you need is

  • install node.js
  • download and unpack or just clone repository from github:
    git clone git://github.com/coderaiser/cloudcmd.git
    cd cloudcmd
    node cloudcmd

or install in npm:

    npm i cloudcmd -g
    cloudcmd

Configuration

All main configuration could be done via config.json.

{
    "api_url"           :"/api/v1",
    "appcache"          : false,    /* cache files for offline use              */
    "analytics"         : true,     /* google analytics suport                  */
    "localStorage"      : true,     /* cache directory data                     */
    "minification" : {              /* minification of js,css,html and img      */
        "js"    : false,            /* minify module needed                     */
        "css"   : false,            /* npm i minify                             */
        "html"  : true,
        "img"   : false
    },
    "cache"             : true,
    "logs"              : false,     /* logs or console ouput                    */
    "show_keys_panel"   : true,      /* show classic panel with buttons of keys  */
    "server"            : true,      /* server mode or testing mode              */
    "socket"            : true       /* enable web sockets                       */
    "port"              : 8000,      /* http port or null(default)               */
    "sslPort"           : 443,       /* https port or null(default)              */
    "ip"                : null,      /* ip or null(default)                      */
    "ssl"               : false      /* should use https?                        */
    "rest"              : true       /* enable rest interface                    */
}

Server

Standard practices say no non-root process gets to talk to the Internet on a port less than 1024. Anyway I suggest you to start Cloud Commander as non-root. How it could be solved? There is a couple easy and fast ways. One of them is port forwarding. ###Iptables Just run shell/addtables.sh for default options.

@:/tmp/cloudcmd (dev) $ sudo iptables -t nat -L # look rules before
@:/tmp/cloudcmd (dev) $ sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8000
@:/tmp/cloudcmd (dev) $ sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 4430
@:/tmp/cloudcmd (dev) $ sudo iptables -t nat -L # look rules after

You should see something like this ( 8000 and 4430 should be in config as port and 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

If you would want to get things back just clear rules ( 1 and 2 it's rule numbers, in your list they could differ).

@:/tmp/cloudcmd (dev) $ sudo iptables -t nat -D PREROUTING 2
@:/tmp/cloudcmd (dev) $ sudo iptables -t nat -D PREROUTING 1

###nginx Get nginx. On linux it could be done like that

sudo apt-get install nginx #for ubuntu and debian

Than make host file /etc/nginx/sites-enabled/io.cloudcmd.io ( io.cloudcmd.io is your domain name) with content:

server {
    listen 80;
    server_name io.cloudcmd.io;
    access_log /var/log/nginx/io.cloudcmd.io.access.log;
    location / {
        proxy_pass    http://127.0.0.1:8000/;
    }
}
# create symlink of this file
ln -s ./sites-enabled/io.cloudcmd.io ./sites-available
# restart nginx
/etc/init.d/nginx restart

To run Cloud Commander as daemon in linux you could set log to true in config and do something like this:

nohup node cloudcmd

Authorization

Cloud Commander could authorize clients on GitHub via openID. All things that should be done is must be added id and secret of application from github settings page and added to modules.json (id just) and env variable (secret) with names: github_id, github_secret, dropbox_key, dropbox_secret etc in secret.bat (on win32) or secret.sh (on nix).

Start

To start Cloud Commander only one command needed:

node cloudcmd

or on win platform just

cloudcmd

After that Cloud Commander reads port information from config file config.json and start server on this port ( 8000 by default ), if none of port varibles ( cloud9, cloudfoundry and nodester ) isn't exist. Then type in browser

http://127.0.0.1:8000

or

http://localhost:8000

Update

Cloud Commander is very often updates. Update is doing automagically but it could be done also manualy by typing a few commands in cloudcmd directory:

git pull

or check new version on npm

npm info cloudcmd

and then, if there is new version

npm r cloudcmd
npm i cloudcmd

Additional modules

Cloud Commander's Server Side not using additional modules for main functionality. But for minification and optimization tricks optional can be assingned (and installed) modules: [Minify] (https://github.com/coderaiser/minify "Minify") and [socket.io] (https://github.com/LearnBoost/socket.io "Socket.IO").

Install addtitional modules (type in Cloud Commander directory):

npm i

Extensions

Cloud Commander desinged to easily porting extensions. For extend main functionality Cloud Commander use next modules:

Contributing

If you would like to contribute - send pull request to dev branch. Getting dev version of Cloud Commander:

git clone git://github.com/coderaiser/cloudcmd.git
git checkout dev

It is possible that dev version of Cloud Commander will needed dev version of Minify, so to get it you should type a couple more commands:

cd node_modules
rm -rf minify
git clone git://github.com/coderaiser/minify
git checkout dev

Version history

License

MIT license.

Special Thanks