Skip to content
Learni
Voir tous les tutoriels
Outils DevOps

Comment déployer et utiliser Unleash en 2026

Read in English

Introduction

Unleash est une plateforme open-source dédiée à la gestion des feature flags (ou toggles de fonctionnalités), essentielle pour les déploiements progressifs, les A/B tests et les rollbacks rapides sans redeployer votre code. En 2026, avec l'essor des architectures microservices et des CI/CD avancées, Unleash s'impose comme un outil incontournable pour les équipes DevOps et développement.

Pourquoi l'utiliser ? Imaginez libérer une nouvelle fonctionnalité pour 10% des users seulement, mesurer l'impact, puis l'activer globalement ou la désactiver en un clic – sans hotfix urgent. Ce tutoriel beginner vous guide du déploiement Docker à l'intégration dans une app Node.js, avec des configs complètes et du code fonctionnel. À la fin, vous maîtriserez les bases pour booster vos releases. (Environ 120 mots)

Prérequis

  • Docker et Docker Compose installés (version 20+ recommandée)
  • Node.js 18+ pour les exemples clients
  • Connaissances basiques en terminal et JavaScript
  • Un éditeur de code comme VS Code

Créer le fichier docker-compose.yml

docker-compose.yml
version: '3.8'

services:
  unleash-server:
    image: unleashorg/unleash-server:6.5.0
    ports:
      - "8080:8080"
    environment:
      DATABASE_URL: postgres://unleash_user:password@db:5432/unleash
      NODE_ENV: production
      INITIAL_ADMIN_USER:
        - email=user@unleash.local
          userName=admin
          password=unleash4fun
    depends_on:
      - db
    restart: always

  db:
    image: postgres:15
    environment:
      POSTGRES_DB: unleash
      POSTGRES_USER: unleash_user
      POSTGRES_PASSWORD: password
    volumes:
      - unleash_db:/var/lib/postgresql/data
    restart: always

volumes:
  unleash_db:

Ce docker-compose déploie Unleash avec une base PostgreSQL intégrée. Il expose le port 8080 pour l'interface web et configure un admin initial (email: user@unleash.local, mot de passe: unleash4fun). Attention : en prod, utilisez des secrets pour les vars d'env et un volume persistant pour la DB.

Lancer Unleash localement

Sauvegardez le code ci-dessus dans un fichier docker-compose.yml à la racine d'un dossier projet. Ouvrez un terminal et exécutez docker compose up -d. Attendez 1-2 minutes pour l'initialisation de la DB.

Accédez à http://localhost:8080, connectez-vous avec les identifiants admin. Vous verrez le dashboard vide, prêt pour vos premiers feature flags. Vérifiez les logs avec docker compose logs -f si besoin.

Installer le client Node.js

terminal
mkdir unleash-client-demo
cd unleash-client-demo
npm init -y
npm install @unleash/proxy @unleash/sdk
npm install typescript @types/node ts-node --save-dev

Ce script initialise un projet Node.js et installe le SDK officiel Unleash pour proxy et client. Le proxy est idéal pour les environnements server-side sécurisés, évitant d'exposer l'API Unleash publiquement. Utilisez TypeScript pour la robustesse des types.

Configurer le proxy client

Créez un fichier unleash-proxy.js pour relayer les appels vers Unleash. Cela cache votre instance et gère le polling des flags. Dans l'UI Unleash, créez un projet nommé 'default', puis un feature toggle nommé 'ma-nouvelle-fonction' activé pour 100% du trafic (stratégie 'default').

Implémenter le proxy Unleash

unleash-proxy.js
const express = require('express');
const { ProxyEngine } = require('@unleash/proxy');

const app = express();
app.use(express.json());

// Config proxy
new ProxyEngine({
  unleashUrl: 'http://localhost:8080/api/',
  proxySecret: 'ceci-est-un-secret-changez-le',
  proxyPort: 4242,
  unleashAppName: 'unleash-proxy',
  metrics: true,
}).then((engine) => {
  engine.start();
  console.log('Proxy démarré sur http://localhost:4242');
}).catch(console.error);

app.listen(3001, () => {
  console.log('Serveur proxy sur port 3001');
});

Ce proxy Express relaye les requêtes client vers Unleash sur localhost:8080. Il utilise un secret pour l'auth et expose un endpoint sur /proxy. Lancez-le avec node unleash-proxy.js. Changez le secret en prod et activez HTTPS.

Exemple d'app client avec SDK

client-demo.js
const { initialize } = require('@unleash/sdk');

async function demo() {
  const config = {
    url: 'http://localhost:4242/proxy',
    clientKey: 'default:development:ceci-est-un-secret-changez-le',
    appName: 'client-demo',
    environment: 'default',
    refreshInterval: 5000,
  };

  const unleash = initialize(config);
  await unleash.start();

  // Vérifier un flag
  if (unleash.isEnabled('ma-nouvelle-fonction')) {
    console.log('✅ Fonctionnalité activée !');
  } else {
    console.log('❌ Fonctionnalité désactivée');
  }

  // Stop propre
  setTimeout(() => {
    unleash.stop();
  }, 10000);
}

demo();

Ce script initialise le SDK client, pointe vers le proxy et vérifie le flag 'ma-nouvelle-fonction'. Exécutez node client-demo.js après avoir lancé le proxy. Le client poll toutes les 5s pour les updates. En prod, gérez les erreurs de connexion et les fallbacks.

Tester dans l'interface Unleash

Dans l'UI (localhost:8080), éditez 'ma-nouvelle-fonction' : ajoutez une stratégie 'gradual-rollout' à 20% et un contexte 'userId'. Testez avec curl "http://localhost:4242/proxy?token=ceci-est-un-secret-changez-le&context.userId=123". Vous verrez le flag changer dynamiquement sans redémarrer l'app.

Script de cleanup et stop

terminal
docker compose down -v
docker volume rm $(docker volume ls -q | grep unleash)

Ce script arrête les conteneurs et supprime les volumes pour un reset propre. Utilisez -v pour éviter les données persistantes en dev. Vérifiez avec docker ps que tout est clean.

Bonnes pratiques

  • Sécurisez les secrets : Utilisez Docker Secrets ou Vault pour DATABASE_URL et proxySecret en production.
  • Monitorez les métriques : Activez Prometheus dans Unleash pour tracker les activations de flags.
  • Stratégies contextuelles : Toujours utiliser userId ou sessionId pour des rollouts ciblés.
  • Fallbacks clients : Implémentez des valeurs par défaut si le SDK échoue.
  • Tests automatisés : Intégrez des tests E2E qui mockent Unleash avec nock.

Erreurs courantes à éviter

  • Oublier d'attendre la DB : Unleash échoue si Postgres n'est pas prêt – ajoutez healthcheck dans docker-compose.
  • Secret mismatch : Client et proxy doivent partager le même secret, sinon 401 Unauthorized.
  • Ports conflictuels : Vérifiez netstat -tuln | grep 8080 avant up.
  • Pas de HTTPS en prod : Exposez via reverse proxy (Nginx/Traefik) avec certs Let's Encrypt.

Pour aller plus loin

Explorez la doc officielle Unleash, intégrez avec Kubernetes via Helm charts, ou découvrez les formations Learni sur DevOps. Pour des setups avancés (multi-tenant, SSO), visez Unleash Enterprise.