Self-hosting the Rumble platform

Note: Self-hosting is only available with Rumble Enterprise

The self-hosted version of Rumble allows you to run everything on-premises. It supports a fully offline mode that gives you full control over the service and includes a CLI for service, update, and user management.

The self-hosted Rumble platform has nearly the same functionality as our cloud-hosted console. The primary difference is that you are in complete control of your data. Additionally, some of our third-party integrations only work with our cloud-hosted console at this time.

Requirements

Before you get started, make sure your systems meet the following requirements.

Hardware requirements

  • 4 CPU Cores at 2 GHz or faster
  • 100 GB of local disk storage
  • 32 GB of RAM

Software requirements

  • PostgreSQL 12 or newer (Our installer can install this for you)

Supported operating systems

  • Ubuntu 20.04 64-bit
  • Ubuntu 18.04 64-bit
  • Red Hat Enterprise Linux 8.x 64-bit
  • Red Hat Enterprise Linux 7.x 64-bit
  • CentOS Linux 8.x 64-bit
  • CentOS Linux 7.x 64-bit

Connectivity

The self-hosted Rumble platform requires the following connectivity (in online mode):

  • Outbound access to console.rumble.run (13.248.161.247, 76.223.34.198) on TCP port 443 for HTTP and WebSocket traffic over TLS

Offline mode

The self-hosted version of Rumble has the ability to run in an offline mode. It won’t make any requests to the internet and requires offline updates to be applied. Enable this mode if you’re in an isolated network, or you don’t want your self-hosted Rumble console to make any connections to the internet.

Installing with offline mode

  • Run the installer with the --offline flag in combination with --distro-packages-only or --postgres-rpm-directory

More information can be found under Installation with offline mode.

Enabling offline mode for existing installs

  • Open /etc/rumble/config with an editor of your choice.
  • Look for OFFLINE= and change it to OFFLINE=true.
  • Restart the Rumble service rumblectl restart.

Updating with offline mode

More information can be found under CLI update with offline mode.

Installation steps

For offline installs please see Installation with offline mode.

Here’s what the installation process will do:

  • Set up PostgreSQL and create a passworded user.
  • Generate TLS certificates for your IP address located in /etc/rumble/certs.
  • Generate a configuration file at /etc/rumble/config and set some defaults.
  • Create a systemD service for the Rumble platform.
  • Create all the necessary cron jobs required for the Rumble platform.
Step 1: Download and run the installer
Step 2: Initialize the admin user

After you’ve installed the Rumble platform, you will have access to the Rumble CLI rumblectl.

To initialize an admin user, run:

rumblectl initial [email address]
Step 3: Log in to your self-hosted console

If everything is set up correctly, you can log in to your console at https://YourInternalIPAddress.

Note that you may need to enable HTTPS to pass through the Linux system firewall. Example commands:

Ubuntu Linux: sudo ufw allow https/tcp

RHEL/CentOS: sudo firewall-cmd --add-port=443/tcp

Installation with offline mode

The self-hosted Rumble platform comes with a few options for your installation. You can utilize these options by adding flags to the install command. The current flags available are --offline, --distro-packages-only, and --postgres-rpm-directory

--offline                                 Install the self-hosted platform in a completely isolated network. No internet connection is required.
--distro-packages-only                    Install without using third-party repositories. (Not available on RHEL/CentOS 7)
--postgres-rpm-directory [directory]      Install using supplied PostgreSQL RPM files. (Requires RHEL or CentOS)

PostgreSQL RPMs required for --postgres-rpm-directory

RHEL/CentOS 8 RPMs can be found here: https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-8-x86_64/

RHEL/CentOS 7 RPMs can be found here: https://yum.postgresql.org/13/redhat/rhel-7-x86_64/repoview/

There are four RPMs we require for installing PostgreSQL 13

  • postgresql13
  • postgresql13-server
  • postgresql13-contrib
  • postgresql13-libs

Example install commands for offline mode

The first step is to download the Rumble platform

RHEL/CentOS 7 or 8

  1. Download the required RPMs above and store them in a directory.
  2. Run this install command.
./rumble-platform-[VERSION]-linux-amd64.bin --offline --postgres-rpm-directory [RPM_DIRECTORY]

Ubuntu 18.04+ or RHEL/CentOS 8

  1. Run this install command.
./rumble-platform-[VERSION]-linux-amd64.bin --offline --distro-packages-only

Rumble Updates

For offline updates please see CLI update with offline mode.

The self-hosted Rumble platform can handle updates for you. When you tell rumblectl to update, it will download the update and then restart the service after the update is complete.

You can update the platform and scanners at the same time or separately with the CLI update management commands.

Managing users

You can manage users inside your self-hosted Rumble platform console at https://YourInternalIPAddress/team or via the Rumble CLI

Some things you can manage:

  • Adding, deleting, and listing users
  • Resetting passwords
  • Changing default roles
  • Viewing details
  • Changing organization roles

CLI service management

Start the Rumble service

Starts the Rumble platform service.

rumblectl start
Stop the Rumble service

Stops the Rumble platform service.

rumblectl stop
Restart the Rumble service

Restarts the Rumble platform service.

rumblectl restart
Install the Rumble platform

Install the Rumble platform service and all required dependencies such as PostgreSQL. Creates a SystemD service, generates cron jobs, and generates a configuration file in /etc/rumble.

rumblectl install
Uninstall the Rumble platform

Stop and remove the Rumble platform service from SystemD and removes the generated cron jobs. This does not remove your PostgreSQL database, and it retains your data.

rumblectl uninstall
Purge the Rumble platform

Stop and remove the Rumble platform service from SystemD and removes the generated cron jobs. This will delete your Rumble database and remove all the Rumble directories /etc/rumble and /opt/rumble.

rumblectl purge
Serve the Rumble platform manually

Starts the Rumble platform manually.

rumblectl server

CLI update management

Update the Rumble platform and scanners

Updates the Rumble platform service and Rumble scanners. You can use the optional parameter force to force the update even if the current installation is the latest version.

rumblectl update [force]
Update the Rumble platform

Updates just the Rumble platform service. You can use the optional parameter force to force the update even if the current install is the latest version.

rumblectl update-platform [force]
Update the Rumble scanners

Updates just the Rumble scanners. You can use the optional parameter force to force the update even if the current installation is the latest version.

rumblectl update-scanner [force]

CLI update with offline mode

Update the Rumble platform and scanners with an offline update
rumblectl update rumble-platform-update-[VERSION].zip
rumblectl update --offline --zip-file-path rumble-platform-update-[VERSION].zip

You will need to change the version to match the zip archive you downloaded.

CLI user management

Create the initial administrator account

Creates the initial admin user for a new installation. You must provide an email address.

rumblectl initial <email>
List user accounts

Lists all the users along with their email address, full name, and current roles.

rumblectl user list
Add a user account

Creates a new user account under the initial administrator user. You must provide an email address.

rumblectl user add <email>
Delete a user account

Deletes a user account. You must provide an email address. This cannot be undone.

rumblectl user delete <email>
Get user details

Gets the details for a user account. You must provide an email address. Provides information such as full name, date created, last login IP, last login time, last activity, default organization role, and their current roles. You must provide an email address.

rumblectl user details <email>
Set a user role

Sets a user’s role to the role provided. Email and role must be provided. The organization is optional. If the organization isn’t provided this sets their default role.

rumblectl user set-role <email> [organization name or organization ID]:<role>
Reset a user password

This will generate and apply a new password for the specified user. The password will be printed to the terminal. You must provide an email address.

rumblectl user reset <email>

CLI organization management

List all organizations

Lists all the organizations by their name and ID.

rumblectl organization list