Skip to main content

Overview

Mecha-Agent is an open-source tool designed to manage and monitor Mecha Machines. It provides a range of services to ensure efficient operation and communication within the Mecha ecosystem.

Services​

  • Provisioning: Configuring and setting up Mecha Machines for operation within the network, including initial setup and configurations.
  • Messaging: Facilitating secure communication between Mecha Machines and other components, supporting multiple messaging protocols and real-time data transmission.
  • Machine Status: Monitoring the health and operational status of Mecha Machines, providing alerts for critical issues.
  • Settings: Configuring various operational parameters of the Mecha Agent, including network configurations, logging options, and custom settings.
  • Networking: Managing connectivity aspects of Mecha Machines, supporting different network protocols, and handling dynamic network environments.
  • Telemetry: Collecting and transmitting performance data from Mecha Machines to monitor system health, optimize performance, and analyze machine operations.

Set up Mecha Agent​

  • Docker: Deploy the Mecha Agent using Docker containers for a consistent and isolated environment, enabling easy scaling and management across different systems.
  • Linux: Install and configure the Mecha Agent on Linux-based operating systems. Ensure compatibility with various distributions and make use of native system tools for deployment.
  • macOS: Set up the Mecha Agent on macOS environments. Utilize system-specific commands and configurations to ensure smooth operation on both Intel and Apple Silicon architectures.
  • Windows: Install and run the Mecha Agent on Windows operating systems, using available installation packages and compatible tools for seamless integration.
  • Kubernetes: Deploy the Mecha Agent within a Kubernetes cluster for automated orchestration, scaling, and management of containerized applications.
  • Building from source: Compile the Mecha Agent directly from the source code, allowing for custom modifications and optimizations suited to specific deployment requirements.

Create Configuration File​

Files in the format of yml are supported. When starting Mecha Agent, you specify the path to the settings file via the -- -s flag. The settings.yml file is used to manage the configuration of Mecha Agent. Here is an example of what the file might look like:

# settings.yml

version: 1.0
logging:
enabled: true
path: /var/log/mecha-agent.log
level: DEBUG
server:
url: 0.0.0.0
port: 3001
tls: false
messaging:
system:
enabled: true
url: nats://nats:4222
user:
enabled: true
url: nats://nats-machine:4222
service_urls:
base_url:
get_nonce: /v1/messaging/get_nonce
issue_auth_token: /v1/messaging/issue_token
settings:
storage:
type: file
path: ~/.mecha/agent/db
status:
time_interval_sec: 60
networking:
enabled: true
disco_addr: 0.0.0.0:8080
wireguard:
tun: wg0
port: 51820
userspace: linux
telemetry:
enabled: true
collect:
system: true
user: true

Environmental Variables​

Environmental variables take precedence over config file values. Nested paths get mapped to config values by putting an underscore __ (double underscore) between every level, so messaging.service_urls.get_nonce becomes MECHA_AGENT_MESSAGING__SERVICE_URLS__GET_NONCE=<value>.

Start Agent​

# to build 
cargo build

# to run
sudo cargo run -- -s "./settings.yml"

# env to set settings file path
MECHA_AGENT_SETTINGS_PATH # default ~/.mecha/agent/settings.yml

Supported Platforms​

  • Linux

    • Minimum version: kernel 2.6.32 or later
    • Architectures: AMD64, ARM64
  • macOS

    • Minimum version: macOS 10.13 or later
    • Architectures: AMD64 (Intel), ARM64 (Apple Silicon)