Skip to main content
O que o fireflo-install automatiza. Leia isto se você mesmo estiver empacotando o FireFlo, ou se uma etapa do instalador falhou e você precisa saber o que ela fazia.
Os pré-requisitos abaixo estão automatizados em um script. O setup.sh instala PostgreSQL, RabbitMQ e Node no Ubuntu e no Debian, e Java atrás de --with-java. Esta página é a versão por extenso — leia-a para saber o que aquele script faz, ou para fazer isso em uma distribuição que ele recusa.

Pré-requisitos

  • Java 25. O build tem como alvo o release 25 e não roda no 21.
  • PostgreSQL 14 ou mais recente. Opcional para o gateway sozinho em modo de arquivo; necessário para o painel de controle, crédito pré-pago, whitelist e registros de chamadas em uma tabela.
  • RabbitMQ, apenas se as mensagens submetidas precisarem sobreviver a um reinício do gateway. Sem ele, a fila fica em memória e um reinício descarta o que ainda não chegou a um fornecedor.
  • Um usuário de serviço sem shell de login.

A parte estranha desta plataforma

Dois dos três runtimes não são o que o Ubuntu fornece:
1

Pacotes básicos

2

Java 25 do Adoptium

3

Node 22 do NodeSource

O Next.js 16 não roda no Node 18 do Ubuntu — isto é para o painel de controle.
4

Usuário de serviço e diretórios

5

Banco de dados

Mantenha a senha fora do histórico do shell — escreva-a diretamente no arquivo de ambiente.

Layout

A configuração fica fora do diretório do artefato, para que uma atualização possa substituir o artefato inteiro sem tocar em nada que você editou.
Se você construiu o empacotamento JVM, o artefato é um diretório, não um arquivo. O quarkus-run.jar não roda sem os diretórios lib/, app/ e quarkus/ ao seu lado. Copiar apenas o jar produz um processo que inicia e depois falha ao não encontrar suas classes.Um build nativo é o oposto: um executável, nada ao seu lado, e nenhum Java no host. É isso que um tarball de release contém, e o instalador aceita qualquer um dos dois.

O arquivo de ambiente

chmod 600. Ele contém a senha do banco de dados e ambos os tokens operacionais.
Defina FIREFLO_CONF_DIR como um caminho absoluto. Um valor relativo — incluindo o padrão conf — é resolvido em relação ao diretório de trabalho do processo, portanto uma unidade com WorkingDirectory=/opt/fireflo lê /opt/fireflo/conf/, que não é onde você editou nada.

Portas

systemd

Duas configurações importam mais do que o resto:
SIGTERM em vez de SIGKILL não é uma cortesia. Um desligamento limpo devolve crédito pré-pago reservado não gasto; um kill -9 o deixa preso até que fireflo credit release seja executado.

Retenção de logs, que agora é sua responsabilidade

Nada no gateway remove httpapi.log. O Quarkus faz sua rotação diariamente e mantém todos os arquivos para sempre. O fireflo-install escreve uma regra tmpfiles.d exatamente para isto; instalar manualmente significa escrever uma você mesmo, ou aceitar crescimento ilimitado. Veja Logging.

Verificar

E confira que os dois tokens realmente são separados — a leitura com o token admin deve retornar 404: