DigitalOcean ប្រើ User Data scripts ដែល ដំណើរការ ដោយ ស្វ័យប្រវត្តិ នៅ boot ដំបូង។ អ្នក បំពេញ configuration variables នៅ ខាងលើ script ហើយ paste script ពេញ នៅពេល បង្កើត Droplet។

មិនដូច Linode StackScripts, DigitalOcean មិន មាន form UI — អ្នក ត្រូវ កែ script ដោយ ផ្ទាល់ មុននឹង paste។

ទាញយក script: digitalocean-droplet-keycloak-embed.sh


Keycloak ភ្ជាប់ (ណែនាំ)

ប្រើ digitalocean-droplet-keycloak-embed.sh សម្រាប់ ការ setup ងាយ បំផុត ជាមួយ SSO ភ្ជាប់។

ជំហានទី ១ — បំពេញ configuration

បើក script ហើយ កែ block CONFIGURATION នៅ ខាងលើ:

  # --- ចាំបាច់ ---
PROJECT_ID="rtsurvey"                  # អត្តសញ្ញាណតែមួយគត់ សម្រាប់ project (គ្មានចន្លោះ)
ADMIN_PASSWORD="admin"                 # ពាក្យសម្ងាត់ app admin និង Keycloak — ផ្លាស់ប្ដូរ បន្ទាប់ ចូល ដំបូង

# --- Domain + SSL ---
DOMAIN="myapp.example.com"            # Domain របស់អ្នក — DNS A record ត្រូវ ចង្អុល ទីនេះ
PROJECT_URL=""                         # ទុក blank លុះត្រាតែ នៅ ក្រោម Cloudflare/proxy
LETSENCRYPT_EMAIL="admin@example.com" # Email សម្រាប់ ការ ជូនដំណឹង Let's Encrypt

# --- ស្រេចចិត្ត ---
STATA_ENABLED="false"
TZ="Asia/Ho_Chi_Minh"
  
Fieldចាំបាច់ការពិពណ៌នា
PROJECT_IDបាទប្រើ ជា ឈ្មោះ database និង Keycloak client ID។ Lowercase, គ្មានចន្លោះ។
ADMIN_PASSWORDទេពាក្យសម្ងាត់ app admin login និង Keycloak admin console។ Default adminផ្លាស់ប្ដូរ បន្ទាប់ ចូលដំបូង
DOMAINបាទឈ្មោះ domain របស់អ្នក។ DNS A record ត្រូវ ចង្អុល ទៅ Droplet IP។
LETSENCRYPT_EMAILបាទEmail address សម្រាប់ Let’s Encrypt certificate notifications។
PROJECT_URLទេOverride public URL។ ទុក blank ដើម្បី ប្រើ DOMAIN។ ល្អ នៅ ក្រោម Cloudflare។

សុវត្ថិភាព: ពាក្យសម្ងាត់ ទាំងអស់ default ទៅ admin។ ផ្លាស់ប្ដូរ ពួកវា ភ្លាមៗ បន្ទាប់ ពី ការ ចូល ដំបូង។

ជំហានទី ២ — បង្កើត Droplet

នៅ DigitalOcean control panel:

  1. ចុច CreateDroplets
  2. ជ្រើស Ubuntu 22.04 LTS ជា image
  3. ជ្រើស Basic, 4 GB RAM / 2 vCPUs ឬ ធំ ជាង
  4. Scroll ទៅ Advanced Options → check Add Initialization scripts
  5. Paste ខ្លឹមសារ script ពេញ ទៅ text area
  6. ចុច Create Droplet

ជំហានទី ៣ — បន្ថែម DNS record

ខណៈ Droplet boot, បន្ថែម A record ក្នុង DNS provider របស់អ្នក:

  Type  : A
Name  : myapp          (ឬ @ សម្រាប់ root domain)
Value : <droplet-ip>
TTL   : 300
  

ជំហានទី ៤ — តាមដានវឌ្ឍនភាព

SSH ចូល Droplet ហើយ watch log:

  ssh root@<droplet-ip>
tail -f /var/log/rtcloud-setup.log
  

ជំហានទី ៥ — ចូលដំណើរការ app

នៅពេល setup បញ្ចប់, log បង្ហាញ summary:

  ============================================================
 rtCloud deployment complete! (Embedded Keycloak)
============================================================
 App URL   : https://myapp.example.com
 Admin     : admin / admin
 Keycloak  : https://myapp.example.com/auth/admin

 !! SECURITY: All passwords default to 'admin'.
    Change them immediately after first login.
============================================================
  

បើក https://myapp.example.com ក្នុង browser ហើយ ចូលជាមួយ username admin និង password admin

ផ្លាស់ប្ដូរ ពាក្យសម្ងាត់ ភ្លាមៗ បន្ទាប់ ចូល តាមរយៈ Settings ក្នុង menu ខាងស្ដាំ ខាង លើ។


បន្ទាប់ Deployment

ផ្លាស់ប្ដូរ ពាក្យសម្ងាត់

SSH ចូល Droplet, កែ .env, ហើយ restart container ដែលប៉ះ:

  nano /opt/rtcloud/.env
docker compose -f /opt/rtcloud/docker-compose.production.yml up -d --force-recreate rtcloud
  

ស្វែងមើល containers ទាំងអស់

  docker compose -f /opt/rtcloud/docker-compose.production.yml ps
  
តើទំព័រនេះមានប្រយោជន៍ទេ?