Skip to main content

Unleash Edge quickstart

This document helps you get started with Unleash Edge locally.

Why Unleash Edge

Unleash Edge is a lightweight layer between your SDKs and your Unleash instance. It exposes the same HTTP interface as the main Unleash API but is built for higher throughput and lower latency.

Unleash Edge helps you reduce latency for flag resolution by running closer to your users. For example, Unleash Edge could run on a global content-delivery network (CDN) or as part of your cloud or on-premises infrastructure.

Setting up one or more Edge nodes helps you distribute traffic and reduce the load on your Unleash instance. By default, Unleash Edge relies on in-memory caching, but you can configure it to use Redis or the local filesystem.

Prerequisites

Here's what you need before getting started:

  1. An Unleash instance running locally or remotely (version 4.15 or later)
  2. A valid API token for your Unleash instance
  3. Docker installed and running
  4. Your preferred Unleash SDK in a sample app

Run Unleash Edge locally

First, make sure your Unleash instance is running (locally or remotely) and generate a new backend API token.

You can install prebuilt binaries for your OS directly from GitHub Releases:

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Unleash/unleash-edge/releases/download/<version>/unleash-edge-installer.sh | sh
GitHub Releases versioning

Make sure to replace <version> with a valid GitHub Release tag such as v20.1.0.

You can pick a valid version from the list of releases on GitHub.

Then launch it:

unleash-edge edge \
--strict \
--upstream-url <your_unleash_instance> \
--tokens '<your_backend_token>'

Required parameters

Let's break down the parameters you need to replace in the launch command.

<your_unleash_instance>

This is the URL of your Unleash instance.

Use the base URL, e.g. https://app.unleash-hosted.com/testclient or http://localhost:4242.


<your_backend_token>

This API token is required in strict mode, which is recommended since v19.2.

You can generate a new API token by visiting your Unleash instance, under Admin settings > Access control > API access. Click New API token, give it a name, and confirm the default values.

Note: make sure you keep the single quotes in --tokens '...' so the * isn't expanded by your shell.

Update your application code

Before you continue, make sure Unleash Edge is running on port 3063.

You can verify this by fetching http://localhost:3063/internal-backstage/health. This endpoint should respond with {"status":"OK"}.

Then you can start updating your application:

  1. Identify the code or configuration file where the Unleash instance URL is defined.
  2. Update the SDK configuration to use http://localhost:3063.
  3. Make sure the SDK configuration includes a valid API token.
  4. Restart your app and test it.

For example, if you're using the .NET example, update the API URL and token in your .env file:

.env
UNLEASH_API_URL=http://localhost:3063/api
UNLEASH_API_TOKEN=<your_backend_token>

Verify your setup

If you run into issues while connecting your SDK to Unleash Edge, the following commands can help you identify the problem.

# is the local Unleash instance running correctly?
curl http://localhost:4242/health

# is the local Unleash Edge instance running correctly?
curl http://localhost:3063/internal-backstage/health
# or via CLI
unleash-edge health

# is data going through? is my token valid?
curl -H "Authorization: <your_backend_token>" http://localhost:3063/api/client/features

You might encounter some of these common issues:

  • If Unleash Edge logs show "connection refused" to 127.0.0.1:4242 within Docker, you're pointing at localhost inside the container. Use host.docker.internal or a shared Docker network instead.
  • If Unleash Edge logs show "Edge was not able to validate any of the tokens configured at startup" make sure you're using a valid backend token in your startup command.
  • If your SDK logs show "401/invalid token" ensure you're using a valid token from your Unleash instance that matches the environment and project you expect.

Next steps

Congratulations, you've successfully set up Unleash Edge locally!

Unleash Edge offers a lot of flexibility and advanced configuration options worth exploring:

  1. Offline mode - Learn how to configure Unleash Edge to work without an Unleash instance, using a local features file.
  2. Pretrusted tokens - Learn how to explicitly authorize known frontend tokens without upstream validation.
  3. Security considerations in production - Learn how to run Unleash Edge in production with best practices for CORS, health checks, and sensitive endpoints.
  4. Persistent cache storage - Learn how to enable persistent cache storage with options such as --backup-folder and --redis-url.
  5. Advanced CLI configuration - Learn how to customize the CLI behavior with options such as --base-path, --workers, --allow-list, --edge-request-timeout, and --edge-auth-header.