Pular para o conteúdo principal

Configuração

Referência completa das variáveis de ambiente e configurações da plataforma ION Guard.

Arquivo .env

O arquivo .env é gerado automaticamente durante a instalação. Ele contém todas as configurações da aplicação e nunca deve ser commitado no controle de versão.

Localização: /home/iongrade/ionguard/.env

Após editar o .env, aplique as alterações:

cd /home/iongrade/ionguard

# Recriar containers com novas variáveis
./scripts/comp.sh up -d --force-recreate ionguard_php

# Limpar cache de configuração
./scripts/comp.sh exec -T ionguard_php php artisan config:clear

Deployment

VariávelPadrãoDescrição
IONGUARD_DEPLOYHostname do deploy
FACILITYIdentificador do cliente/facility
DEPLOY_MODEsaasModo de deploy: saas ou onpremises
VIRTUAL_HOSTHostname virtual (usado pelo proxy reverso)

Rede

VariávelPadrãoDescrição
HOST_IP(auto)IP do host. Auto-detectado por detectHostIp.sh a cada startup. Sobrescreva se a máquina tem múltiplas interfaces
MQTT_EXTERNAL_HOST(auto)IP/hostname que antenas e gateways usam para conectar ao MQTT. Auto-setado como HOST_IP. Sobrescreva se atrás de NAT ou load balancer

Aplicação

VariávelPadrãoDescrição
APP_NAMEIonGuardNome da aplicação
APP_ENVproductionAmbiente: production, local, testing
APP_KEY(gerado)Chave de encriptação da aplicação (base64)
APP_DEBUGfalseModo debug. Nunca true em produção
APP_URLhttps://{HOST}URL base da aplicação
APP_LOCALEenIdioma padrão (defina pt_BR para português)
APP_FALLBACK_LOCALEenIdioma fallback
BCRYPT_ROUNDS12Rounds do bcrypt para hash de senhas

Logging

VariávelPadrãoDescrição
LOG_CHANNELstackCanal de log principal
LOG_STACKdailyTipo do stack: rotação diária
LOG_LEVELdebugNível mínimo: debug, info, notice, warning, error, critical

Banco de dados (MariaDB)

VariávelPadrãoDescrição
DB_CONNECTIONmariadbDriver de conexão
DB_HOSTionguard_mariadb_{HOST}Hostname do container MariaDB
DB_PORT3306Porta do MariaDB
DB_DATABASEionguardNome do banco
DB_USERNAMEionguardUsuário do banco
DB_PASSWORD(gerado)Senha do banco
DATABASE_EXPOSE_PORT(vazio)Porta para expor o MariaDB no host. Deixe vazio em produção

Cache, Filas e Sessões (Redis/Valkey)

VariávelPadrãoDescrição
CACHE_STOREredisDriver de cache
QUEUE_CONNECTIONredisDriver de filas
SESSION_DRIVERdatabaseDriver de sessões
SESSION_LIFETIME120Duração da sessão em minutos
SESSION_ENCRYPTtrueCriptografa os dados de sessão
SESSION_SECURE_COOKIEtrueCookie de sessão apenas via HTTPS
REDIS_HOSTionguard_valkey_{HOST}Hostname do container Valkey
REDIS_PORT6379Porta do Redis
REDIS_PASSWORDnullSenha do Redis (null = sem senha)

WebSocket (Reverb)

VariávelPadrãoDescrição
BROADCAST_CONNECTIONreverbDriver de broadcasting
REVERB_APP_ID(gerado)ID da aplicação Reverb
REVERB_APP_KEY(gerado)Chave pública Reverb
REVERB_APP_SECRET(gerado)Chave secreta Reverb
REVERB_HOSTionguard_reverb_{HOST}Hostname do container Reverb
REVERB_PORT8080Porta do servidor WebSocket
Nota

O frontend deriva automaticamente o host/porta/scheme do WebSocket a partir de window.location em runtime. Não é necessário configurar variáveis VITE_REVERB_*.

MQTT

VariávelPadrãoDescrição
MQTT_ENABLEDtrueHabilitar integração MQTT
MQTT_HOSTionguard_mosquitto_{HOST}Hostname do broker Mosquitto
MQTT_PORT8883Porta MQTT (8883 = TLS, padrão; 1883 apenas para broker de dev sem TLS)
MQTT_CLIENT_IDionguard-listenerID do client MQTT
MQTT_USERNAMElistenerUsuário MQTT
MQTT_PASSWORD(gerado)Senha MQTT
MQTT_TOPIC_PREFIXionguardPrefixo dos tópicos MQTT
MQTT_KEEP_ALIVE60Intervalo de keep-alive da conexão MQTT (segundos)
MQTT_QOS1Qualidade de serviço das mensagens MQTT
MQTT_EXTERNAL_HOST(auto)Host que dispositivos usam para conectar (auto-detectado; ver seção Rede)
MQTT_EXTERNAL_PORT8883Porta MQTT que os dispositivos usam (device-facing). Ver caution abaixo
MQTT_WEBSOCKET_PORT9001Porta WebSocket MQTT exposta no host

TLS do broker MQTT

VariávelPadrãoDescrição
MQTT_TLS_ENABLEDtrueTLS habilitado por padrão (fail-closed): com MQTT ativo e sem flag explícita, a conexão é feita com TLS
MQTT_TLS_CA_FILEArquivo CA com que o certificado do broker foi assinado
MQTT_TLS_VERIFY_PEERtrueVerifica o certificado do broker
MQTT com TLS por padrão (8883)

Nas versões recentes, a comunicação dos dispositivos (antenas/gateways) com o broker usa TLS na porta 8883 por padrão — os dispositivos devem conectar via TLS. A porta 1883 (texto puro) fica reservada a um broker de desenvolvimento isolado. Ao configurar firewall e MQTT_EXTERNAL_PORT, alinhe a porta ao modo do seu deploy.

InfluxDB (Time-Series)

VariávelPadrãoDescrição
INFLUXDB_ENABLEDtrueHabilitar InfluxDB para sinais BLE
INFLUXDB_URLhttp://ionguard_influxdb_{HOST}:8086URL do InfluxDB
INFLUXDB_TOKEN(gerado)Token de autenticação
INFLUXDB_ORGiongradeOrganização no InfluxDB
INFLUXDB_BUCKETionguardBucket de armazenamento

Módulos

VariávelPadrãoDescrição
MODULE_ENCRYPTION_KEY(gerado)Chave para encriptação de dados sensíveis de módulos (credenciais de gateways, tokens). Gerada aleatoriamente por instalação
Importante

A MODULE_ENCRYPTION_KEY é diferente da chave de release usada para empacotar módulos .enc. Esta chave é única por instalação e protege dados em runtime.

Retenção de dados

VariávelPadrãoDescrição
RETENTION_SIGNALS_DAYS7Dias de retenção de sinais BLE. Aplicado na política de retenção do bucket InfluxDB (definido na inicialização do container)
RETENTION_LOCATIONS_DAYS90Dias de retenção de histórico de localização (MariaDB)
RETENTION_EVENTS_DAYS365Dias de retenção de eventos
RETENTION_AUDIT_DAYS365Dias de retenção de logs de auditoria
RETENTION_BATCH_SIZE10000Tamanho do batch para limpeza de dados
Onde cada retenção é aplicada

As retenções de localizações, eventos e auditoria são jobs de limpeza que rodam sobre o MariaDB (config/retention.php). A retenção de sinais BLE é aplicada diretamente pela política de retenção do bucket InfluxDB.

E-mail

VariávelPadrãoDescrição
MAIL_MAILERsmtpDriver de e-mail
MAIL_HOSTServidor SMTP
MAIL_PORT587Porta SMTP
MAIL_USERNAMEUsuário SMTP
MAIL_PASSWORDSenha SMTP
MAIL_FROM_ADDRESSEndereço de remetente

Performance

VariávelPadrãoDescrição
PHP_FPM_WORKERS50Número máximo de workers PHP-FPM. Ajuste conforme a RAM disponível
TZAmerica/Sao_PauloTimezone do sistema

API (tokens Sanctum)

VariávelPadrãoDescrição
SANCTUM_TOKEN_EXPIRATION1440Validade dos tokens de API em minutos (1440 = 24 h)
SANCTUM_TOKEN_PREFIXionguard_Prefixo dos tokens de API emitidos

Portas (on-premises)

VariávelPadrãoDescrição
HTTP_PORT80Porta HTTP no host
HTTPS_PORT443Porta HTTPS no host
Múltiplas aplicações no mesmo host

Se o servidor já hospeda outra aplicação nas portas 80/443, altere para portas alternativas (ex: HTTP_PORT=8080, HTTPS_PORT=8443).


Configurações da aplicação

Além do .env, existem arquivos de configuração PHP em app/config/ que controlam comportamentos específicos:

Location Engine (config/location.php)

Parâmetros do engine de localização BLE (todos sobrescrevíveis por .env):

VariávelPadrãoDescrição
LOCATION_WINDOW_SIZE15Janela (segundos) de coleta de sinais para o cálculo
LOCATION_CALCULATION_INTERVAL5Intervalo (segundos) entre cálculos de localização
LOCATION_MIN_SIGNALS2Mínimo de sinais para posicionar um beacon
LOCATION_RSSI_THRESHOLD_MINIMUM-90RSSI mínimo (dBm) considerado para detecção de zona
LOCATION_HYSTERESIS_THRESHOLD5Histerese (dB) para evitar oscilação entre zonas
LOCATION_KEEP_ALIVE_TIMEOUT120Tempo (segundos) sem sinal para marcar dispositivo como offline
LOCATION_BATTERY_LOW_THRESHOLD20Percentual de bateria que dispara alerta de bateria baixa
LOCATION_ESCALATION_TIMEOUT120Tempo (segundos) para escalonamento relacionado à localização

Alertas (config/alerts.php)

ParâmetroPadrãoDescrição
escalation.check_interval30Intervalo (segundos) do job que verifica alertas a escalonar

Retenção (config/retention.php)

Políticas de retenção de dados (também configuráveis via .env).

Módulos (config/modules.php)

  • Chave de release para descriptografia de módulos
  • Diretório de módulos
  • Configuração de carregamento