نمایک، نیاز اول کسب و کارها
پرش به محتوای اصلی

نصب عامل نمایک

نصب عامل با فایل اجرایی امضاشده، Docker یا سرویس systemd، و ثبت آن با توکن یک‌بارمصرف پنل.

در این صفحه

پیش‌نیازها

  • لینوکس x64 یا arm64 (فایل اجرایی تک‌فایلی) یا Docker روی amd64.
  • ابزار رسمی موتور روی همان سرور (pg_dump، mysqldump، mongodump، redis-cli، sqlite3 یا sqlcmd)؛ تصویر Docker همه را دارد.
  • اتصال خروجی HTTPS به لبه پشتیبان‌گیری؛ هیچ درگاه ورودی لازم نیست.
  • ساعت دقیق (NTP)؛ اختلاف بیش از ۵ دقیقه درخواست‌ها را رد می‌کند.

فایل اجرایی

فایل اجرایی تک‌فایلی است و به Node.js جدا نیاز ندارد. معماری از uname -m خوانده می‌شود: x86_64 ⇒ x64 و aarch64 ⇒ arm64.

فایل اجرایی
( set -eutest -s namayek-release.pub || { echo "namayek-release.pub not found: save the Ed25519 release key from the Namayek docs next to this script (never from the download server)" >&2; exit 1; }V="0.2.0"BASE="https://vault.namayek.com/releases/agent/$V"case "$(uname -m)" in  x86_64)  ARCH=x64 ;;  aarch64) ARCH=arm64 ;;  *) echo "unsupported architecture" >&2; exit 1 ;;esaccurl -fsSLO "$BASE/namayek-agent-$V-linux-$ARCH"curl -fsSLO "$BASE/SHA256SUMS"curl -fsSLO "$BASE/SHA256SUMS.sig"# 1) Ed25519 signature of the checksum list (OpenSSL >= 3.0; namayek-release.pub from the docs); only the exact success line countsopenssl pkeyutl -verify -pubin -inkey namayek-release.pub -rawin -in SHA256SUMS -sigfile SHA256SUMS.sig | grep -q '^Signature Verified Successfully'# 2) checksum of the downloaded filesha256sum --ignore-missing -c SHA256SUMSsudo install -m 0755 "namayek-agent-$V-linux-$ARCH" /usr/local/bin/namayek-agentid -u namayek-agent >/dev/null 2>&1 || sudo useradd --system --home /var/lib/namayek-agent --shell /usr/sbin/nologin namayek-agentsudo install -d -o namayek-agent -m 0700 /var/lib/namayek-agent /etc/namayek-agent)

بررسی امضای انتشار

هر انتشار فهرست هش‌ها (SHA256SUMS) و امضای Ed25519 آن (SHA256SUMS.sig) را دارد. اول امضا را با کلید عمومی انتشار نمایک بسنجید و فقط بعد هش فایل را؛ اگر امضا معتبر نبود هیچ چیزی نصب نکنید.

Docker

تصویر Docker همه ابزارهای موتورها را دارد و به Docker Hub نیازی نیست؛ فایل تصویر مستقیم از لبه نمایک دریافت و با docker load بارگذاری می‌شود.

Docker
( set -eutest -s namayek-release.pub || { echo "namayek-release.pub not found: save the Ed25519 release key from the Namayek docs next to this script (never from the download server)" >&2; exit 1; }V="0.2.0"BASE="https://vault.namayek.com/releases/agent/$V"curl -fsSLO "$BASE/namayek-agent-$V-amd64.oci.tar.zst"curl -fsSLO "$BASE/SHA256SUMS"curl -fsSLO "$BASE/SHA256SUMS.sig"# 1) Ed25519 signature of the checksum list (OpenSSL >= 3.0; namayek-release.pub from the docs); only the exact success line countsopenssl pkeyutl -verify -pubin -inkey namayek-release.pub -rawin -in SHA256SUMS -sigfile SHA256SUMS.sig | grep -q '^Signature Verified Successfully'# 2) checksum of the downloaded filesha256sum --ignore-missing -c SHA256SUMSzstd -dc "namayek-agent-$V-amd64.oci.tar.zst" | docker loaddocker run -d --name namayek-agent --restart unless-stopped \  --env-file /etc/namayek-agent/agent.env \  -v namayek-agent:/var/lib/namayek-agent \  -v /etc/namayek-agent/config.json:/etc/namayek-agent/config.json:ro \  namayek/agent:$V run)

سرویس systemd

عامل با کاربر بی‌دسترسی و سخت‌گیری‌های systemd اجرا می‌شود؛ فقط پوشه وضعیت خودش قابل نوشتن است.

namayek-agent.service
# /etc/systemd/system/namayek-agent.service[Unit]Description=Namayek backup agentAfter=network-online.targetWants=network-online.target [Service]User=namayek-agentEnvironmentFile=/etc/namayek-agent/agent.envExecStart=/usr/local/bin/namayek-agent runNoNewPrivileges=yesProtectSystem=strictReadWritePaths=/var/lib/namayek-agentPrivateTmp=yesProtectHome=yesRestrictAddressFamilies=AF_UNIX AF_INET AF_INET6Restart=on-failure [Install]WantedBy=multi-user.target
Shell
sudo systemctl daemon-reloadsudo systemctl enable --now namayek-agentnamayek-agent status

ثبت عامل و افزودن منبع

توکن ثبت را در پنل بسازید (یک‌بارمصرف و کوتاه‌عمر). نشانی اتصال و رمز پایگاه داده فقط در فایل محیطی می‌ماند و عامل پس از ثبت موفق توکن را از فایل پاک می‌کند.

agent.env
# /etc/namayek-agent/agent.env  (chmod 0600 — values stay on your server)NMK_ENROLL_TOKEN=PASTE_ENROLLMENT_TOKEN_FROM_PANELPG_MAIN_DSN=postgres://backup@db.internal:5432/shop?sslmode=verify-fullPG_MAIN_PASSWORD=
Shell
sudo -u namayek-agent namayek-agent enroll --token "$NMK_ENROLL_TOKEN" --name "db-main"sudo -u namayek-agent namayek-agent source add {sourceId} --engine postgres --dsn-env PG_MAIN_DSN --password-env PG_MAIN_PASSWORDsudo -u namayek-agent namayek-agent source test {sourceId}

مرجع کامل پیکربندی در پیکربندی عامل و همه دستورها در خط فرمان است.

آخرین به‌روزرسانی: