پنل اصلی (Control Plane) برای فروش دسترسی نود با سهمیهی حجم: مدیریت چند نود (fleet)، مشتری/پلن/اشتراک/سهمیه، جمعآوری مصرف و expose برای بیلینگ بیرونی (ربات فروش)، با API مستند (OpenAPI) و پنل وب ریسپانسیو.
Repo:
https://github.com/loopy-iri/NodePanelنودِ چند-مستأجری در ریپوی جدا:https://github.com/loopy-iri/NodeAgent
📖 راهنمای کامل (نصب، فروش، اتصال مشتری، API):
docs/wiki/— نسخهی تب Wiki روی ریپوی NodeAgent منتشر شده است.
پنل منطق پول ندارد (کیفپول/قیمت/پرداخت در ربات فروش است). فقط بایت/زمان/وضعیت را مدیریت و مصرف/overage را از طریق API + webhook expose میکند.
- مدیریت چند نود با master key + TLS (pin گواهی نود یا TOFU خودکار)؛ پورت gRPC قابل تنظیم در ثبت نود.
- مشتری/پلن/اشتراک: ساخت، provision روی نود (ساخت tenant + کلید یکبار)، suspend/resume/topup/renew/delete.
- جزئیات نود: نمایش IP/هاست، پورت سرویس و gRPC، پروتکل و گواهی با دکمهی کپی (
GET /api/v1/nodes/{id}). - اطلاعات اتصال مشتری: آدرس gRPC + گواهی + inboundهای واقعی نود برای تحویل به مشتری (
GET /api/v1/subscriptions/{id}/connection،GET /api/v1/nodes/{id}/inbounds). - Usage collector: pull مصرف تجمعی از نودها + تجمیع per-customer + بازتاب وضعیت.
- Webhook با امضای HMAC:
usage.threshold,usage.over_quota,subscription.suspended/resumed/expired. - پنل وب: داشبورد/نودها/مشتریها/پلنها/اشتراکها/وبهوکها، ریسپانسیو، RTL، چندتم (light/dark/midnight/emerald)، ویرایشگر کانفیگ هستهی نود (no-cache تا بعد از آپدیت UI تازه شود).
- OpenAPI 3 روی
/openapi.yamlو Swagger UI روی/docs.
# نصب کامل (دانلود باینری per-arch + systemd؛ بدون build روی سرور):
sudo bash -c "$(curl -sL https://raw.githubusercontent.com/loopy-iri/NodePanel/main/scripts/pg-panel.sh)" @ install
# یا از روی clone:
sudo bash scripts/pg-panel.sh install --port 8080دستورهای CLI: install, update [VER], uninstall, up, down, restart, status, logs, set-token [TOKEN], info, edit-env, completion.
نصب از باینری ازپیشساخته (GitHub Releases، web embedشده در باینری) و اجرا با systemd (سرویس
pg-panel) — بدون Docker. برای ساخت باینریها یک تگv*push کن.
$env:PANEL_API_TOKEN="dev-token"; go run ./cmd/panel
# UI: http://localhost:8080/
# Docs: http://localhost:8080/docs| متغیر | پیشفرض | شرح |
|---|---|---|
PANEL_HTTP_ADDR |
:8080 |
آدرس گوشدادن |
PANEL_DB_PATH |
panel.db |
مسیر SQLite |
PANEL_API_TOKEN |
dev-token-change-me |
توکن Bearer برای /api/* |
PANEL_COLLECT_INTERVAL |
30s |
بازهی usage collector |
cmd/panel/ entrypoint
internal/store/ SQLite + schema
internal/nodeclient/ client نود (master key + pin/TOFU)
internal/api/ REST API + collector + lifecycle
internal/webhook/ dispatcher امضاشده
internal/web/ پنل وب embedشده + openapi.yaml + Swagger UI