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 :
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
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 :
[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.