Installed GUI Integration
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user