Skip to content
MikroTik RouterOS Docs

RouterOS Package Installation

RouterOS Version: 7.x+ Difficulty: Beginner Estimated Time: 10 minutes

For the impatient: here’s the 30-second version.

# Check your architecture
/system resource print
# Download package (replace version/arch)
/tool fetch url="https://download.mikrotik.com/routeros/7.17/zerotier-7.17-arm.npk"
# Reboot to install
/system reboot

RouterOS uses a modular package system where additional features like ZeroTier, Container support, or User Manager are delivered as optional NPK (Network Package) files. These packages must be downloaded, uploaded to the router, and activated through a reboot.

This guide covers the package installation workflow for both manual and automated scenarios.

RouterOS packages are architecture-specific NPK files:

routeros-{arch}-{version}.npk # Base system (always installed)
zerotier-{arch}-{version}.npk # ZeroTier VPN support
container-{arch}-{version}.npk # Docker container support
user-manager-{arch}-{version}.npk # Hotspot user management
ups-{arch}-{version}.npk # UPS monitoring

Architectures: arm, arm64, tile, mipsbe, smips, ppc, x86, mmips

Package Installation Workflow

  • RouterOS 7.x running on your device
  • Internet connectivity (for direct download) or file access (for manual upload)
  • Packages must match both the RouterOS version AND architecture exactly

Determine your router’s architecture to download the correct package:

/system resource print

Look for the architecture-name field. Common values:

  • arm - Most modern MikroTik devices (hAP, cAP, etc.)
  • arm64 - CCR2000 series
  • tile - CCR1000 series
  • x86 - CHR (Cloud Hosted Router)

The package version must exactly match your RouterOS version:

/system package print

Note the version number (e.g., 7.17).

Use /tool fetch to download directly from MikroTik’s servers:

/tool fetch url="https://download.mikrotik.com/routeros/7.17/zerotier-7.17-arm.npk"

Replace the URL with the appropriate package, version, and architecture.

Confirm the package file is present:

/file print where name~"npk"

You should see your downloaded NPK file listed.

Packages are installed automatically during boot when NPK files are present:

/system reboot

Confirm with y when prompted.

After the router comes back online, verify the package is installed:

/system package print

The new package should appear in the list with status “installed”.

/system package print

Expected Output:

Flags: X - disabled
# NAME VERSION BUILD-TIME SCHEDULED
0 routeros 7.17 2025-01-06 09:30:00
1 zerotier 7.17 2025-01-06 09:30:00
/system resource print

Expected Output:

uptime: 5m30s
...
architecture-name: x86
board-name: CHR
...

When validating documentation that requires package installation:

  1. Upload the package using the upload_package MCP tool:

    upload_package(router_name="staging-router-01",
    package_url="https://download.mikrotik.com/routeros/7.17/zerotier-7.17-x86.npk")
  2. Reboot the router using the reboot_router MCP tool:

    reboot_router(router_name="staging-router-01")
  3. Wait for router to come back using the wait_for_router MCP tool:

    wait_for_router(router_name="staging-router-01", timeout=120)
  4. Run validation normally after router is back online.

For automated deployments, create a script:

:local pkgUrl "https://download.mikrotik.com/routeros/7.17/zerotier-7.17-arm.npk"
:local pkgFile "zerotier-7.17-arm.npk"
# Download package
/tool fetch url=$pkgUrl dst-path=$pkgFile
# Schedule reboot (gives time for download to complete)
:delay 5s
/system reboot

Symptoms: NPK file present but package not in list after reboot

Causes and Solutions:

  1. Version mismatch:

    /file print where name~"npk"
    /system package print

    Compare versions - they must match exactly.

  2. Architecture mismatch:

    /system resource print

    Verify architecture matches the downloaded package.

  3. Corrupted download:

    • Delete the file and re-download
    • Verify file size matches expected size

Symptoms: /tool fetch returns error

Causes and Solutions:

  1. DNS resolution failure:

    /ip dns print
    /ping download.mikrotik.com count=3
  2. Firewall blocking outbound:

    /ip firewall filter print where chain=output
  3. HTTPS certificate issues:

    /tool fetch url="http://download.mikrotik.com/..." mode=http

    Try HTTP instead of HTTPS.

Symptoms: Router stuck in boot loop or unresponsive

Solution:

  1. Use Netinstall to reinstall RouterOS
  2. Or boot to backup RouterOS (hold reset button during power-on)
PackagePurposeSize
zerotierZeroTier VPN client~2MB
containerDocker container support~3MB
user-managerHotSpot user management~1MB
upsUPS monitoring~500KB
gpsGPS device support~500KB
caleaLawful intercept (US)~500KB

After successful installation, remove the NPK file to save storage:

/file remove [find name~"npk"]
  • License - CHR license requirements for some packages
  • Files - manage package files on router
  • Resources - check available storage for packages
  • Logging - view package installation logs
  • Console - serial console for boot issues