Watchflare docs
Sur cette page

Installer le Hub Watchflare sous Linux

Installez le Hub Watchflare en service systemd sous Linux. TimescaleDB via Docker, binaire amd64 et arm64, durcissement du service.

Le Hub est un binaire Linux tout prêt (x86_64 et arm64). Ici on l’installe en service systemd, TimescaleDB dans Docker.

Astuce

Vous préférez les conteneurs ? Docker Compose : cinq minutes, rien à bricoler à la main.


Prérequis

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

1. Démarrer TimescaleDB

Le Hub stocke tout dans TimescaleDB. Le plus simple : le Compose fourni.

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

Générez un mot de passe et lancez le conteneur :

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

Remarque

TimescaleDB déjà en place ? sautez cette étape et pointez POSTGRES_HOST vers votre instance. Autres options : documentation TimescaleDB.


2. Télécharger le binaire

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é)

Un utilisateur système limite ce que le Hub peut toucher sur la machine.

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         # default, auto-generates a self-signed CA for gRPC
# COOKIE_SECURE=true    # enable if the Hub is behind an HTTPS reverse proxy
# COOKIE_DOMAIN=watchflare.example.com

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

Restreignez 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 envoie vers la création de compte.


Mise à jour

Procédure complète, dump et retour arrière compris : Mettre à jour le Hub.


Le binaire Hub existe aussi pour macOS (arm64/amd64). L’install en service macOS n’est pas documentée. En local, lancez le binaire à la main, ou passez par Docker Compose.