Awesome
A kickass :muscle: web server :scream_cat: with all the bells :bell: and whistles :sparkles:
Uses hapi loaded with most important plugins (Boom, Vision, Inert, et al.) and dynamically configures your routes
Features
- Out-of-the-box
/ping
and a/healthcheck
(using health-checkup) endpoints :white_check_mark: - Swagger API
/docs
:white_check_mark: - Response pagination using hapi-pagination :white_check_mark:
- Logs HTTP requests and server errors using modern-logger :white_check_mark:
How to install
npm install serverful
How to use
Use it in your app
Load module and start a server
const Serverful = require('serverful')
const server = new Serverful()
server.start()
Available environment variables
Variable | Description | Required | Default value |
---|---|---|---|
NAME | The name of the app. | false | undefined |
VERSION | The version of the app. | false | undefined |
PORT | The port to be used by the HTTP server. | false | 3000 |
API_KEYS | The secret keys that should be used when securing endpoints. | false | undefined |
SO_TIMEOUT | TCP socket connection timeout. | false | 120000 |
BASE_PATH | Base path to be prefixed to all available endpoint paths. | false | / |
PING_PATH | Endpoint path for pinging app. | false | /ping |
HEALTHCHECK_PATH | Endpoint for checking app health. | false | /healthcheck |
LOG_LEVEL | The log level verbosity. | false | info |
ENVIRONMENT | The environment the app is running on. | false | undefined |
ROLLBAR_API_KEY | The server API key used to talk with Rollbar. | false | undefined |
How to contribute
You can contribute either with code (e.g., new features, bug fixes and documentation) or by donating 5 EUR. You can read the contributing guidelines for instructions on how to contribute with code.
All donation proceedings will go to the Sverige för UNHCR, a swedish partner of the UNHCR - The UN Refugee Agency, a global organisation dedicated to saving lives, protecting rights and building a better future for refugees, forcibly displaced communities and stateless people.
Used by
- get-me-a-date - :heart_eyes: Help me get a :cupid: date tonight :first_quarter_moon_with_face:
- watch-rtp-play - :tv: Watch and :radio: listen 🇵🇹 RTP Play without a :computer: browser
- browser-as-a-service - A web browser :earth_americas: hosted as a service, to render your JavaScript web pages as HTML
- my-flic-hub - My own flic hub :tm: for the :earth_africa: world's smartest :red_circle: button
License
Read the license for permissions and limitations.