Super simple yet comprehensive static files server. Shuss 🎿
u*: pick one
- uber
- unicorn
- universal
- ubuesque
- unix
- uhuhuh
Shuss requires Node.js
to run.
npm install shuss
You'd probably want it in available globally, with:
npm install -g shuss
To enjoy the pleasure of the livereload feature, just follow the official browser extension installation guide. Easy.
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
$ > 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
Shuss can load settings from these self-explanatory values:
SHUSS_PORT
SHUSS_LR
SHUSS_LR_PORT
SHUSS_DIR
SHUSS_VERBOSE
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"
}
While being very simple, Shuss can handle complexe plugins.
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
- shuss-basic-auth: basic HTTP auth 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.
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
- test config solver, urgent, not how to do it yet, maybe
node-env-file
- any idea?
So much to do!
- grunt-shuss
- gulp-shuss
- atom-shuss
- sublime-shuss
- younameit-shuss
Released under the MIT License. See the LICENSE file for further details.