Skip to main content
Framed content
Provisioning a device is the process of creating it in Miru and installing the Miru Agent on it. Once provisioned, a device is ready to receive deployments.

Dashboard

The Miru dashboard is the simplest way to provision devices, ideal for getting started or managing individual devices. For automated deployments or provisioning devices at scale, consider using API Keys instead.

Create a Device

Navigate to the Devices page.
Click the New Device button in the top right corner. Enter a descriptive name for your device and click Create.

Install the Agent

Click the Activate button on the device you just created.
A dialog will appear containing a unique, pre-authenticated installation command. Copy this command - you’ll need it in the next step.
The activation token in this install command is short-lived and device-specific. Please don’t share it or reuse it for other devices.
The installation command is composed of several parts:
  • curl -fsSL <installation-script-url> - downloads the installation script from the Miru Agent repository
  • | - pipes the downloaded script to the shell
  • env MIRU_ACTIVATION_TOKEN=<activation-token> - sets the activation token environment variable
  • sh - executes the script with the token
You can review the installation script source code here before running it.
Executing the installation script performs the following actions:
  1. Downloads the agent - fetches the latest Miru Agent Debian package
  2. Installs the service - installs the agent as a systemd service
  3. Activates the device - registers the agent with Miru servers using the activation token
To run the command, open a terminal on the device where you want to install the Miru Agent and paste the installation command.

Verify the Installation

Upon successful installation, you’ll see a confirmation message in the terminal.
==> Successfully activated this device as ArcticBlaze!
Navigating back to the Devices page, you should see your device listed with the status Activating before transitioning to Online.
The transition from Activating to Online typically takes 5-15 seconds, depending on your network connection.

API Keys

To programmatically provision devices, Miru offers API keys. Unlike the dashboard installation, which requires manual interaction with the web interface for each device, provisioning devices via API keys allows you to:
  • Provision multiple devices at scale without manual intervention
  • Integrate with existing infrastructure management tools and workflows
  • Use in headless environments where a web browser isn’t available

Create the API Key

Navigate to the API Keys page in the dashboard and click New API Key in the top right corner. Give the key a descriptive name and select the devices:provision scope.
Finally, click Create to generate the key.
Copy your API key immediately after creation. Once you navigate away from this page, the key cannot be retrieved again.

Provision the Device

On the device you want to install the Miru Agent, set the MIRU_API_KEY environment variable to your API key.
export MIRU_API_KEY=<your-api-key>
Execute the provisioning script to create and activate a device using your API key.
curl -fsSL https://raw.githubusercontent.com/miruml/agent/main/scripts/install/provision.sh | sh -s -- \
  --device-name=$HOSTNAME \
  --allow-reactivation=true
The provision script performs the following actions:
  1. Creates the device - creates a new device in the Miru dashboard if a device with the provided name doesn’t already exist
  2. Downloads the agent - fetches the latest Miru Agent Debian package
  3. Installs the service - installs the agent as a systemd service
  4. Activates the device - registers the agent with Miru servers using the activation token
The provision script supports the following parameters to tune your installation:
--device-name
string
The name of the device in the Miru dashboard.Default: $HOSTNAME
--allow-reactivation
boolean
Allows reactivation of existing devices.Without this flag, only inactive devices can be activated. With this flag, devices that have been previously activated (status online, offline, etc.) may be reactivated.Default: false
--version
string
The agent version to install (e.g., v0.6.0).Defaults to the latest release. See all available versions.
--from-pkg
string
The file path to the Miru Agent Debian package to use for installation. Useful for installing the agent in poor connectivity scenarios.

Verify Installation

Upon successful installation, you’ll see a confirmation message in the terminal.
==> Successfully activated this device as ArcticBlaze!
Navigating back to the Devices page, you should see your device listed with the status Activating before transitioning to Online.
The transition from Activating to Online typically takes 5-15 seconds, depending on your network connection.

Poor Connectivity

Some environments may have a poor internet connection. Whether located in a remote area or using a cellular connection, downloading the Miru Agent over a network may be impractical in some environments. In such scenarios, we recommend downloading the Miru Agent to a computer with a stable connection and then transferring it to the target machine. While this method circumvents the need to download the Miru Agent over a network, activating the agent still requires some level of connectivity to register the device with the Miru servers.
Some connectivity (however weak) is required to activate the agent. If a device is not connected, the agent cannot be activated.

Download the Agent

All Miru Agent releases are available as Debian packages on GitHub. You can find the latest release here.
Releases with the Pre-release tag are not yet considered stable and may contain bugs or other issues. Use at your own risk.
To download the agent, drop down the Assets section for the desired release. The assets ending with the .deb extension are the Debian packages for the Miru Agent.
The Debian packages are all the same version of the Miru Agent, but built for different architectures (i.e. amd64, arm64, etc.). Find the architecture that matches your target machine’s architecture and download the package. For example, if your robot is an x86_64 machine, you’ll want to download the miru-agent_<version>_amd64.deb package. If your robot is an aarch64 machine, you’ll want to download the miru-agent_<version>_arm64.deb package. To download a package, click on the filename in GitHub.

Transfer the Agent

Once you’ve downloaded the appropriate Debian package, transfer it to your target machine. This can be done via a variety of methods, such as a USB drive.

Install the Agent

After transferring the package to your target machine, install it by adding the --from-pkg argument to the installation command. API keys If installing via an API key, add the --from-pkg argument to the provision script.
curl -fsSL https://raw.githubusercontent.com/miruml/agent/main/scripts/install/provision.sh | sh -s -- \
--device-name=$HOSTNAME \
--allow-reactivation=true \
--from-pkg=/path/to/miru-agent_<version>_<architecture>.deb
You’ll need to replace <path/to/miru-agent_<version>_<architecture>.deb> with the actual path to the package.
Dashboard If installing via the dashboard, follow these steps.
  1. Copy the installation command from the dashboard
  2. Append -s -- --from-pkg=/path/to/agent.deb and replace the <path/to/agent.deb> with the actual path to the agent package
This will give you an installation command similar to the following.
curl -fsSL https://raw.githubusercontent.com/miruml/agent/main/scripts/install/install.sh | \
env MIRU_ACTIVATION_TOKEN=<activation-token> \
sh -s -- \
--from-pkg=</path/to/agent.deb>
Do not copy the example command below. It will not work because it lacks the required activation token. Instead, follow the steps listed above.