The Insaion Agent can be installed as a LinuxDocumentation Index
Fetch the complete documentation index at: https://docs.insaion.com/llms.txt
Use this file to discover all available pages before exploring further.
systemd service on the target device, or run as a Docker container. The systemd installation is the standard method for robots, gateways, and edge computers running Ubuntu. Docker installation is available for containerized deployments.
For systemd: You no longer need to download a package manually or start the agent with a one-off command. The installer configures the machine, installs the agent, enables the service, and starts it automatically.
For Docker: Copy and run a generated docker run command with your configuration options.
Installation methods
Systemd installation
After installation, the device has:- A background service:
insaion-agent.service - A runtime configuration file:
/etc/default/insaion-agent - Persistent agent state:
/var/lib/insaion-agent - A local pairing UI on port
9090for manual registration when the device is not yet enrolled
Docker installation
After running the docker command, you have:- A running container named
insaion-agent - Volume mounts for persistent state (
/var/lib/insaion-agent), system access (/proc,/sys,/dev), and optional ROS workspaces - Environment variables for registration and ROS configuration
- A local pairing UI on port
9090for manual registration (pairing method only)
Supported environment
Systemd installation
- Ubuntu Linux with
systemd - Ubuntu
22.04and24.04for generic host installs - ROS2-enabled Ubuntu systems, where the installer detects the installed ROS environment and configures the matching agent package automatically
- Outbound internet access to Insaion services and package repositories
sudoor root access
Docker installation
- Linux host with Docker installed and running
- Any Ubuntu, Debian, or compatible Linux distribution
- Outbound internet access to Insaion services and container registries
- Docker socket access (for running as privileged container)
- Optional: GPU support with nvidia-docker or
--gpusflag
Recommended workflow
- In the Insaion web app, go to Devices and click Add Device.
- Choose your installation method: Ubuntu (systemd) or Docker.
- Choose your registration method: Enrollment Key or Pairing Token.
- Configure optional settings: ROS distribution, custom workspace, DDS middleware, etc.
- Copy the generated installation command from the wizard.
- Run that command on the target machine.
- Verify the agent is running (
systemctl statusfor Ubuntu,docker psfor Docker). - If you chose pairing, finish registration in the local web UI at port
9090. If you chose enrollment, the device registers automatically.
Install the agent
Systemd installation
The installer used by the dashboard is:Docker installation
The wizard generates a completedocker run command with your configuration. For example:
What happens during installation
Systemd installer
When you run the installer, it automatically:- Detects whether the machine is a generic Ubuntu system or a ROS2-based system
- Configures the required package repositories
- Installs agent dependencies
- Writes installation-time settings into
/etc/default/insaion-agent - Installs the Insaion Agent package
- Enables and starts
insaion-agent.service
Docker container startup
When you run the docker command, it:- Pulls the container image (if not already present)
- Creates a container named
insaion-agent - Mounts required system volumes for hardware access and ROS network configuration
- Mounts persistent storage for agent state
- Applies environment variables for registration and ROS configuration
- Starts the container in the background
Registration methods
You can register a device in one of two ways.Method 1: Enrollment Key
Use enrollment keys for production deployments, golden images, scripted provisioning, and fleet rollout. Read more on the Add device page.Enrollment steps
- In the dashboard, choose Enrollment Key in the Add Device wizard.
- Paste or select the enrollment key in the wizard.
- Copy the generated install command.
- Run the command on the device.
- The installer stores the enrollment key in
/etc/default/insaion-agent, starts the systemd service, and the agent attempts automatic registration. - After successful registration, the device appears in the Devices page.
Verify enrollment
Method 2: Pairing Token
Use pairing tokens for one-off devices, lab setups, demos, and interactive debugging. Read more on the Add device page.Pairing steps
- In the dashboard, choose Pairing Token in the Add Device wizard.
- Copy the generated install command.
- Run the command on the target Linux machine.
- Once installation completes, open the local pairing page at
http://localhost:9090orhttp://<device-ip>:9090. - In the dashboard, generate a pairing token.
- Paste the token into the local pairing page and submit it.
- After successful registration, the device appears in the Devices page.

Service management
Systemd (Ubuntu installation)
The agent is managed like any other systemd service:Docker
Manage the container using standard Docker commands:Configure the agent
Systemd (Ubuntu installation)
The main configuration file is:Docker
When running in Docker, configuration is passed via environment variables in thedocker run command. To change configuration after the container is created, either:
Option 1: Stop and re-run with new variables
/etc/default/insaion-agent just like the systemd version. You can exec into the container to edit it:
Common configuration variables
ENROLLMENT_KEY: automatically register the device without manual pairingROS_DISTRO: ROS2 distribution the agent should source before launchCUSTOM_ROS_SETUP: path to an additional ROS workspace setup script, for example a custom messages workspaceRMW_IMPLEMENTATION: DDS middleware selection such as CycloneDDS or Fast DDSROS_DOMAIN_ID: ROS domain ID for discovery isolationROS_AUTOMATIC_DISCOVERY_RANGE: ROS discovery range setting when used in your deploymentROS_STATIC_PEERS: static peer list for ROS discoveryROS_LOCALHOST_ONLY: restrict ROS traffic to localhost when requiredFASTRTPS_DEFAULT_PROFILES_FILE: Fast DDS profile pathROS_DISCOVERY_SERVER: Fast DDS discovery server addressCYCLONEDDS_URI: CycloneDDS configuration URIZENOH_ROUTER_CONFIG_URI: Zenoh router config locationZENOH_SESSION_CONFIG_URI: Zenoh session config locationZENOH_ROUTER_CHECK_ATTEMPTS: retry count for Zenoh router availability checks
/etc/default/insaion-agent.
Example manual configuration
Systemd
Docker
When generating your docker command in the wizard, or manually updating it:Verify installation
Systemd
Use the following checklist after install:sudo systemctl status insaion-agentshows the service as runningsudo journalctl -u insaion-agent -fshows normal startup logs- The device appears on the Devices page after registration
- If using pairing, the local UI is reachable on port
9090
Docker
Use the following checklist after running the container:docker ps | grep insaion-agentshows the container as runningdocker logs insaion-agentshows startup logs with no errors- The device appears on the Devices page after registration
- If using pairing, the local UI is reachable on port
9090on the Docker host - Check that
/var/lib/insaion-agenton the host has writable permissions for the container
Docker-specific considerations
Required volumes and capabilities
The generated docker command includes specific mounts and capabilities needed for the agent to function:--network host: Allows the agent to communicate with the robot’s ROS network--pid host: Host PID namespace sharing for monitoring host processes--cap-add=NET_RAW: Required for certain network operations--gpus all: Passes GPU devices to the container (if available)-v /dev/shm:/dev/shm: Shared memory for ROS communication-v /proc:/host/proc:ro: Host process information (read-only)-v /sys:/host/sys:ro: Host system information (read-only)-v /etc:/host/etc:ro: Host etc directory (read-only)-v /var/lib/insaion-agent:/var/lib/insaion-agent: Persistent agent state
Custom workspace volumes
If you specify a custom ROS workspace directory when running on Docker, the wizard automatically adds a mount for it:Persistent state
The container must have a writable volume for/var/lib/insaion-agent. Ensure the host path (/var/lib/insaion-agent by default) has appropriate permissions for the container processes to write state files.
Restarting and updating
To update the agent container:Troubleshooting
Systemd
The service is not running Check status and view logs:ENROLLMENT_KEY is present and correct:
9090 is reachable:
CUSTOM_ROS_SETUP to your workspace setup.bash in /etc/default/insaion-agent and restart:
Docker
The container is not running Check container status and logs:ENROLLMENT_KEY was passed to the container:
9090 is accessible:
/var/lib/insaion-agent is correct and writable:
