# Licenciamento Este guia cobre a geracao e a instalacao de licenca do `V-Fire Monitor`. ## Como o licenciamento funciona A licenca vincula: - `HWID` da maquina - nome do cliente - data de expiracao O serial e salvo em `license.key`. ## Modos de chave Existem dois cenarios: 1. `Chave mestre via VFM_LICENSE_MASTER_KEY` 2. `Chave legada embutida` Para producao, use `VFM_LICENSE_MASTER_KEY`. ## Identificar o HWID Quando o app esta sem licenca, a tela inicial mostra o `Hardware ID`. Voce tambem pode coletar no proprio sistema onde o app esta rodando: ```bash python3 - <<'PY' from vfire_monitor.core import get_hardware_id print(get_hardware_id()) PY ``` ## Gerar o serial Uso por argumentos: ```bash python3 generator.py --hwid "HWID-DA-MAQUINA" --cliente "Nome do Cliente" --expira 2027-01-01 ``` Se `VFM_LICENSE_MASTER_KEY` estiver definida no ambiente, o gerador usa essa chave. Se nao estiver definida, ele usa a chave legada embutida. ## Instalar a licenca pelo painel 1. Abra o painel do `V-Fire Monitor` 2. Na tela de bloqueio, copie o `HWID` 3. Gere o serial 4. Cole o serial no campo de ativacao 5. Clique em `Ativar licenca` O backend valida: - serial - HWID - data de expiracao Se tudo estiver correto, o monitoramento e liberado. ## Instalar a licenca manualmente no servidor Se voce ja tem o serial: ```bash cat > /var/lib/vfire-monitor/license.key <<'EOF' SEU_SERIAL_AQUI EOF chown vfire-monitor:vfire-monitor /var/lib/vfire-monitor/license.key chmod 600 /var/lib/vfire-monitor/license.key systemctl restart vfire-monitor ``` ## Validar a licenca instalada Exemplo local: ```bash python3 - <<'PY' from pathlib import Path from vfire_monitor.core import LEGACY_LICENSE_KEY, LicenseService service = LicenseService(Path("license.key"), LEGACY_LICENSE_KEY) status = service.verify() print(status.valid, status.message, status.days_remaining, status.hardware_id) PY ``` Se a instalacao de producao usar `VFM_LICENSE_MASTER_KEY`, a validacao deve usar a mesma chave mestre. ## Quando a licenca falha Os erros mais comuns sao: - `Licenca ausente` - `Serial invalido` - `HWID incompativel` - `Licenca expirada` ## Boas praticas - use chave mestre por variavel de ambiente em producao - nao distribua a chave legada em ambiente final - mantenha backup de: - `license.key` - `app_secret.key` - `config_nodes.json` - `mapa_dispositivos.json`