System requirements
What the panel needs to run, what your routers need to be managed, and the ports that have to be open between them.
Overview
Nasnet Panel has two sides to check. The host is wherever the container runs, either a Docker host on your LAN or the MikroTik itself. The managed routers are the RouterOS devices the panel talks to. They have separate requirements, and the router-hosted install is the stricter of the two.
If you are installing on a server or a desktop, almost anything current will
do: the image is a few megabytes and the binary runs with GOMAXPROCS=1. If
you are installing onto the router, read the RAM and device-mode lines
carefully, because those are where installs fail.
Where the panel runs
Any Docker host
| Requirement | Value |
|---|---|
| Container runtime | Docker, or anything that runs an OCI image |
| Architectures | linux/amd64, linux/arm64, linux/arm/v7 |
| Image | ghcr.io/nasnet-community/nasnet-panel:latest |
| Memory | ~30 MB free is enough; the image is busybox + musl with a compressed binary |
| Network | Must reach your routers on the LAN, so use --network=host if it cannot |
| Ports | 80 and 443 inside the container, mapped wherever you like (the docs use 8080) |
On the router, inside a RouterOS container
| Requirement | Value |
|---|---|
| RouterOS | v7.x |
| Packages | container installed and enabled |
| Device mode | device-mode container enabled, which needs physical confirmation the first time |
| Board architecture | arm, arm64 or x86_64 |
| Free RAM | At least 30 MB |
| Storage | External storage mounted; the installer defaults to disk1/ |
Enabling container device-mode for the first time is a deliberate,
hands-on step: RouterOS asks for a short press of the reset/mode button, or a
cold power cycle on boards without one. It cannot be done remotely, so plan the
install for a time when someone can touch the device.
On the machine you run the installer from
Only relevant if you use scripts/install.sh rather than the graphical
installer.
| Requirement | Value |
|---|---|
| Shell tools | bash, curl, ssh, scp, and sha256sum or shasum |
| Reachability | The router answering on Winbox 8291 and SSH 22 |
Supported devices
Routers the panel can manage
Any MikroTik running RouterOS v7 or newer, provided at least one of its management transports is reachable. There is no model whitelist, because the panel talks to RouterOS itself rather than to a particular board.
| Device class | Supported | Notes |
|---|---|---|
| MikroTik, RouterOS v7+ | Yes | The panel’s target. All features assume v7 semantics. |
| MikroTik, RouterOS v6 | No | The REST API does not exist, and the v6 configuration model differs. |
| CHR and x86 RouterOS | Yes | Treated like any other RouterOS host. |
| Non-MikroTik routers | No | Nothing else speaks the RouterOS API. |
Boards that can host the panel
Only relevant if you run the panel on the router rather than on a server. The installer detects the board architecture and pulls the matching image.
| Board architecture | Container image | Notes |
|---|---|---|
arm |
linux/arm/v7 |
Common on hAP and cAP class boards. |
arm64 |
linux/arm64 |
hAP ax, Chateau ax, RB5009 and similar. |
x86_64 |
linux/amd64 |
x86 RouterOS boxes and CHR. |
Whatever the architecture, the board also needs the container package,
device-mode container enabled, external storage, and at least 30 MB of free
RAM. A board that meets the architecture line but not the RAM line will install
and then fail to stay running.
What the panel manages
| Requirement | Value |
|---|---|
| RouterOS | v7 or newer |
| Transports | REST API, RouterOS API on 8728/8729, SSH, or Telnet |
| Credentials | A RouterOS user with rights for what you intend to change |
The panel tries the REST API first, falls back to the native RouterOS API, then to SSH or Telnet. You do not have to pick one. You only have to leave at least one of them enabled and reachable.
In the browser
The interface is a React single-page app served by the same process as the API, so it needs a current mainstream browser with JavaScript enabled. There is no separate frontend to deploy and no other origin to allow.
Building from source
Only needed if you are developing the panel rather than running it.
| Requirement | Value |
|---|---|
| Node.js | 20 or newer |
| Go | 1.26 or newer |
| Dev ports | 3000 for the frontend dev server, 8080 for the backend |
Troubleshooting
The container starts and then exits on the router. Free RAM is the usual
cause. Check /system/resource/print and stop other containers before
retrying, because the panel needs its 30 MB to be actually free rather than
merely installed.
The installer stops at the device-mode step. That is RouterOS asking for
physical confirmation, not a failure. Press the reset/mode button briefly or
power-cycle the router, then run the installer again.
The panel loads but cannot see any router. The container is probably on a
bridge network with no route to your LAN. Re-run it with --network=host, or
map the panel onto a network that can reach the routers.