Google Cloud (GCP)
ติดตั้ง rtCloud บน Google Cloud Compute Engine โดยใช้สคริปต์เริ่มต้น gcp-compute.sh
ใช้ gcp-compute.sh เป็น Startup script เมื่อสร้างอินสแตนซ์ VM ของ Compute Engine สคริปต์ทำงานอัตโนมัติเมื่อบูตครั้งแรก
ดาวน์โหลดสคริปต์: gcp-compute.sh
ขั้นตอนที่ 1 — กรอกการกำหนดค่า
เปิดสคริปต์และแก้ไขบล็อก CONFIGURATION ที่ด้านบน:
# --- ต้องมี ---
PROJECT_ID="rtsurvey"
ADMIN_PASSWORD="admin" # เปลี่ยนหลังเข้าสู่ระบบครั้งแรก
# --- โดเมน + SSL ---
DOMAIN="myapp.example.com"
LETSENCRYPT_EMAIL="admin@example.com"
# --- Keycloak แบบฝัง ---
EMBED_KEYCLOAK="true"
KEYCLOAK_ADMIN_PASSWORD="${ADMIN_PASSWORD}" # ค่าเริ่มต้นเป็น ADMIN_PASSWORD
| ฟิลด์ | ต้องมี | คำอธิบาย |
|---|---|---|
PROJECT_ID | ใช่ | ใช้เป็นชื่อฐานข้อมูลและ Keycloak client ID ตัวเล็ก ไม่มีช่องว่าง |
ADMIN_PASSWORD | ไม่ | รหัสผ่านผู้ดูแลระบบแอปและ Keycloak ค่าเริ่มต้นเป็น admin — เปลี่ยนหลังเข้าสู่ระบบครั้งแรก |
DOMAIN | ไม่ | โดเมนของคุณสำหรับ HTTPS เว้นว่างสำหรับโหมด HTTP เท่านั้น |
LETSENCRYPT_EMAIL | ใช่ (ถ้าตั้ง DOMAIN) | อีเมลสำหรับการแจ้งเตือน Let’s Encrypt |
EMBED_KEYCLOAK | ไม่ | true เพื่อติดตั้ง Keycloak แบบฝัง (ต้องการ RAM 4 GB) |
ความปลอดภัย: รหัสผ่านทั้งหมดเริ่มต้นเป็น
adminเปลี่ยนทันทีหลังจากเข้าสู่ระบบครั้งแรก
ขั้นตอนที่ 2 — สร้างอินสแตนซ์ VM
- คลิก Create instance
- Machine configuration:
- Series:
E2 - Machine type:
e2-medium(4 GB RAM) หรือใหญ่กว่า
- Series:
- Boot disk:
- Operating system: Ubuntu
- Version: Ubuntu 22.04 LTS
- Size: 40 GB หรือมากกว่า
- Firewall: ทำเครื่องหมาย Allow HTTP traffic และ Allow HTTPS traffic
- Advanced options → Management → Automation → Startup script → วางเนื้อหาสคริปต์ทั้งหมด
- คลิก Create
ขั้นตอนที่ 3 — เพิ่ม DNS record
ขณะที่ VM บูต ให้เพิ่ม A record ในผู้ให้บริการ DNS ของคุณ:
Type : A
Name : myapp
Value : <vm-external-ip>
TTL : 300
ค้นหา external IP ในรายการ VM instances ใน console
ขั้นตอนที่ 4 — ตรวจสอบความคืบหน้า
ใช้ gcloud CLI:
gcloud compute ssh <instance-name> -- tail -f /var/log/rtcloud-setup.log
หรือ SSH โดยตรง:
ssh <username>@<vm-external-ip>
tail -f /var/log/rtcloud-setup.log
ขั้นตอนที่ 5 — เข้าถึงแอป
เมื่อการตั้งค่าเสร็จสิ้น ล็อกแสดงสรุปพร้อม URL แอปและข้อมูลประจำตัว เข้าสู่ระบบด้วยชื่อผู้ใช้ admin และรหัสผ่าน admin แล้วเปลี่ยนรหัสผ่านทันที
กฎไฟร์วอลล์
ช่องทำเครื่องหมาย Allow HTTP/HTTPS ของ GCP เปิดพอร์ต 80 และ 443 เพื่ออนุญาตการเข้าถึง Shiny โดยตรงบนพอร์ต 3838 ให้เพิ่มกฎไฟร์วอลล์:
gcloud compute firewall-rules create allow-shiny \
--allow tcp:3838 \
--target-tags http-server
หรือเพิ่มผ่าน console: VPC Network → Firewall → Create rule
อย่า เปิดพอร์ต 3306 (MySQL) — ไม่ควรเข้าถึงได้สาธารณะ
Static IP (ไม่บังคับ)
ตามค่าเริ่มต้น GCP กำหนด external IP แบบชั่วคราวที่เปลี่ยนเมื่อรีสตาร์ท VM เพื่อรักษา IP ที่เสถียร:
- ไปที่ VPC Network → IP addresses
- คลิก Reserve external static address
- กำหนดให้กับอินสแตนซ์ VM ของคุณ
หลังการติดตั้ง
เปลี่ยนรหัสผ่าน
nano /opt/rtcloud/.env
docker compose -f /opt/rtcloud/docker-compose.production.yml up -d --force-recreate rtcloud
ดูคอนเทนเนอร์ทั้งหมด
docker compose -f /opt/rtcloud/docker-compose.production.yml ps