Watchflare docs
Sur cette page

Installer le Hub Watchflare sous Linux

Installez le Hub Watchflare en service systemd sous Linux. Couvre TimescaleDB via Docker, le téléchargement du binaire pour amd64 et arm64, et le durcissement du service.

Le Hub est distribué sous la forme d’un binaire précompilé pour Linux (x86_64 et arm64). Ce guide décrit son installation en service systemd, avec TimescaleDB qui s’exécute dans Docker.

Astuce

Vous préférez les conteneurs ? Déployer avec Docker Compose vous met en route en moins de 5 minutes, sans configuration manuelle.


Prérequis

  • Linux x86_64 (amd64) ou arm64
  • systemd
  • Docker pour TimescaleDB, ou une instance TimescaleDB existante
  • Deux ports ouverts : 8080 (tableau de bord) et 50051 (gRPC des agents)

1. Démarrer TimescaleDB

Le Hub exige TimescaleDB pour le stockage. Le plus simple est d’utiliser le fichier Compose fourni :

curl -O https://raw.githubusercontent.com/watchflare-io/watchflare/main/docker-compose-postgres.yml

Générez un mot de passe de base de données et démarrez le conteneur :

echo "POSTGRES_PASSWORD=$(openssl rand -base64 32)" > .env
docker compose -f docker-compose-postgres.yml up -d

Remarque

TimescaleDB déjà en cours d’exécution ? Sautez cette étape et pointez POSTGRES_HOST vers votre instance existante. Pour d’autres options de configuration, voir la documentation TimescaleDB.


2. Télécharger le binaire

Téléchargez et installez la dernière version :

bash
TAG=$(curl -s https://api.github.com/repos/watchflare-io/watchflare/releases/latest \
  | grep '"tag_name"' | cut -d'"' -f4)
VERSION=${TAG#v}  # strip leading 'v' for the filename
ARCH=amd64  # or arm64

curl -L "https://github.com/watchflare-io/watchflare/releases/download/${TAG}/watchflare-hub_${VERSION}_linux_${ARCH}.tar.gz" \
  | tar xz
sudo mv watchflare-hub /usr/local/bin/
sudo chmod +x /usr/local/bin/watchflare-hub

3. Créer un utilisateur dédié (recommandé)

Exécuter le Hub sous un utilisateur système limite son accès au reste du serveur.

sudo useradd --system --no-create-home --shell /sbin/nologin watchflare
sudo mkdir -p /var/lib/watchflare
sudo chown watchflare:watchflare /var/lib/watchflare

Si vous sautez cette étape, retirez User=watchflare du fichier de service à l’étape 5.


4. Configurer

Créez le fichier d’environnement. Le Hub le lit au démarrage.

sudo mkdir -p /etc/watchflare
/etc/watchflare/hub.env bash
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USER=watchflare
POSTGRES_PASSWORD=your-db-password
POSTGRES_DB=watchflare

JWT_SECRET=your-32-char-secret
NOTIFICATION_ENCRYPTION_KEY=your-32-char-secret

ENV=production
TRUSTED_PROXIES=127.0.0.1,::1

# TLS_MODE=auto         # défaut, génère automatiquement une CA auto-signée pour le gRPC
# COOKIE_SECURE=true    # activez si le Hub est derrière un reverse proxy HTTPS
# COOKIE_DOMAIN=watchflare.example.com

Générez les secrets avec openssl rand -base64 32.

Verrouillez le fichier :

sudo chown root:watchflare /etc/watchflare/hub.env
sudo chmod 640 /etc/watchflare/hub.env

5. Installer le service systemd

Créez le fichier de service :

/etc/systemd/system/watchflare-hub.service ini
[Unit]
Description=Watchflare Hub
Documentation=https://docs.watchflare.io
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=watchflare
EnvironmentFile=/etc/watchflare/hub.env
ExecStart=/usr/local/bin/watchflare-hub
Restart=always
RestartSec=5s
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/watchflare

[Install]
WantedBy=multi-user.target

Activez et démarrez :

sudo systemctl daemon-reload
sudo systemctl enable --now watchflare-hub

6. Vérifier

sudo systemctl status watchflare-hub

Puis ouvrez http://your-host:8080. La première visite redirige vers la création de compte.


Mise à jour

Voir Mettre à jour le Hub pour la procédure de mise à jour complète, avec les étapes de sauvegarde et les instructions de retour arrière.


Le binaire Hub est également disponible pour macOS (arm64/amd64), mais une installation en service macOS dédiée n’est pas documentée. Pour le développement local, exécutez le binaire directement ou utilisez Docker Compose.