Self-hosting the Rumble platform

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

Installation steps

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

Rumble Updates

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