Super simple yet comprehensive static files server. Shooss 🎿
Based on Shuss by ArnaudRinquin
Shooss requires Node.js
to run.
npm install shooss
You'd probably want it in available globally, with:
npm install -g shooss
To enjoy the pleasure of the livereload feature, just follow the official browser extension installation guide. Easy.
Shooss 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
$ > shooss -h
shooss [options...]
Options:
-d, --dir Served files directory [default: "."]
-p, --port Runs Shooss 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 Shooss version
-h, --help Displays Shooss help
Default usage:
$ > shooss
info: serving /Users/arnaud/projects/shooss on http://0.0.0.0:1234
Specific port and livereload (on default port):
$ > shooss -p 6543 -l
info: serving /Users/arnaud/projects/shooss on http://0.0.0.0:6543
Now with verbose, specified, port and livereload port
$ > shooss -p 6543 --verbose -l --livereload_port 6523
info: serving /Users/romain/Projects/shooss on http://0.0.0.0:6543
debug: starting server on port 6543
debug: starting livereload server on port 6523
Shooss 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:
$ > shooss -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, Shooss can handle complexe plugins.
To use a plugin, you will probably have to install them in the same scope as shooss. Chances are you must install them globaly:
npm i -G shooss-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 shooss-basic-auth
shooss --plugins basic-auth --username admin --password foobar
- shooss-basic-auth: basic HTTP auth plugin
A plugin is a npm package prefixed by shooss-
. 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 Shooss Node.js module are written in CoffeeScript.
In order to use correctly the shooss
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-shooss
- gulp-shooss
- atom-shooss
- sublime-shooss
- younameit-shooss
Released under the MIT License. See the LICENSE file for further details.