Files
matrix/cygnus-installer
..
2026-07-26 19:48:26 +05:30
2026-07-26 19:48:26 +05:30
2026-07-26 19:48:26 +05:30
2026-07-26 19:48:26 +05:30
2026-07-26 19:48:26 +05:30

Technobee Service Installer

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

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

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:

  • 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:

TECHNOBEE_INSTALLER_CONFIG=cygnus-installer/config/matrix-installer.ini \
java -jar cygnus-installer/target/technobee-service-installer-1.0.0-SNAPSHOT.jar --cli

Configuration

[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

.env
compose.yml
config/
  installation.yml
  machine-assertion.jwt
  keys/
    client-signing-private.pem
    client-signing-public.pem

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.