shuss
v1.1.0
Published
Super simple yet comprehensive static files server. Shuss
Downloads
1
Readme
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 shuss
You'd probably want it in available globally, with:
npm install -g shuss
Livereload
To enjoy the pleasure of the livereload feature, just follow the official browser extension installation guide. Easy.
Settings
Shuss loads settings in that order:
defaults
env
-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 help
Default usage:
$ > shuss
info: serving /Users/arnaud/projects/shuss on http://0.0.0.0:1234
Specific port and livereload (on default port):
$ > shuss -p 6543 -l
info: serving /Users/arnaud/projects/shuss on http://0.0.0.0:6543
Now 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 6523
ENV variables
Shuss can load settings from these self-explanatory values:
SHUSS_PORT
SHUSS_LR
SHUSS_LR_PORT
SHUSS_DIR
SHUSS_VERBOSE
JSON File
You can specify a config file to load:
$ > shuss -f config.json
It 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-plugin
Then, 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 foobar
Available 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:compile
Or more easily:
$ grunt
Todo
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.