Add production installer and observability tooling
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
# 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`
|
||||
Reference in New Issue
Block a user