Super simple yet comprehensive static files server. Shooss 🎿
Based on Shuss by ArnaudRinquin
Shooss requires Node.js to run.
npm install shoossYou'd probably want it in available globally, with:
npm install -g shoossTo enjoy the pleasure of the livereload feature, just follow the official browser extension installation guide. Easy.
Shooss 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
$ > 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 helpDefault usage:
$ > shooss
info: serving /Users/arnaud/projects/shooss on http://0.0.0.0:1234Specific port and livereload (on default port):
$ > shooss -p 6543 -l
info: serving /Users/arnaud/projects/shooss on http://0.0.0.0:6543Now 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 6523Shooss can load settings from these self-explanatory values:
SHUSS_PORTSHUSS_LRSHUSS_LR_PORTSHUSS_DIRSHUSS_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:compileOr 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.
