Installed GUI Integration

This commit is contained in:
2026-07-26 19:48:26 +05:30
parent 60f5450f47
commit 4afe00e1f8
323 changed files with 2219 additions and 196 deletions

View File

@@ -1,26 +1,83 @@
# Cygnus installation wizard
# Technobee Service Installer
The wizard validates Docker, activates a client license, generates a unique
3072-bit installation signing key, registers the installation, and writes the
deployment files. The license key is never persisted.
One Swing-based Java installer supports Matrix and Cygnus through an external
INI product profile. It never connects to PostgreSQL or Redis. The selected
product cloud service validates the activation key and registers the
installation.
## Build and run
```bash
java -jar target/cygnus-installer-1.0.0-SNAPSHOT.jar
mvn -pl cygnus-installer -am package
TECHNOBEE_INSTALLER_CONFIG=cygnus-installer/config/matrix-installer.ini \
java -jar cygnus-installer/target/technobee-service-installer-1.0.0-SNAPSHOT.jar
```
Set `CYGNUS_CLOUD_URL` before execution. The wizard asks where deployment
files should be written and offers `CYGNUS_INSTALL_OUTPUT` as the default.
Use `config/cygnus-installer.ini` for Cygnus. Before production use, set the
cloud URL and the cloud assertion-encryption public-key path in the selected
INI. Both profiles use these cloud endpoints by default:
The selected output directory contains:
- `POST /api/v1/installations/activation/validate`
- `POST /api/v1/installations/register`
The desktop wizard is the default. It checks Docker, collects activation and
installation details, lets the user choose an output directory, and reports
installation progress. For servers without a desktop or for automation, append
`--cli` to retain the interactive terminal workflow:
```bash
TECHNOBEE_INSTALLER_CONFIG=cygnus-installer/config/matrix-installer.ini \
java -jar cygnus-installer/target/technobee-service-installer-1.0.0-SNAPSHOT.jar --cli
```
## Configuration
```ini
[installer]
product=matrix
cloud_service_url=https://cloud.example.com
installer_api_base_path=/api/v1/installations
environment=production
output_directory=./matrix-installation
[profile.matrix]
display_name=Matrix
service_name=matrix-onprem
image_environment_variable=MATRIX_IMAGE
configuration_root=matrix
configuration_file_name=installation.yml
installation_config_environment_variable=MATRIX_INSTALLATION_CONFIG
container_configuration_path=/opt/matrix/config/installation.yml
token_path=/oauth2/token
assertion_encryption_public_key=/secure/cloud-assertion-public.pem
optional_fields=
```
The installer validates the product, URL, API path, environment, profile
values, and public-key file before asking installation questions.
## Generated output
```text
.env
compose.yml
config/
installation.yml
machine-assertion.jwt
keys/
client-signing-private.pem
client-signing-public.pem
```
The private key is created with owner-only permissions on POSIX systems. The
plaintext installation license key is never written to the output directory.
The installer asks for the product Docker image, validates it, and stores it
under the profile's image variable in `.env`. Docker Compose loads this file
automatically, so no separate `export MATRIX_IMAGE` or `export CYGNUS_IMAGE`
step is required.
The RSA-3072 pair is generated locally. Only the public key is sent during
registration. The private key and encrypted machine assertion remain on
premises and receive owner-only permissions on POSIX systems. The activation
key is never written to disk.
`scripts/setup-local-communication.sh` remains a development/provisioning
utility; it is not used by this installer.