Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hfreire/serverful
A kickass πͺ web server π with all the bells π and whistles β¨
https://github.com/hfreire/serverful
framework github-actions hapi-server hapijs rest restful restful-api server server-side
Last synced: 10 days ago
JSON representation
A kickass πͺ web server π with all the bells π and whistles β¨
- Host: GitHub
- URL: https://github.com/hfreire/serverful
- Owner: hfreire
- License: mit
- Created: 2017-03-15T18:18:05.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-12-19T17:43:17.000Z (11 months ago)
- Last Synced: 2024-05-02T06:07:34.531Z (6 months ago)
- Topics: framework, github-actions, hapi-server, hapijs, rest, restful, restful-api, server, server-side
- Language: JavaScript
- Homepage:
- Size: 4.73 MB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# A kickass :muscle: web server :scream_cat: with all the bells :bell: and whistles :sparkles:
[![](https://github.com/hfreire/serverful/workflows/ci/badge.svg)](https://github.com/hfreire/serverful/actions?workflow=ci)
[![Coverage Status](https://coveralls.io/repos/github/hfreire/serverful/badge.svg?branch=master)](https://coveralls.io/github/hfreire/serverful?branch=master)
[![Known Vulnerabilities](https://snyk.io/test/github/hfreire/serverful/badge.svg)](https://snyk.io/test/github/hfreire/serverful)
[![](https://img.shields.io/github/release/hfreire/serverful.svg)](https://github.com/hfreire/serverful/releases)
[![Version](https://img.shields.io/npm/v/serverful.svg)](https://www.npmjs.com/package/serverful)
[![Downloads](https://img.shields.io/npm/dt/serverful.svg)](https://www.npmjs.com/package/serverful)> Uses [hapi](https://github.com/hapijs/hapijs) loaded with most important plugins ([Boom](https://github.com/hapijs/boom), [Vision](https://github.com/hapijs/vision), [Inert](https://github.com/hapijs/inert), et al.) and dynamically configures your routes
### Features
* Out-of-the-box `/ping` and a `/healthcheck` (using [health-checkup](https://github.com/hfreire/health-checkup)) endpoints :white_check_mark:
* [Swagger](http://swagger.io) API `/docs` :white_check_mark:
* Response pagination using [hapi-pagination](https://github.com/fknop/hapi-pagination) :white_check_mark:
* Logs HTTP requests and server errors using [modern-logger](https://github.com/hfreire/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
```javascript
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](https://paypal.me/hfreire/5). You can read the [contributing guidelines](CONTRIBUTING.md) for instructions on how to contribute with code.All donation proceedings will go to the [Sverige fΓΆr UNHCR](https://sverigeforunhcr.se), a swedish partner of the [UNHCR - The UN Refugee Agency](http://www.unhcr.org), 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](https://github.com/hfreire/get-me-a-date) - :heart_eyes: Help me get a :cupid: date tonight :first_quarter_moon_with_face:
* [watch-rtp-play](https://github.com/hfreire/watch-rtp-play) - :tv: Watch and :radio: listen π΅πΉ RTP Play without a :computer: browser
* [browser-as-a-service](https://github.com/hfreire/browser-as-a-service) - A web browser :earth_americas: hosted as a service, to render your JavaScript web pages as HTML
* [my-flic-hub](https://github.com/hfreire/my-flic-hub) - My own flic hub :tm: for the :earth_africa: world's smartest :red_circle: button### License
Read the [license](./LICENSE.md) for permissions and limitations.