No description
Find a file
Zepheris fed5262e07 fix: Add actual MeshCentral URLs for all architectures
Replace placeholder mesh URLs with real MeshCentral agent URLs:
- x86: meshinstall=5
- arm64: meshinstall=26
- armv6: meshinstall=25

All architectures now have functional MeshAgent installation URLs
pointing to the correct MeshCentral agent variants.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-22 01:07:01 -06:00
.forgejo/workflows fix: Update URLs to use proper domain cdn.zepheris.com 2026-03-21 22:25:48 -06:00
CLAUDE.md docs: Update documentation with architecture-specific mesh URLs 2026-03-22 00:50:26 -06:00
last_built_version.txt Build: rmmagent v2.10.0.0 2026-03-22 03:58:46 +00:00
linuxrmm fix: Add actual MeshCentral URLs for all architectures 2026-03-22 01:07:01 -06:00
linuxrmm-update feat: Add installer and update scripts to repository 2026-03-22 00:52:26 -06:00
README.md docs: Add comprehensive documentation for linuxrmm-update script 2026-03-22 00:55:18 -06:00

LinuxRMM - Automated TacticalRMM Agent Installer

Fast, lightweight Linux installer for the TacticalRMM agent with pre-compiled binaries for all major architectures.

Features

Zero Compilation - Uses pre-built binaries (no Go toolchain required) Fast Deployment - Install in seconds, not minutes 🏗️ Multi-Architecture - Supports amd64, x86, arm64, armv6 🔄 Auto-Updated - Binaries rebuild automatically when rmmagent updates 📦 Lightweight - Minimal dependencies (bash, wget, systemd) 🛡️ Secure - HTTPS-only downloads, architecture-specific configuration

Quick Start

wget https://cdn.zepheris.com/linuxrmm
sudo bash linuxrmm

Requirements

  • Linux OS (any distribution)
  • bash, wget
  • Network access to:
    • cdn.zepheris.com (download binaries)
    • mesh.zepheris.com (MeshAgent)
    • api.zepheris.com (TacticalRMM server)

Supported Architectures

Architecture Binary Systems
AMD64 rmmagent-amd64 x86_64, most servers/desktops
x86 rmmagent-x86 i386, i686, 32-bit systems
ARM64 rmmagent-arm64 aarch64, Raspberry Pi 4+, Apple Silicon
ARMv6 rmmagent-armv6 armv6l, Raspberry Pi 1-3

The installer automatically detects your architecture and downloads the correct binary.

Installation Steps

1. Download and Run

wget https://cdn.zepheris.com/linuxrmm
sudo bash linuxrmm

2. What the Script Does

The installer will automatically:

  • Detect your system architecture (amd64, x86, arm64, armv6)
  • Download the pre-compiled rmmagent binary
  • Install MeshAgent for remote support
  • Register the agent with your TacticalRMM server
  • Configure systemd service for auto-start and auto-restart
  • Start the agent

Total installation time: ~30 seconds (no compilation)

3. Verify Installation

systemctl status tacticalagent

Should show: Active: active (running)

Configuration

RMM Server Settings

Edit these variables in linuxrmm:

rmm_url="https://api.zepheris.com"         # Your RMM server URL
rmm_client_id=1                            # Client ID
rmm_site_id=1                              # Site ID
rmm_auth="YOUR_AUTH_KEY"                   # Authentication token
rmm_agent_type="server"                    # Agent type (server/workstation)

MeshAgent Settings

The script requires different MeshAgent URLs for each architecture. Configure these in the script:

mesh_url_amd64="https://mesh.zepheris.com/meshagents?id=...&installflags=0&meshinstall=6"
mesh_url_x86="https://mesh.zepheris.com/meshagents?id=...&installflags=0&meshinstall=6"
mesh_url_arm64="https://mesh.zepheris.com/meshagents?id=...&installflags=0&meshinstall=6"
mesh_url_armv6="https://mesh.zepheris.com/meshagents?id=...&installflags=0&meshinstall=6"

How to Generate MeshAgent URLs for Each Architecture

For each architecture, repeat these steps:

  1. Go to your MeshCentral instance: https://mesh.zepheris.com
  2. Click Add Agent
  3. Select Installation ExecutableLinux / BSD / macOS
  4. Choose the system type matching the architecture:
    • Linux x64mesh_url_amd64
    • Linux x86mesh_url_x86
    • Linux ARM64mesh_url_arm64
    • Linux ARMv6mesh_url_armv6 (or similar 32-bit ARM option)
  5. Copy the full URL provided
  6. Paste it into the corresponding mesh_url_* variable in the linuxrmm script

Example mesh URL format:

mesh_url_amd64="https://mesh.zepheris.com/meshagents?id=abc123xyz789&installflags=0&meshinstall=6"

The installer will automatically select the correct URL based on the detected system architecture.

Troubleshooting

Binary download fails

"Failed to download rmmagent binary"

Check if the file server is reachable:

curl -I https://cdn.zepheris.com/LinuxRMM/rmmagent-amd64

Verify your system has internet access and can reach cdn.zepheris.com. If binaries are missing, the build workflow may not have run yet - check Forgejo Actions.

Agent fails to start

Check systemd logs:

journalctl -u tacticalagent -n 50

Verify RMM server connectivity:

curl -I https://api.zepheris.com

Architecture mismatch

Verify your system architecture:

uname -m

Should match one of: x86_64, i686, aarch64, armv6l

Agent shows as offline

  1. Check firewall allows outbound HTTPS to RMM server
  2. Verify authentication credentials in script
  3. Check RMM server is running and accessible

Advanced Usage

Download Only (No Install)

# Download binary for manual inspection
wget https://cdn.zepheris.com/LinuxRMM/rmmagent-amd64

Manual Installation

# If you have the binary already
sudo cp rmmagent-amd64 /usr/local/bin/rmmagent
sudo chmod +x /usr/local/bin/rmmagent

# Register with server
sudo /usr/local/bin/rmmagent -m install \
  -api https://api.zepheris.com \
  -client-id 1 \
  -site-id 1 \
  -agent-type server \
  -auth YOUR_AUTH_KEY

# Enable service
sudo systemctl enable --now tacticalagent

Update Agent Binary

Use the dedicated update script for quick agent updates:

# Quick update (downloads latest binary for your architecture)
wget https://cdn.zepheris.com/linuxrmm-update
sudo bash linuxrmm-update

The script automatically:

  • Detects your architecture
  • Downloads the latest binary
  • Stops the service
  • Updates the binary
  • Restarts the service

Downtime: ~10-15 seconds

Complete Uninstall

# Stop and disable the service
sudo systemctl stop tacticalagent
sudo systemctl disable tacticalagent

# Remove binaries
sudo rm /usr/local/bin/rmmagent
sudo rm -rf /opt/tacticalmesh

# Remove systemd service
sudo rm /etc/systemd/system/tacticalagent.service
sudo systemctl daemon-reload

Available Files

Current files available at: https://cdn.zepheris.com/

Installation & Update Scripts:

linuxrmm              (Initial installation script)
linuxrmm-update       (Agent update script)

Agent Binaries (at https://cdn.zepheris.com/LinuxRMM/):

rmmagent-amd64       (AMD64/x86_64)
rmmagent-x86        (32-bit x86)
rmmagent-arm64      (ARM64/aarch64)
rmmagent-armv6      (ARMv6)
MANIFEST.txt        (Build metadata and version info)

The installer and update scripts automatically detect your architecture and download the correct binary. All binaries are always the latest version - they're overwritten when a new build completes.

System Integration

Service Management

# Check status
sudo systemctl status tacticalagent

# Start/stop
sudo systemctl start tacticalagent
sudo systemctl stop tacticalagent

# View logs
sudo journalctl -u tacticalagent -f

# Restart on reboot
sudo systemctl enable tacticalagent

Automatic Updates

The agent can check for updates from your RMM server and apply them automatically. This is handled through the TacticalRMM management interface.

Manual Updates with linuxrmm-update

For manual control or offline updates, use the linuxrmm-update script:

# Download the update script
wget https://cdn.zepheris.com/linuxrmm-update

# Make it executable
sudo chmod +x linuxrmm-update

# Run the update (automatically detects architecture)
sudo bash linuxrmm-update

What the update script does:

  1. Detects system architecture automatically
  2. Downloads the latest pre-compiled rmmagent binary from cdn.zepheris.com
  3. Stops the tacticalagent service gracefully
  4. Replaces the agent binary
  5. Restarts the tacticalagent service

Update time: ~10-15 seconds (no compilation, minimal downtime)

Note: The update script only updates the rmmagent binary. MeshAgent updates are handled separately through the MeshCentral interface.

Security

  • Uses HTTPS for all server communication
  • Binaries are pre-compiled and verified
  • No custom build flags (standard Go compilation)
  • Minimal privileges (runs as root, necessary for system monitoring)

What Gets Installed

  • rmmagent - Pre-compiled TacticalRMM agent binary (/usr/local/bin/rmmagent)
  • meshagent - MeshCentral agent for remote support (/opt/tacticalmesh)

Files and Directories Created:

  • /usr/local/bin/rmmagent - Agent executable
  • /opt/tacticalmesh/ - MeshAgent installation directory
  • /etc/systemd/system/tacticalagent.service - Systemd service unit file

FAQ

Q: Do I need Go installed? A: No, Go is already compiled into the agent binary. Go installation is only needed if you plan to compile from source.

Q: Can I use this on Raspberry Pi? A: Yes! Raspberry Pi 1-3 uses ARMv6 (rmmagent-armv6), Pi 4+ uses ARM64 (rmmagent-arm64).

Q: How often are binaries updated? A: Automatically when rmmagent releases a new version (checked daily).

Q: What if my architecture isn't supported? A: Contact your system administrator. Additional architectures can be added to the build process.

Q: Does the installer require internet access? A: Yes, the installer downloads binaries from cdn.zepheris.com and MeshAgent from mesh.zepheris.com. Network connectivity is required.

Q: How do I update the agent? A: You have two options:

  1. Via TacticalRMM server - The agent can auto-update through your RMM server interface
  2. Manual update - Use the linuxrmm-update script for quick manual updates:
wget https://cdn.zepheris.com/linuxrmm-update
sudo bash linuxrmm-update

Q: What's the difference between the installer and update script? A: The installer (linuxrmm) is for initial setup - it installs both rmmagent and MeshAgent, configures everything, and registers with your server. The update script (linuxrmm-update) only updates the rmmagent binary and is much faster (~10-15 seconds vs ~30 seconds).

Support

For issues with:

License

This installer script uses open-source components. Refer to individual projects for licensing.