For the complete documentation index, see llms.txt. This page is also available as Markdown.

Installation and Upgrade

This guide covers installing and upgrading the Rumi Controller.

Prerequisites

  • Operating System: macOS (x86_64) or Linux (x86_64)

  • Java: JDK 11 or later

  • Disk Space: At least 500MB free for installation

  • SSH Access: Required for remote provisioning to target hosts

Installation Overview

The Controller is installed from a platform-specific distribution package. The distribution includes:

  • Controller binaries and libraries

  • Platform-specific native libraries

  • An install.sh script for automated installation

Supported Platforms

Platform
Distribution Name

macOS (Intel)

osx-x86-64

Linux (x86_64)

linux-x86-64

Standard Installation

Download the Distribution

Download the appropriate platform-specific distribution from the Rumi downloads server:

Install the Distribution

Extract and run the installer:

Clean Up

Directory Structure

After installation, the following structure is created:

Key Directories

Directory
Purpose

bin/java/lib/

Java libraries for the Controller and applications

bin/<platform>/lib/

Platform-specific native libraries

conf/

Configuration files including controller.conf

systems/

Deployed systems (persistent data)

Configuration

The Controller reads its configuration from controller.conf. Key properties to configure at installation time:

Property
Description
Default

nv.controller.systemsroot

Directory for deployed systems

systems/

nv.controller.extroot

Directory for external libraries

ext/

See the Controller Configuration Reference for the complete list of properties.

Remote Provisioning

The Controller supports SSH-based remote provisioning to target hosts.

Prerequisites for Remote Provisioning

  • SSH key-based authentication configured

  • SSH access to the target host

  • Sufficient permissions on the target host

Remote Installation

Starting Containers

Containers are launched using the xvm.sh script:

NUMA Affinity

For performance-critical deployments, you can pin containers to specific NUMA nodes:

NUMA affinity is typically managed by the Rumi Agent when launching containers. Manual NUMA configuration is only needed for standalone deployments.

Deploying Applications

After installation, deploy application JARs and resources:

Upgrade

To upgrade the Controller:

  1. Stop any running containers managed by the Controller.

  2. Back up persistent data:

  3. Install the new version to the same target directory. The installer will replace the binaries while preserving the systems/ directory.

  4. Verify configuration: Check controller.conf for any new or changed properties in the new version.

  5. Restart containers using the Rumi Agent or manually.

The systems/ directory contains deployed application data and should be preserved across upgrades. Only the Controller libraries and binaries are replaced during upgrade.

Rollback

To rollback to a previous version:

  1. Stop all running containers.

  2. Back up the current installation.

  3. Install the previous version to the same target directory.

  4. Restore any configuration changes if needed.

  5. Restart containers.

Verifying the Installation

After installation, verify the Controller is properly set up:

Troubleshooting

Container Won't Start

  1. Check that Java is available in the path:

  2. Verify the xvm.sh script is executable:

  3. Review the container logs in the logs directory.

Missing Native Libraries

If you see errors about missing native libraries:

  1. Verify the platform-specific distribution was installed:

  2. Ensure the distribution matches the host platform.

SSH Provisioning Failures

  1. Verify SSH key-based authentication works:

  2. Check the target directory permissions on the remote host.

  3. Ensure the remote host has sufficient disk space.

Last updated