shuss v1.1.0
shuss - super http u* static server 
Super simple yet comprehensive static files server. Shuss :ski:
u*: pick one
- uber
- unicorn
- universal
- ubuesque
- unix
- uhuhuh
Installation
Shuss requires Node.js to run.
npm install shussYou'd probably want it in available globally, with:
npm install -g shussLivereload
To enjoy the pleasure of the livereload feature, just follow the official browser extension installation guide. Easy.
Settings
Shuss loads settings in that order:
defaultsenv-f <file>cli args
There are very few settings, all defaulted.
- port:
1234 - dir:
'.' - livreload:
false - livereloadport:
35729 - verbose:
false
CLI usage
$ > shuss -h
shuss [options...]
Options:
-d, --dir Served files directory [default: "."]
-p, --port Runs Shuss on the specified port [default: "1234"]
--verbose Speak to me
-l, --livereload Enables LiveReload
--livereload_port Runs LiveReload on the specified port [default: "35729"]
-f, --file Config file path
-v, --version Return actual Shuss version
-h, --help Displays Shuss helpDefault usage:
$ > shuss
info: serving /Users/arnaud/projects/shuss on http://0.0.0.0:1234Specific port and livereload (on default port):
$ > shuss -p 6543 -l
info: serving /Users/arnaud/projects/shuss on http://0.0.0.0:6543Now with verbose, specified, port and livereload port
$ > shuss -p 6543 --verbose -l --livereload_port 6523
info: serving /Users/romain/Projects/shuss on http://0.0.0.0:6543
debug: starting server on port 6543
debug: starting livereload server on port 6523ENV variables
Shuss can load settings from these self-explanatory values:
SHUSS_PORTSHUSS_LRSHUSS_LR_PORTSHUSS_DIRSHUSS_VERBOSE
JSON File
You can specify a config file to load:
$ > shuss -f config.jsonIt is expected to contain json, like in this:
$ > cat config.json
{
"port":8000,
"livereload": true,
"livereloadport": 9854,
"verbose": true,
"dir": "./public"
}plugins
While being very simple, Shuss can handle complexe plugins.
Using a plugin
To use a plugin, you will probably have to install them in the same scope as shuss. Chances are you must install them globaly:
npm i -G shuss-my-awesome-pluginThen, you just have to specify the comma separated list of plugins you want to use, along with their own arguments. Here is an example with shuss-basic-auth
shuss --plugins basic-auth --username admin --password foobarAvailable plugins
- shuss-basic-auth: basic HTTP auth plugin
Writing a plugin
A plugin is a npm package prefixed by shuss-. Plugins can act on:
You are allowed to add your own cli args.
All they have to define is a load(app, express, config) function. See the basic-auth example.
Development
All Shuss Node.js module are written in CoffeeScript.
In order to use correctly the shuss binary, you have to compile them in JavaScript.
It can be done through:
$ grunt coffee:compileOr more easily:
$ gruntTodo
Features
- test config solver, urgent, not how to do it yet, maybe
node-env-file - any idea?
Integration
So much to do!
- grunt-shuss
- gulp-shuss
- atom-shuss
- sublime-shuss
- younameit-shuss
Contributing
License
Released under the MIT License. See the LICENSE file for further details.