# Command line

> Install the panel on your router from a terminal with install.sh, on Linux, macOS or Windows.

Source: https://joinnasnet.com/en/guides/nasnet-panel/install/cli/
Last updated: 2026-10-15

---

## Overview

`install.sh` is a bash script that installs Nasnet Panel on your MikroTik
router from a terminal. It does everything the
[graphical installer](/en/guides/nasnet-panel/install/graphical-installer/)
does, and it can also run unattended from a config file. It runs on Linux and
macOS as it is, and on Windows through WSL or Git Bash.

## Before you start

- Your computer is connected to the router, preferably with a cable to a LAN
  port, not `ether1`.
- You know the router's address (usually `192.168.88.1`), and a username and
  password with full rights.
- The router meets the requirements in
  [Installation](/en/guides/nasnet-panel/install/).
- Your computer has `bash`, `curl`, `ssh`, `scp`, and `sha256sum` or `shasum`.
  The sections below cover each system.

## Steps

### Linux

1. Check that the tools are there. Most distributions include them. If `scp` is
   missing, install the OpenSSH client: `sudo apt install openssh-client` on
   Debian and Ubuntu, or `sudo dnf install openssh-clients` on Fedora.
2. Download the script and run it:

   ```bash
   curl -fsSLO https://raw.githubusercontent.com/nasnet-community/nasnet-panel/dev/scripts/install.sh
   bash install.sh
   ```

3. Continue with [Answer the prompts](#answer-the-prompts).

### macOS

1. Open **Terminal**. macOS already has every tool the script needs. It uses
   `shasum` in place of `sha256sum` automatically.
2. Download the script and run it:

   ```bash
   curl -fsSLO https://raw.githubusercontent.com/nasnet-community/nasnet-panel/dev/scripts/install.sh
   bash install.sh
   ```

3. Continue with [Answer the prompts](#answer-the-prompts).

### Windows

The script doesn't run in Command Prompt or PowerShell. Use one of these:

- **WSL (recommended).** Open PowerShell as administrator and run
  `wsl --install`, then restart. Open **Ubuntu** from the Start menu and follow
  the Linux steps above.
- **Git Bash.** Install [Git for Windows](https://git-scm.com/download/win),
  which includes `bash`, `curl`, `ssh` and `scp`. Open **Git Bash** and run:

  ```bash
  curl -fsSLO https://raw.githubusercontent.com/nasnet-community/nasnet-panel/dev/scripts/install.sh
  bash install.sh
  ```

Then continue with [Answer the prompts](#answer-the-prompts).

If you'd rather not set up a shell, use the
[graphical installer](/en/guides/nasnet-panel/install/graphical-installer/).

### Answer the prompts

1. Enter the **Router IP**. The script checks Winbox (`8291`) and SSH (`22`),
   and asks for another port if one doesn't answer.
2. Enter the **Router user** (`admin` by default) and **Router password**.
3. Follow the output. When the script asks for physical confirmation, press the
   reset/mode button briefly, or unplug and replug the router.
4. When it finishes, renew your DHCP lease and open
   `http://192.168.10.1:8080/`.

### Run it unattended

Put the router details in a file and pass it with `--config`:

```bash
cat > router.env <<'EOF'
ROUTER_IP=192.168.88.1
ROUTER_USER=admin
ROUTER_PASS=secret
EOF
bash install.sh --config router.env
```

To keep the password out of the file, leave out `ROUTER_PASS` and set `SSHPASS`
instead:

```bash
SSHPASS=secret bash install.sh --config router.env
```

### Uninstall

```bash
bash install.sh --uninstall --config router.env
```

This removes the container, its network settings, the installer's firewall
rules and the uploaded files. Your LAN stays on `192.168.10.1/24`.

## Reference

| Flag | What it does | Default |
| ---- | ------------ | ------- |
| `--dry-run` | Prints every action and changes nothing. | Off |
| `--uninstall` | Removes the container, networking, NAT rules and uploaded files. | Off |
| `--config <file>` | Reads `ROUTER_IP`, `ROUTER_USER` and `ROUTER_PASS` from a file. | None |
| `--version <tag>` | Release to install. `snapshot` installs the development build. | Latest release |
| `--image-tar <path>` | Uses a local image tar instead of downloading one. | None |
| `--storage <name>` | Disk for the container, or `internal`. | Asks when needed |
| `--lan-port <port>` | LAN port for the panel over HTTP. | `8080` |
| `--https-lan-port <port>` | LAN port for the panel over HTTPS. | `8443` |
| `--no-lan-baseline` | Keeps your current LAN instead of moving it to `192.168.10.1/24`. | Off |
| `--wifi-uplink` | Joins a WiFi network as the router's internet for the install. | Off |
| `--wifi-ssid <ssid>` | WiFi network to join, instead of picking from a scan. | None |
| `--wifi-password <pw>` | WiFi password, instead of the prompt. Also read from `WIFI_PASSWORD`. | Asks |
| `--no-rollback` | Leaves changes in place when the install fails. | Off |
| `-v`, `--verbose` | Prints more detail. | Off |
| `-h`, `--help` | Shows usage. | None |

## Troubleshooting

**`missing required tool: scp`** (or `ssh`, `curl`). Install the OpenSSH client
or curl for your system, as described in the Linux steps.

**`bash: install.sh: No such file or directory` on Windows.** You're in
PowerShell or Command Prompt. Open WSL or Git Bash and run it there.

**The script stops and asks you to use another port.** Your computer is plugged
into `ether1`, which the script needs for the internet connection. Move the
cable to another port and run the script again.

## Related

- [Installation](/en/guides/nasnet-panel/install/)
- [Graphical installer](/en/guides/nasnet-panel/install/graphical-installer/)
- [Adding a router](/en/guides/nasnet-panel/add-router/)
