docs: update documentation files and project README structure
This commit is contained in:
+78
-22
@@ -1,43 +1,99 @@
|
||||
# Instalação e Empacotamento Nativo
|
||||
|
||||
O **CyberCore Signer** foi projetado para distribuição sem exigir que o usuário final tenha o Java ou JRE instalado em seu computador.
|
||||
> **Guia de Distribuição com Runtime Embutido (`jpackage`), Instaladores MSI e Implantação Corporativa**
|
||||
|
||||
O **CyberCore Signer** foi projetado para distribuição nativa através da ferramenta `jpackage` (introduzida no JDK 14 e consolidada nas versões LTS 21/25). Isso significa que o usuário final **não precisa instalar o Java ou configurar variáveis de ambiente (JRE/JDK)** em sua máquina. O aplicativo carrega um runtime Java reduzido e isolado exclusivamente para sua execução.
|
||||
|
||||
---
|
||||
|
||||
## 1. Requisitos de Sistema
|
||||
|
||||
- **Sistema Operacional Homologado:** Windows 10 (64-bit) ou Windows 11 (64-bit).
|
||||
- **Compatibilidade Adicional:** Linux x86_64 e macOS (arquitetura preparada).
|
||||
- **Hardware:** Mínimo de 4 GB RAM, 150 MB de espaço em disco.
|
||||
- **Porta de Rede Local:** A porta TCP `21325` deve estar livre em `127.0.0.1`.
|
||||
* **Sistema Operacional Alvo:** Windows 10 (64-bit) ou Windows 11 (64-bit).
|
||||
* **Compatibilidade Adicional:** Distribuições Linux modernas x86_64 (Ubuntu 20.04+, Debian 11+, Fedora 38+, RHEL 9+).
|
||||
* **Memória RAM:** Mínimo de 4 GB (Recomendado: 8 GB).
|
||||
* **Espaço em Disco:** 180 MB livres para os arquivos da aplicação e runtime embutido.
|
||||
* **Rede Local:** A porta TCP `21325` deve estar livre no endereço de loopback `127.0.0.1`.
|
||||
|
||||
---
|
||||
|
||||
## 2. Geração do Instalador Windows (MSI / EXE) com `jpackage`
|
||||
|
||||
O empacotamento utiliza a ferramenta nativa `jpackage` incluída no JDK 21/25.
|
||||
### 2.1 Pré-requisitos para a Máquina de Build
|
||||
Para compilar e gerar o pacote de instalação no Windows:
|
||||
1. **JDK 21+ LTS:** Com a variável `JAVA_HOME` devidamente configurada.
|
||||
2. **WiX Toolset (v3.11+):** Necessário pelo `jpackage` para gerar instaladores `.msi`. Baixe em [wixtoolset.org](https://wixtoolset.org/) e adicione a pasta `bin` ao `PATH`.
|
||||
|
||||
### 2.2 Execução do Script de Empacotamento
|
||||
Na raiz do projeto, execute o script em lote:
|
||||
|
||||
### No Windows:
|
||||
Execute o script em lote localizado na raiz:
|
||||
```cmd
|
||||
scripts\package-windows.bat
|
||||
```
|
||||
|
||||
### O que o script realiza:
|
||||
1. Compila o projeto em modo release:
|
||||
```cmd
|
||||
mvnw clean package -DskipTests
|
||||
```
|
||||
2. Invoca o `jpackage` criando o instalador Windows:
|
||||
- Extrai um runtime mínimo customizado contendo apenas os módulos necessários (`java.base`, `java.desktop`, `java.smartcardio`, `jdk.crypto.cryptoki`, etc.).
|
||||
- Cria atalhos na Área de Trabalho e no Menu Iniciar.
|
||||
- Gera um instalador padrão MSI ou EXE em `dist/`.
|
||||
Ou execute manualmente os comandos do pipeline:
|
||||
|
||||
```cmd
|
||||
:: 1. Compilação do projeto e geração do Fat JAR consolidado
|
||||
mvnw clean package -DskipTests
|
||||
|
||||
:: 2. Geração do instalador nativo via jpackage
|
||||
jpackage ^
|
||||
--type msi ^
|
||||
--name "CyberCore Signer" ^
|
||||
--app-version 0.1.0 ^
|
||||
--vendor "CyberCore Systems" ^
|
||||
--input modules\cybercore-app\target ^
|
||||
--main-jar cybercore-signer.jar ^
|
||||
--main-class br.com.cybercore.signer.app.CyberCoreApp ^
|
||||
--icon assets\cybercore.ico ^
|
||||
--win-menu ^
|
||||
--win-shortcut ^
|
||||
--win-dir-chooser ^
|
||||
--dest dist
|
||||
```
|
||||
|
||||
O instalador `CyberCore Signer-0.1.0.msi` será gerado dentro da pasta `dist/`.
|
||||
|
||||
---
|
||||
|
||||
## 3. Instalação e Inicialização com o Sistema
|
||||
## 3. Empacotamento para Linux (DEB / RPM / AppImage)
|
||||
|
||||
1. Execute o instalador `CyberCore-Signer-0.1.0.msi`.
|
||||
2. Siga as instruções do assistente de instalação.
|
||||
3. Ao concluir, o ícone do **CyberCore Signer** aparecerá na Área de Notificação (System Tray) ao lado do relógio do Windows.
|
||||
4. O serviço local `http://127.0.0.1:21325` estará imediatamente disponível para atender as aplicações web autorizadas.
|
||||
No ambiente Linux x86_64:
|
||||
|
||||
```bash
|
||||
# Executar o script nativo:
|
||||
./scripts/package-jpackage.sh
|
||||
```
|
||||
|
||||
O script utiliza o `jpackage` com o parâmetro `--type deb` ou `--type app-image`, empacotando os binários nativos e dependências do JavaFX com suporte ao subsistema gráfico X11/Wayland.
|
||||
|
||||
---
|
||||
|
||||
## 4. Implantação Corporativa e Instalação Silenciosa
|
||||
|
||||
Para administradores de rede (AD / GPO / SCCM / Intune) que precisam instalar o agente em centenas de estações de trabalho de forma automatizada:
|
||||
|
||||
### Instalação Silenciosa via Linha de Comando (MSI):
|
||||
```cmd
|
||||
msiexec /i "CyberCore Signer-0.1.0.msi" /qn /norestart
|
||||
```
|
||||
|
||||
### Instalação com Registro de Log de Auditoria:
|
||||
```cmd
|
||||
msiexec /i "CyberCore Signer-0.1.0.msi" /qn /l*v "C:\Temp\cybercore_install.log"
|
||||
```
|
||||
|
||||
### Desinstalação Silenciosa:
|
||||
```cmd
|
||||
msiexec /x "CyberCore Signer-0.1.0.msi" /qn /norestart
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Inicialização com o Sistema e Área de Notificação (System Tray)
|
||||
|
||||
1. **Atalhos Criados:** O instalador cria automaticamente atalhos no Menu Iniciar e na Área de Trabalho.
|
||||
2. **Inicialização Automática:** Durante a instalação, pode ser adicionada uma entrada no registro do Windows:
|
||||
`HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run`
|
||||
Chave: `CyberCoreSigner` -> Caminho: `"C:\Program Files\CyberCore Systems\CyberCore Signer\CyberCore Signer.exe" --minimized`
|
||||
3. **Área de Notificação:** Quando iniciado, o agente minimiza para a bandeja do sistema (System Tray) ao lado do relógio do Windows, garantindo que o servidor local `127.0.0.1:21325` esteja sempre pronto para atender as solicitações das aplicações web homologadas.
|
||||
|
||||
Reference in New Issue
Block a user