วิธีการตั้งค่า Uptime Kuma บน Azure Virtual Machine
หมายเหตุ บทความนี้ Draft ไว้ตั้งแต่วันที่ Dec 21, 2022 ถ้ามีเนื้อหาไหนที่ไม่ได้ Up-to-date ก็สามารถแจ้งได้เลยนะครับ
สวัสดีครับเพื่อนๆ ผู้อ่านทุกท่านที่กำลังมองหาวิธีการตั้งค่า Uptime Kuma บน Azure Virtual Machine ในบทความนี้เราจะมาแนะนำขั้นตอนการทำงานให้รู้เรื่องและเข้าใจง่ายๆ พร้อมกันนะครับ
เมื่อคุณพยายามติดตั้ง Uptime Kuma บน Azure App Service โดยใช้ Azure Files แล้ว คุณอาจพบข้อผิดพลาดเช่นนี้ ดูรายละเอียดเพิ่มเติมที่ uptime-kuma#1096
vbnetCopy code
[Error: PRAGMA journal_mode = WAL - SQLITE_BUSY: database is locked]
เมื่อลองใช้งาน Azure App Service กับ Kuma Uptime จะพบว่า Kuma ต้องการ SQLite ในรูปแบบที่เป็น local เท่าที่อ่านจาก Official Doc "Mount Azure Storage as a local share in App Service"
It isn't recommended to use storage mounts for local databases (such as SQLite) or for any other applications and components that rely on file handles and locks.
พบว่าเค้าไม่แนะนำให้เรา mount volume จำพวก local database เช่น SQLite หรือพวกแอพที่ต้องจัดการเรื่องไฟล์ หรือกลไกการ Lock
ดังนั้น สิ่งที่คุณควรทำคือใช้ Virtual Machine (VM) แทน ในขั้นตอนถัดไปคือการติดตั้ง Docker บน Azure Virtual Machine และคุณสามารถเพิ่ม Custom Domain ด้วย DNS A Record และ IP v4 ได้ตามขั้นตอนที่แนะนำไว้ในลิงก์นี้ azure/virtual-machines/custom-domain
เพื่อให้การเชื่อมต่อเป็น https คุณสามารถใช้ Docker-compose และ https-portal
ได้นะ
ตัวอย่างการตั้งค่า Docker Compose สำหรับ Uptime Kuma และ https-portal
สามารถดูได้ดังนี้ครับ
version: '3.3'
services:
https-portal:
image: steveltn/https-portal:1
ports:
- '80:80'
- '443:443'
links:
- uptime-kuma
restart: always
environment:
DOMAINS: 'yourdomain.com -> http://uptime-kuma:3001'
STAGE: 'production' # Don't use production until staging works
# FORCE_RENEW: 'true'
WEBSOCKET: 'true'
volumes:
- https-portal-data:/var/lib/https-portal
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
volumes:
- ./uptime-kuma:/app/data
ports:
- 3001:3001
restart: always
volumes:
https-portal-data:
ถ้าคุณกำลังมองหาวิธีการตั้งค่า Uptime Kuma บน Azure Virtual Machine คุณสามารถทำตามขั้นตอนที่กล่าวมาได้อย่างง่ายดาย
ป.ล. สำนวนภาษาอาจจะแปลกๆ บ้างนะ เพราะใช้ ChatGPT ช่วยเรียบเรียงให้
อ่านเพิ่มเติม
- Using Azure File Shares as Container Volume Mounts in App Services
- ถ้าคุณต้องการเพิ่มความสามารถให้เว็บไซต์ของคุณมีความเสถียรและพร้อมใช้งานเสมอ ก็สามารถใช้ Uptime Kuma พร้อมกับ Docker และ Traefik ได้ตามคำแนะนำในลิงก์นี้เลย Use Docker, Uptime Kuma, and Traefik To Monitor Your Website สำหรับบริการดีๆ แบบนี้