🚀 Kosol.net

Published

- 1 min read

วิธี Deploy Blazor ไปที่ Linux server

img of วิธี Deploy Blazor ไปที่ Linux server

How to publish Blazor

เพื่อให้โปรแกรมของคุณทำงานอัตโนมัติเมื่อ Raspberry Pi (ที่ใช้ Linux เป็น OS) เริ่มต้นหรือรีสตาร์ท คุณสามารถสร้างไฟล์บูต (boot file) สำหรับ systemd ใน Raspberry Pi OS ตามขั้นตอนต่อไปนี้:

  1. สร้างไฟล์บูต .service: สร้างไฟล์ใหม่ใน /etc/systemd/system และตั้งชื่อเป็น myproject.service หรือชื่อที่คุณต้องการ:
   sudo nano /etc/systemd/system/myproject.service
  1. เพิ่มข้อมูลในไฟล์ .service: เพิ่มข้อมูลต่อไปนี้ในไฟล์ myproject.service:
   [Unit]
Description=My Project Service
After=network.target

[Service]
WorkingDirectory=/path/to/your/project/bin/Release/net8.0/publish
ExecStart=/usr/bin/dotnet /path/to/your/project/bin/Release/net8.0/publish/MyProject.dll --urls "http://my.project.com:5000"
Restart=always
# Restart service after 10 seconds if the dotnet service crashes
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=myproject
User=pi
Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target
  • WorkingDirectory: ระบุที่อยู่ของโปรเจคของคุณ
  • ExecStart: ระบุคำสั่งที่จะใช้เริ่มโปรแกรม
  • Restart: ระบุว่าเมื่อเกิดข้อผิดพลาดหรือโปรแกรมจบการทำงาน ให้รีสตาร์ท
  • User: ระบุผู้ใช้ที่จะให้ systemd ใช้ในการรันบริการ
  • Environment: ระบุตัวแปรสภาพแวดล้อมของ ASP.NET Core (Production, Development, etc.)
  1. บันทึกและปิดไฟล์: บันทึกการเปลี่ยนแปลงและปิดไฟล์.

  2. Reload systemd: รีโหลดการกำหนดค่า systemd:

   sudo systemctl daemon-reload
  1. เปิดให้บริการทำงาน: เริ่มให้บริการทำงานแบบอัตโนมัติทุกครั้งที่ Raspberry Pi เริ่มต้น:
   sudo systemctl enable myproject.service
  1. เริ่มให้บริการทำงาน: เริ่มให้บริการทำงาน:
   sudo systemctl start myproject.service

ตอนนี้ บริการของคุณควรจะทำงานเมื่อ Raspberry Pi เริ่มต้นหรือรีสตาร์ท และโปรแกรมของคุณจะถูกเรียกใช้ด้วยคำสั่งที่คุณได้ระบุในไฟล์ .service

การตรวจสอบสถานะของ Service

   systemctl status myproject.service

การเปิด Port สำหรับให้เชื่อมต่อจากภายนอกได้

   sudo apt install ufw
sudo ufw allow 80/tcp

เพียงเท่านี้คุณก็สามารถตั้ง Web Server ที่พัฒนาด้วย Blazor ได้แล้ว กรณีมีหลายเว็บอาจจะต้องศึกษาวิธีใช้ Nginx ช่วยในการ Redirect เว็บไซต์ตามชื่อ Domain เพิ่มเติมนะครับ