سرویس systemd

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

آخرین به‌روزرسانی ۲۳ مرداد ۱۴۰۵نمایش به‌صورت مارک‌داون

مرور کلی

در حالت systemd، پنل به شکل باینری خالی nasnet-panel اجرا می‌شود و یک فایل unit مدیریتش می‌کند، بدون اینکه Docker در کار باشد. اگر استقرار systemd را انتخاب کنید، نصب‌کنندهٔ راهنما همین unit را برایتان می‌نویسد. این صفحه نشان می‌دهد چه چیزی تولید می‌شود، تا بتوانید بازبینی‌اش کنید، دستی بازسازی‌اش کنید، یا یک نصب در حال اجرا را عیب‌یابی کنید.

پیش از شروع

  • یک توزیع لینوکس بر پایهٔ systemd (systemctl باید موجود باشد).
  • باینری nasnet-panel سر جایش باشد و یک فایل .env کنارش.
  • یک پایگاه‌داده در دسترس، یا PostgreSQL روی میزبان یا DB_DRIVER=sqlite.

گام‌ها

  1. باینری را در /usr/local/nasnet-panel/bin/nasnet-panel نصب کنید و .env خودتان را در /usr/local/nasnet-panel/.env بگذارید.
  2. unit را در /etc/systemd/system/nasnet-panel.service بنویسید:
[Unit]
Description=nasnet-panel Backend API
Documentation=https://github.com/nasnet-community/nasnet-panel-linux
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
WorkingDirectory=/usr/local/nasnet-panel
EnvironmentFile=/usr/local/nasnet-panel/.env
ExecStart=/usr/local/nasnet-panel/bin/nasnet-panel serve
Restart=always
RestartSec=5
LimitNOFILE=65536

StandardOutput=journal
StandardError=journal
SyslogIdentifier=nasnet-panel

[Install]
WantedBy=multi-user.target

وقتی PostgreSQL روی همان میزبان اجرا می‌شود، نصب‌کننده unit پایگاه‌داده را به After= و به یک سطر Requires= هم اضافه می‌کند، و Environment=DB_HOST=localhost را می‌گذارد.

  1. systemd را بارگذاری دوباره کنید، بعد سرویس را فعال و اجرا کنید.
sudo systemctl daemon-reload
sudo systemctl enable nasnet-panel --now
  1. مطمئن شوید که در حال اجراست و لاگ‌ها را بخوانید.
systemctl is-active nasnet-panel
journalctl -u nasnet-panel -n 50 -f

مرجع

مسیر چیست
/usr/local/nasnet-panel پوشهٔ نصب و پوشهٔ کاری
/usr/local/nasnet-panel/bin/nasnet-panel باینری پنل
/usr/local/nasnet-panel/.env فایل محیط که unit بارگذاری می‌کند
/etc/systemd/system/nasnet-panel.service خود فایل unit
/usr/local/nasnet-pgsql پوشهٔ نصب PostgreSQL همراه بسته، وقتی استفاده شود
nasnet-postgresql.service unit مربوط به PostgreSQL همراه بسته، وقتی استفاده شود

رفع مشکلات

نشانه چه کنید
سرویس راه می‌افتد و بی‌درنگ می‌میرد. Restart=always هر پنج ثانیه از نو تلاش می‌کند، پس برای خطای واقعی journalctl -u nasnet-panel -n 50 را تماشا کنید. کوتاه بودن JWT_SECRET_KEY (کمتر از ۳۲ نویسه) و در دسترس نبودن پایگاه‌داده دو دلیل رایج‌تر هستند.

مرتبط