Deployment guide

Unleash

Overview

Unleash is a leading open source feature flag and feature management platform. From an ordinary browser, your team can create feature flags, run gradual rollouts and A/B tests, target and segment users, flip kill switches, manage flags across environments, and wire up SDKs for every language.

The SecureAnyCloud image ships the open source Unleash server 8.0.3 (the AGPL 3.0 edition, not Unleash Enterprise) on Node.js 22 LTS behind an nginx reverse proxy on port 80. It runs on a hardened Ubuntu 24.04 LTS base, patched at build time, with a bundled local PostgreSQL 16 backend, so the appliance is complete and useful on its own.

What you get:

  • Unleash open source server 8.0.3 (AGPL 3.0) on Node.js 22 LTS, managed by systemd
  • A hardened Ubuntu 24.04 LTS base, patched at build time
  • A bundled PostgreSQL 16 backend holding the Unleash datastore, already installed and ready
  • The Unleash React web console on :80 behind an nginx reverse proxy
  • A unique administrator password for each VM, generated on first boot and recorded in a root-only file
  • The well-known default credential (admin / unleash4all) rotated away and rejected on every VM
  • Unleash bound to 127.0.0.1:4242 and PostgreSQL to 127.0.0.1:5432, never exposed to the network
  • A dedicated Azure data disk holding the PostgreSQL datastore at /var/lib/postgresql
  • A ready-to-use default project with example feature flags to explore
  • postgresql@16-main.service, unleash.service and nginx.service as enabled systemd units
  • An unauthenticated /healthz endpoint for Azure Load Balancer health probes
  • 24/7 SecureAnyCloud support

Prerequisites

Before you deploy this image, make sure you have the following:

  • An active Azure subscription.
  • An SSH key pair.
  • A VNet and subnet in the target region.
  • A VM size of Standard_B2s (2 vCPU / 4 GiB RAM), which is a sensible starting point. Size up for more environments, more SDK clients or heavier evaluation traffic.
  • Network security group (NSG) inbound rules that allow 22/tcp from your management network and 80/tcp for the web console.

Unleash serves plain HTTP on port 80. For production, terminate TLS in front of it with your own domain. The bundled PostgreSQL is never exposed. It listens on 127.0.0.1 only, so port 5432 stays off the network, as does the Unleash server port 4242.

Step 1 - Deploy from the Azure Marketplace

Sign in to the Azure Portal, select Create a resource, and search the Marketplace for Unleash by SecureAnyCloud. Select Create. On the Basics tab, pick your subscription, resource group, region and size. Under Administrator account, choose SSH public key and paste your key. Under Inbound port rules, allow SSH (22) and HTTP (80). On the Disks tab, review the dedicated data disk. Then select Review + create, followed by Create.

Step 2 - Deploy from the Azure CLI

Accept the Marketplace terms, then create the VM:

# Accept the Marketplace terms once per subscription (required before the first CLI deploy)
az vm image terms accept --urn sac1647283583153:unleash-ubuntu-24-04:default:latest
az vm create \
  --resource-group <your-rg> \
  --name unleash \
  --image sac1647283583153:unleash-ubuntu-24-04:default:latest \
  --size Standard_B2s \
  --admin-username azureuser \
  --generate-ssh-keys \
  --public-ip-sku Standard

Open port 80 to the web console:

az vm open-port --resource-group <your-rg> --name unleash --port 80

Step 3 - Confirm the services are running

Connect over SSH as azureuser and confirm that PostgreSQL, the Unleash server and nginx are all active. PostgreSQL listens only on 127.0.0.1:5432 and the Unleash Node server only on 127.0.0.1:4242, while nginx serves the web console on port 80. First, check the services:

systemctl is-active postgresql@16-main unleash nginx

Then check the listening ports:

ss -tlnp | grep -E ':80 |:4242 |:5432 ' | sed 's/ */ /g'

Step 4 - Retrieve the per-VM administrator password

Every VM generates its own Unleash administrator password on first boot and writes it, along with the login user and URL, to a root-only credentials file. Read the file with sudo:

sudo cat /root/unleash-credentials.txt

You sign in to the Unleash web console as user admin with the UNLEASH_ADMIN_PASSWORD from this file. The well-known default password unleash4all has been rotated away and is rejected. On the VM itself, you can also run sudo -u postgres psql -d unleash to reach the database directly over the local socket without a password.

Step 5 - Sign in to the Unleash web console

Browse to http://<your-vm-public-ip>/ and sign in with the user and password from Step 4. The Unleash console opens at the sign-in page.

Step 6 - Explore feature flags in the default project

The image ships with a ready-to-use Default project that contains a few example feature flags, so you can start exploring right away. Open Projects, then Default, to see the feature flags list. Create new flags with New feature flag, and manage each flag across your environments.

Step 7 - Configure a rollout strategy

Open a feature flag to manage how it is enabled in each environment. Unleash supports gradual rollouts, targeting and segmentation, variants for A/B testing, and kill switches. The example new-checkout-flow flag has a gradual rollout strategy applied in the development environment.

Step 8 - Manage projects

Projects group your feature flags and control access. The Projects overview lists every project with its flag count and activity. Create additional projects to separate teams or applications.

Step 9 - The rotated default credential

Unleash normally seeds a well-known default administrator, admin / unleash4all. On the SecureAnyCloud image, that default is secured. The administrator password is rotated to a unique per-VM secret on first boot, and the well-known default is rejected. You can verify both facts on the VM with the bundled round-trip check, which signs in with the per-VM password and confirms that the default is refused:

sudo bash /usr/local/sbin/unleash-cred-roundtrip.sh

Step 10 - Versions, health and storage

Confirm the Node.js and Unleash versions, the health endpoints and the dedicated data disk. The unauthenticated /healthz endpoint returns ok for Azure Load Balancer probes, while Unleash's own /health endpoint reports the server status. The entire datastore is on the dedicated PostgreSQL data disk mounted at /var/lib/postgresql. Run:

curl -s http://127.0.0.1/healthz findmnt -no SOURCE,TARGET,FSTYPE,SIZE /var/lib/postgresql

Connect an SDK

When you have a flag, create an API token from Admin settings, then API access. Point one of the Unleash SDKs at http://<your-vm-public-ip>/api/ with that token. Unleash provides SDKs for Node.js, Java, Go, Python, Ruby, .NET, PHP, Rust and more, plus front-end proxy options. See the SDK documentation at docs.getunleash.io for language-specific setup.

Where your data lives

The Unleash application code and Node modules are on the OS disk under /opt/unleash. The complete Unleash datastore, which is the PostgreSQL cluster that holds your projects, feature flags, strategies, users and events, is on a dedicated Azure data disk mounted at /var/lib/postgresql. The data disk is captured into the image, reprovisioned with every VM, and independently resizable, so your feature flag data stays separate from the operating system disk. PostgreSQL is bound to 127.0.0.1:5432 and is never exposed to the network. For on-box maintenance, use sudo -u postgres psql -d unleash.

Production notes

For production, put your own domain and a TLS certificate in front of Unleash by terminating HTTPS at nginx or an Azure Application Gateway. Restrict the NSG so that only the ports you need are open. Take regular backups of the PostgreSQL database. Keep the VM patched. The image ships with unattended security upgrades enabled.

Licensing and trademark

This image ships the open source Unleash server (AGPL 3.0), not Unleash Enterprise. SecureAnyCloud is not affiliated with or endorsed by the Unleash project or Bricks Software AS. Unleash is a trademark of its respective owner.

Support

SecureAnyCloud provides 24/7 support for this image. Contact sales@secureanycloud.com for help with deployment, configuration or scaling.

Deploy on Azure

Launch Unleash on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.

View this image

Need Help?

Our support team is available 24/7.

sales@secureanycloud.com

Deploy on Azure