earlybird

A quick and easy to setup web server for earlybird development and even more.

npm install earlybird
12 downloads in the last week
25 downloads in the last month

earlybird

A quick and easy to setup web server for earlybird development and even more.

Installation

npm install earlybird -g

Run

cd /path/to/my/sources
earlybird

Starting parameters overview

p        a standard port different from 80
www        a static assets path different from current directory

s        set a service method script
u        a service url prefix different from 'service' (http://localhost/service/demo)

ws        use WebSockets by setting a sockets method script

ssl        start with ssl support (on port 443)
h        a host name different from localhost (for ssl)
nohttp    do not run standard http server and start only https proxy listening on port `-p` (default is 80)

a       set a basic auth user account given by `username:password`
amsg    set a basic auth message
aall    use basic auth for all files

Usage of a service

To integrate a service, place a service script like this in your working directory and name it, e.g. service.js:

var serviceCallback = function (serviceName, postData, callback) {
    var responseData = {};
    switch (serviceName) {
        // call with http://localhost/service/demo
        case 'demo':
            responseData = {demo: 'hello'};
            break;
    }
    return responseData;
};

exports.service = serviceCallback;

Refer to this script by starting with --s parameter. Services have a special path in your url (default is http://localhost/service). If you'd like to set a different path name, start with --u parameter:

earlybird --s=service --u=example/service        # run service with http://localhost/example/service

To call services from frontend you can copy jquery.service.js to your working directory. Adjust it to your needs and call it like that:

$(document).ready(function() {
    $.callService('demo', {}, function(response){
        // something inside the success callback..
    });
});

Or do something else.

WebSockets

To use WebSockets, install socket.io first (npm install socket.io -g). After that start earlybird server with --ws attribute.

earlybird --ws=sockets

Calling services from frontend is shown in example as well.

$(document).ready(function() {
    $(document).initSocket(function(){
        $(document).callSocket('hello', {id: '123'}, function (response) {
            // something inside the socket callback..
        });
    });
});

At the moment there are problems running WebSockets with SSL.

SSL support

To run earlybird server with ssl, install http-proxy first (npm install http-proxy -g) and start with --ssl parameter. Optionally set another host name with --h. SSL needs a (self-signed) ssl certificate. It has to be placed inside a folder named ssl in your working directory. Place here both files localhost.key and localhost.cert. Actually SSL is only supported on port 443.

earlybird --ssl --h "abc.de"

Basic authentication

Content file types as images, audio or video files as well as JSON data can be protected by an simple basic authentication. It is also used for javascript files. Other file types like HTML or CSS/LESS can pass unauthorized.

To use earlybird server with basic auth, run with --a and a user/password combination seperated by a ":". A different auth message can be set by --amsg. To expand basic auth to all files, set flag --aall.

earlybird --a username:password --amsg "Please tell me who you are" -aall
npm loves you