1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-18 20:09:08 +02:00
unleash.unleash/docs/getting-started.md

73 lines
2.5 KiB
Markdown
Raw Normal View History

2016-12-23 12:00:07 +01:00
# Getting stated
2016-12-02 17:47:13 +01:00
## Requirements
2016-11-30 21:46:40 +01:00
2016-12-02 17:47:13 +01:00
You will need a __PostreSQL__ 9.3+ database instance to be able to run Unleash.
2016-11-30 21:46:40 +01:00
2016-12-02 17:47:13 +01:00
When starting Unleash you must specify a database uri (can be set as environment variable DATABASE_URL)
which includes a username and password, that have rights to migrate the database.
_Unleash_ will, at startup, check whether database migration is needed, and perform necessary migrations.
## Start Unleash
2016-11-30 21:46:40 +01:00
### 1. The simplest way to get started:
```bash
$ npm install unleash-server -g
$ unleash -d postgres://unleash_user:passord@localhost:5432/unleash -p 4242
2017-02-25 08:53:38 +01:00
Unleash started on http://localhost:4242
```
2016-11-30 21:46:40 +01:00
### 2. Or programmatically:
2016-12-02 17:47:13 +01:00
You can also depend on unleash
```js
const unleash = require('unleash-server');
unleash.start({
2017-06-28 16:52:28 +02:00
databaseUrl: 'postgres://unleash_user:passord@localhost:5432/unleash',
port: 4242
}).then(unleash => {
2017-02-25 08:53:38 +01:00
console.log(`Unleash started on http://localhost:${unleash.app.get('port')}`);
});
```
2016-12-02 17:47:13 +01:00
Available unleash options includes:
2016-12-27 13:16:55 +01:00
- databaseUrl
2016-12-02 17:47:13 +01:00
- port
## How do I configure the log output?
By default, `unleash` uses [log4js](https://github.com/nomiddlename/log4js-node) to log important information. It is possible to swap out the logger provider (only when using Unleash programatically). This enables filtering of log levels and easy redirection of output streams.
### What is a logger provider?
A logger provider is a function which takes the name of a logger and returns a logger implementation. For instance, the following code snippet shows how a logger provider for the global `console` object could be written:
```javascript
function consoleLoggerProvider (name) {
// do something with the name
return {
debug: console.debug.bind(console),
info: console.info.bind(console),
warn: console.warn.bind(console),
error: console.error.bind(console)
};
}
```
The logger interface with its `debug`, `info`, `warn` and `error` methods expects format string support as seen in `debug` or the JavaScript `console` object. Many commonly used logging implementations cover this API, e.g. bunyan, pino or winston.
### How do I set a logger provider?
Custom logger providers need to be set *before requiring the `unleash-server` module*. The following example shows how this can be done:
```javascript
// first configure the logger provider
const unleashLogger = require('unleash-server/logger');
unleashLogger.setLoggerProvider(consoleLoggerProvider);
// then require unleash-server and continue as normal
const unleash = require('unleash-server');