Skip to main content
Lo que fireflo-install automatiza. Lee esto si estás empaquetando FireFlo por tu cuenta, o si un paso del instalador falló y necesitas saber qué estaba haciendo.
Los requisitos previos de abajo están automatizados en un script. setup.sh instala PostgreSQL, RabbitMQ y Node en Ubuntu y Debian, y Java detrás de --with-java. Esta página es el camino largo — léela para saber qué hace ese script, o para hacerlo en una distribución que él rechaza.

Requisitos previos

  • Java 25. La compilación apunta al release 25 y no funciona en 21.
  • PostgreSQL 14 o superior. Opcional solo para el gateway en modo archivo; obligatorio para el panel de control, el crédito prepago, el whitelisting y los registros de llamadas en tabla.
  • RabbitMQ, únicamente si los mensajes enviados deben sobrevivir a un reinicio del gateway. Sin él la cola está en memoria y un reinicio descarta todo lo que no había llegado a un proveedor.
  • Un usuario de servicio sin shell de inicio de sesión.

La parte incómoda de esta plataforma

Dos de los tres runtimes no son los que Ubuntu incluye:
1

Paquetes base

2

Java 25 desde Adoptium

3

Node 22 desde NodeSource

Next.js 16 no funciona con el Node 18 de Ubuntu — esto es para el panel de control.
4

Usuario de servicio y directorios

5

Base de datos

Mantén la contraseña fuera del historial del shell — escríbela directamente en el archivo de entorno.

Distribución de directorios

La configuración se mantiene fuera del directorio del artefacto, para que una actualización pueda reemplazar el artefacto por completo sin tocar nada de lo que hayas editado.
Si compilaste el empaquetado JVM, el artefacto es un directorio, no un archivo. quarkus-run.jar no se ejecuta sin los directorios lib/, app/ y quarkus/ junto a él. Copiar solo el jar produce un proceso que arranca y luego falla al no encontrar sus clases.Una compilación nativa es lo contrario: un ejecutable, nada junto a él, y sin Java en el host. Eso es lo que contiene un tarball de release, y el instalador acepta cualquiera de los dos.

El archivo de entorno

chmod 600. Contiene la contraseña de la base de datos y ambos tokens operacionales.
Establece FIREFLO_CONF_DIR como una ruta absoluta. Un valor relativo — incluido el conf por defecto — se resuelve contra el directorio de trabajo del proceso, así que una unidad con WorkingDirectory=/opt/fireflo lee /opt/fireflo/conf/, que no es donde editaste nada.

Puertos

systemd

Dos ajustes importan más que el resto:
SIGTERM en lugar de SIGKILL no es una amabilidad. Un apagado limpio devuelve el crédito prepago reservado no gastado; un kill -9 lo deja atrapado hasta que se ejecute fireflo credit release.

Retención de logs, de la que ahora te haces cargo

Nada dentro del gateway elimina httpapi.log. Quarkus lo rota diariamente y conserva cada archivo para siempre. fireflo-install escribe una regla de tmpfiles.d exactamente para esto; instalar a mano implica escribir una tú, o aceptar un crecimiento sin límites. Consulta Logging.

Verificar

Y comprueba que los dos tokens realmente son independientes — leer con el token de admin debe devolver 404: