Skip to main content
Ce que fireflo-install automatise. Lisez ceci si vous empaquetez FireFlo vous-même, ou si une étape de l’installateur a échoué et que vous avez besoin de savoir ce qu’elle faisait.
Les prérequis ci-dessous sont scriptés. setup.sh installe PostgreSQL, RabbitMQ et Node sur Ubuntu et Debian, et Java derrière --with-java. Cette page est la version longue — lisez-la pour savoir ce que fait ce script, ou pour le faire sur une distribution qu’il refuse.

Prérequis

  • Java 25. La compilation cible la version 25 et ne fonctionnera pas sur 21.
  • PostgreSQL 14 ou plus récent. Optionnel pour la passerelle seule en mode fichier ; requis pour le panneau de contrôle, le crédit prépayé, la liste blanche et les enregistrements d’appels dans une table.
  • RabbitMQ, uniquement si les messages soumis doivent survivre à un redémarrage de la passerelle. Sans lui, la file est en mémoire et un redémarrage perd tout ce qui n’a pas atteint un fournisseur.
  • Un utilisateur de service sans shell de connexion.

La partie délicate de cette plateforme

Deux des trois runtimes ne sont pas ceux fournis par Ubuntu :
1

Paquets de base

2

Java 25 depuis Adoptium

3

Node 22 depuis NodeSource

Next.js 16 ne tourne pas sur le Node 18 d’Ubuntu — c’est pour le panneau de contrôle.
4

Utilisateur de service et répertoires

5

Base de données

Gardez le mot de passe hors de l’historique du shell — écrivez-le directement dans le fichier d’environnement.

Disposition

La configuration est conservée en dehors du répertoire d’artefact, afin qu’une mise à niveau puisse remplacer l’artefact en bloc sans toucher à ce que vous avez édité.
Si vous avez compilé l’empaquetage JVM, l’artefact est un répertoire, pas un fichier. quarkus-run.jar ne s’exécutera pas sans les répertoires lib/, app/ et quarkus/ à ses côtés. Copier le jar seul produit un processus qui démarre puis échoue à trouver ses classes.Un build natif est l’inverse : un seul exécutable, rien à ses côtés, et pas de Java sur l’hôte. C’est ce que contient un tarball de release, et l’installateur accepte les deux.

Le fichier d’environnement

chmod 600. Il contient le mot de passe de la base de données et les deux jetons opérationnels.
Définissez FIREFLO_CONF_DIR sur un chemin absolu. Une valeur relative — y compris la valeur par défaut conf — se résout par rapport au répertoire de travail du processus, de sorte qu’une unité avec WorkingDirectory=/opt/fireflo lit /opt/fireflo/conf/, ce qui n’est pas là où vous avez édité quoi que ce soit.

Ports

systemd

Deux réglages comptent plus que les autres :
SIGTERM plutôt que SIGKILL n’est pas un raffinement. Un arrêt propre restitue le crédit prépayé réservé non dépensé ; un kill -9 le laisse bloqué jusqu’à ce que fireflo credit release s’exécute.

Rétention des journaux, dont vous êtes désormais responsable

Rien dans la passerelle ne supprime httpapi.log. Quarkus le fait tourner quotidiennement et garde chaque fichier indéfiniment. fireflo-install écrit une règle tmpfiles.d précisément pour cela ; installer à la main signifie en écrire une soi-même, ou accepter une croissance illimitée. Voir Journalisation.

Vérifier

Et vérifiez que les deux jetons sont bien séparés — une lecture avec le jeton admin doit renvoyer un 404 :