Unleash

Unleash

  • Documentation
  • Deploy and manage
  • Integrations
  • Contribute
  • API
  • Enterprise
  • Help

›Deploy & configure

Deploy & configure

  • Getting Started
  • Configuring Unleash
  • Securing Unleash
  • Google Auth Hook
  • Database Backup
  • Migration Guide
  • Import & Export
  • Technical Debt

Getting Started

This section only applies if you plan to self-host Unleash. If you are looking for our hosted solution you should head over to Unleash-hosted.com

Requirements

You will need:

  • Node.js (version 12 or later)
  • PostgreSQL (version 10 or later)
  • Create an unleash user and database.

Start Unleash server

Whichever option you choose to start Unleash, you must specify a database URI (it can be set in the environment variable DATABASE_URL).

Once the server has started, you will see the message:

Unleash started on http://localhost:4242

Option one - use Docker

Useful links:

  • Docker image on dockerhub
  • Unleash Helm Chart on artifacthub

Steps:

  1. Create a network by running docker network create unleash
  2. Start a postgres database:
docker run -e POSTGRES_PASSWORD=some_password \
  -e POSTGRES_USER=unleash_user -e POSTGRES_DB=unleash \
  --network unleash --name postgres postgres
  1. Start Unleash via docker:
docker run -p 4242:4242 \
  -e DATABASE_HOST=postgres -e DATABASE_NAME=unleash \
  -e DATABASE_USERNAME=unleash_user -e DATABASE_PASSWORD=some_password \
  --network unleash unleashorg/unleash-server

Docker-compose

  1. Clone the unleash-docker repository.
  2. Run docker-compose build in repository root folder.
  3. Run docker-compose up in repository root folder.

Option two - from Node.js

  1. Create a new folder/directory on your development computer.

  2. From a terminal/bash shell, install the dependencies:

    npm init
    npm install unleash-server --save
    
  3. Create a file called server.js, paste the following into it and save.

    const unleash = require('unleash-server');
    
    unleash
      .start({
        databaseUrl: 'postgres://unleash_user:password@localhost:5432/unleash',
        port: 4242,
      })
      .then(unleash => {
        console.log(
          `Unleash started on http://localhost:${unleash.app.get('port')}`,
        );
      });
    
  4. Run server.js:

    node server.js
    

Option three - from a terminal/bash shell

(deprecated)

npm install unleash-server -g
unleash -d postgres://unleash_user:password@localhost:5432/unleash -p 4242

Test your server and create a sample API call

Once the Unleash server has started, go to localhost:4242 in your browser. If you see a list of example feature toggles, try modifying one of them with curl from a terminal/bash shell:

curl --location --request PUT 'http://localhost:4242/api/admin/features/Feature.A' --header 'Content-Type: application/json' --data-raw '{\
  "name": "Feature.A",\
  "description": "Dolor sit amet.",\
  "type": "release",\
  "enabled": false,\
  "stale": false,\
  "strategies": [\
    {\
      "name": "default",\
      "parameters": {}\
    }\
  ]\
}'\

Version check

  • Unleash checks that it uses the latest version by making a call to https://version.unleash.run.
    • This is a cloud function storing instance id to our database for statistics.
  • This request includes a unique instance id for your server.
  • If you do not wish to check for upgrades define the environment variable CHECK_VERSION to anything else other than true before starting, and Unleash won't make any calls
    • export CHECK_VERSION=false
Configuring Unleash →
  • Requirements
  • Start Unleash server
    • Option one - use Docker
    • Option two - from Node.js
    • Option three - from a terminal/bash shell
  • Test your server and create a sample API call
  • Version check
Unleash
Docs
Getting StartedSecuring UnleashAPI Reference
Community
User ShowcaseSlack communityUnleash-hosted.comTwitter
More
GitHubStar