# نصب

> سه راه برای به کار انداختن نس‌نت پنل: Docker، اسکریپت نصب RouterOS، یا نصب‌کنندهٔ گرافیکی.

Source: https://joinnasnet.com/fa/guides/nasnet-panel/install/
Last updated: 2026-08-14

---

## مرور کلی

نس‌نت پنل یک ایمیج (image) کانتینر چندمعماری است که هم JSON API و هم رابط کاربری
وب را روی یک پورت ارائه می‌دهد. سه راه پشتیبانی‌شده برای به کار انداختنش هست:
Docker ساده روی هر میزبانی (host)، اسکریپت `install.sh` که آن را داخل یک کانتینر
RouterOS روی خود روتر مستقر می‌کند، و یک نصب‌کنندهٔ گرافیکی برای Windows و macOS
که همان کار را بدون ترمینال انجام می‌دهد.

اگر همین حالا جایی روی شبکهٔ محلی (LAN) کانتینر اجرا می‌کنید، Docker را انتخاب
کنید. اگر می‌خواهید پنل روی همان دستگاه میکروتیکی باشد که مدیریتش می‌کند،
اسکریپت یا نصب‌کنندهٔ گرافیکی را انتخاب کنید.

## پیش از شروع

- پنل باید بتواند به روترهای شما روی شبکهٔ محلی برسد.
- RouterOS نسخهٔ ۷ روی روترهایی که می‌خواهید مدیریت کنید.
- برای نصب روی خود روتر: بستهٔ `container` نصب و فعال باشد، `device-mode` کانتینر
  فعال باشد، حافظهٔ خارجی متصل باشد (پیش‌فرض `disk1/`)، دست‌کم ۳۰ مگابایت RAM آزاد
  باشد و برد `arm` یا `arm64` یا `x86_64` باشد.
- فعال کردن `device-mode` کانتینر برای بار اول به تأیید فیزیکی نیاز دارد، یعنی یک
  فشار کوتاه دکمهٔ reset/mode، یا روی بردهایی که این دکمه را ندارند یک خاموش و
  روشن کامل.
- برای اسکریپت: `bash` و `curl` و `ssh` و `scp` و `sha256sum` (یا `shasum`) روی
  رایانه‌ای که اسکریپت را از آن اجرا می‌کنید، به اضافهٔ روتری که روی پورت‌های
  `8291` و `22` در دسترس باشد.

## گام‌ها

### Docker

1. ایمیج را اجرا کنید و یک پورت میزبان را به پورت `80` کانتینر نگاشت کنید.

   ```bash
   docker run -d \
     --name nasnet \
     -p 8080:80 \
     --restart unless-stopped \
     ghcr.io/nasnet-community/nasnet-panel:latest
   ```

2. `http://localhost:8080` را باز کنید.
3. اگر کانتینر باید مستقیم به روترهای شبکهٔ محلی شما برسد، جای آن از شبکهٔ میزبان
   استفاده کنید:

   ```bash
   docker run -d --name nasnet --network=host --restart unless-stopped \
     ghcr.io/nasnet-community/nasnet-panel:latest
   ```

   سرویس compose معادلش:

   ```yaml
   services:
     nasnet:
       image: ghcr.io/nasnet-community/nasnet-panel:latest
       container_name: nasnet
       network_mode: host
       environment:
         PORT: 80
       restart: unless-stopped
   ```

### روی روتر، با `install.sh`

1. اسکریپت را اجرا کنید. در حالت تعاملی آدرس IP روتر و کاربر و رمز را می‌پرسد:

   ```bash
   bash scripts/install.sh
   ```

2. یا یک فایل پیکربندی به سبک env بدهید تا بی‌نظارت اجرا شود:

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

3. منتظر health check بمانید. اسکریپت Winbox (`8291`) و SSH (`22`) را وارسی
   می‌کند، نسخهٔ RouterOS و معماری و RAM آزاد و پشتیبانی کانتینر را بررسی می‌کند،
   tar کانتینر مربوط به معماری تشخیص‌داده‌شده را می‌گیرد و درستی‌اش را تأیید
   می‌کند، شبکهٔ کانتینر را پیکربندی می‌کند، tar را به `disk1/` می‌فرستد، کانتینر
   را راه می‌اندازد و تا ۱۲۰ ثانیه `/health` را می‌پرسد.
4. `http://<router-ip>:8080/` را باز کنید. اگر گام baseline LAN اجرا شده باشد،
   پنل به جای آن روی `http://192.168.10.1:8080/` است، پس اول دوباره وصل شوید یا
   lease مربوط به DHCP را تازه کنید.

برای برداشتن همه‌چیز:

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

### با نصب‌کنندهٔ گرافیکی

1. فایل `nasnet-panel-installer-windows-amd64.exe` یا
   `nasnet-panel-installer-macos-universal.dmg` را از release دلخواهتان بگیرید.
2. **Router IP or hostname** و **User** و **Password** را پر کنید.
3. اگر لازم است **Winbox port** یا **SSH port** یا **HTTP LAN port** یا
   **HTTPS LAN port** یا **Image source** را عوض کنید (**Latest snapshot** یا
   **Release tag** یا یک **Local tar**)، **Advanced options** را باز کنید.
4. **Install** را بزنید و بگذارید کارش را بکند. اگر روتر برای device-mode تأیید
   فیزیکی بخواهد، نصب‌کننده **Physical confirmation required** را نشان می‌دهد، پس
   دکمهٔ reset را فشار دهید یا روتر را خاموش و روشن کنید، بعد **Proceed**.

## مرجع

### فلگ‌های `install.sh`

| فلگ | چه می‌کند | پیش‌فرض |
| --- | --------- | ------- |
| `--dry-run` | هر کاری که می‌خواست بکند چاپ می‌کند و چیزی را عوض نمی‌کند. | خاموش |
| `--uninstall` | کانتینر، شبکه، قواعد NAT و tarball فرستاده‌شده را برمی‌دارد. | خاموش |
| `--config <file>` | `ROUTER_IP`، `ROUTER_USER` و `ROUTER_PASS` را از یک فایل به سبک env می‌خواند. | ندارد |
| `--version <tag>` | تگ release برای نصب. | `snapshot` |
| `--image-tar <path>` | جای گرفتن یک دارایی release، از یک tar محلی استفاده می‌کند. | ندارد |
| `--lan-port <port>` | پورت رو به شبکهٔ محلی برای قاعدهٔ dst-nat. | `8080` |
| `--no-lan-baseline` | راه‌اندازی baseline LAN را رد می‌کند. | خاموش |
| `--no-rollback` | هنگام شکست، وضعیت نیمه‌کاره را همان‌جا می‌گذارد. | خاموش |
| `-v`، `--verbose` | خروجی پرجزئیات. | خاموش |
| `-h`، `--help` | طرز استفاده را نشان می‌دهد. | ندارد |

### متغیرهای محیطی backend

| متغیر | چه می‌کند | پیش‌فرض |
| ----- | --------- | ------- |
| `PORT` | پورت TCP که API و SPA توکار روی آن گوش می‌دهند. | `8080` در dev و `80` در کانتینر |
| `HOST` | آدرس bind. | `0.0.0.0` |
| `ENVIRONMENT` | مقدار `production` مسیرهای مخصوص dev مثل Swagger UI را غیرفعال می‌کند. | `development` |
| `BACKEND_URL` | زمان build. خالی بودنش یعنی SPA از آدرس‌های نسبی به مبدأ (origin) خودش استفاده می‌کند. | خالی |
| `SENTRY_DSN` | زمان build. جایی که رابط کاربری گزارش‌های crash را می‌فرستد. برای حذف گزارش‌دهی در کامپایل، رشتهٔ خالی بگذارید. | DSN پروژهٔ نس‌نت |

## رفع مشکلات

| نشانه | چه کنید |
| ----- | ------- |
| اسکریپت روی `device-mode` متوقف می‌شود. | RouterOS بار اول که device-mode کانتینر فعال می‌شود تأیید فیزیکی می‌خواهد. دکمهٔ reset/mode را کوتاه فشار دهید، یا روتر را از برق بکشید و دوباره بزنید، بعد اسکریپت را دوباره اجرا کنید. |
| پنل پس از پایان اسکریپت در دسترس نیست. | گام baseline LAN شبکهٔ محلی روتر را روی `LANBridgeSplit` با `192.168.10.1/24` می‌برد. lease مربوط به DHCP را تازه کنید و `http://192.168.10.1:8080/` را امتحان کنید. |
| کانتینر بالا می‌آید و بعد بسته می‌شود. | روتر برای پنل دست‌کم ۳۰ مگابایت RAM آزاد لازم دارد. `/system/resource/print` را ببینید و کانتینرهای دیگر را متوقف کنید. |

## مرتبط

- [اولین اجرا](/fa/guides/nasnet-panel/first-run/)
- [افزودن روتر](/fa/guides/nasnet-panel/add-router/)
- [به‌روزرسانی‌ها](/fa/guides/nasnet-panel/updates/)
