การกำหนดค่าทั้งหมดทำผ่านตัวแปรสภาพแวดล้อมในไฟล์ .env ที่รูทของไดเรกทอรีการติดตั้งใช้งาน Docker Compose อ่านไฟล์นี้โดยอัตโนมัติ — ไม่จำเป็นต้องใช้แฟล็ก --env-file

ตัวแปรที่ทำเครื่องหมาย ต้องมี ต้องถูกตั้งค่าก่อนเริ่มต้นคอนเทนเนอร์ ตัวแปรอื่นๆ มีค่าเริ่มต้นและเป็นตัวเลือก


โครงการ

ตัวแปรเหล่านี้กำหนดตัวตนและจุดเข้าถึงอินสแตนซ์ rtCloud ของคุณ

ตัวแปรค่าเริ่มต้นต้องมีคำอธิบาย
PROJECT_IDใช่ตัวระบุเฉพาะสำหรับการติดตั้งนี้ ไม่มีช่องว่างหรืออักขระพิเศษ ใช้เป็นคำนำหน้าสำหรับการตั้งชื่อภายใน
PROJECT_URLใช่ชื่อโดเมนหรือที่อยู่ IP ที่ผู้ใช้เข้าถึงแอป (เช่น rtcloud.example.com หรือ 192.168.1.100)
PROJECT_TYPErtsurveyไม่ตัวแปรแพลตฟอร์มที่จะเปิดใช้งาน ตัวเลือก: rtwork, rtsurvey, rthome
PROJECT_PORT80ไม่พอร์ตที่แอปพลิเคชันรับฟังภายในคอนเทนเนอร์ อย่าเปลี่ยนเว้นแต่คุณรู้ว่ากำลังทำอะไร
HTTP_PROTOCOLhttpsไม่โปรโตคอลที่ใช้สร้าง URL ภายใน ตั้งเป็น http ถ้าไม่ได้ใช้ SSL

ฐานข้อมูล

ข้อมูลประจำตัวการเชื่อมต่อ MySQL ฐานข้อมูลได้รับการจัดการโดยอัตโนมัติโดยคอนเทนเนอร์ MySQL — คุณเพียงแค่ต้องตั้งรหัสผ่านที่แข็งแกร่ง

ตัวแปรค่าเริ่มต้นต้องมีคำอธิบาย
MYSQL_DATABASEsmartsurveyไม่ชื่อฐานข้อมูลแอปพลิเคชัน
MYSQL_USERsmartsurveyไม่ผู้ใช้ MySQL สำหรับแอปพลิเคชัน
MYSQL_PASSWORDใช่รหัสผ่านสำหรับ MYSQL_USER ใช้ค่าที่แข็งแกร่งและเฉพาะ
MYSQL_ROOT_PASSWORDใช่รหัสผ่าน root MySQL จำเป็นสำหรับการเริ่มต้นฐานข้อมูลและการดำเนินการผู้ดูแลระบบ
MYSQL_HOSTmysqlไม่ชื่อโฮสต์ MySQL ใช้ค่าเริ่มต้นเว้นแต่คุณกำลังเชื่อมต่อกับฐานข้อมูลภายนอก
MYSQL_PORT3306ไม่พอร์ต MySQL

บัญชีผู้ดูแลระบบ

บัญชีผู้ดูแลระบบถูกสร้างโดยอัตโนมัติเมื่อบูตครั้งแรกของฐานข้อมูลใหม่

ตัวแปรค่าเริ่มต้นต้องมีคำอธิบาย
ADMIN_PASSWORDadminใช่รหัสผ่านสำหรับผู้ใช้ admin ในตัว ตั้งก่อนบูตครั้งแรก ไม่มีผลถ้าฐานข้อมูลมีอยู่แล้ว

หลังจากเข้าสู่ระบบครั้งแรก ให้เปลี่ยนรหัสผ่านผู้ดูแลระบบจากหน้า Account Settings ใน UI เว็บ


พอร์ต

ควบคุมว่าพอร์ตโฮสต์ใดที่แอปพลิเคชันผูกกับ

ตัวแปรค่าเริ่มต้นคำอธิบาย
APP_PORT8080พอร์ตโฮสต์สำหรับ UI เว็บหลัก เปลี่ยนถ้าพอร์ต 8080 ถูกใช้งานอยู่แล้วบนเซิร์ฟเวอร์
SHINY_PORT3838พอร์ตโฮสต์สำหรับเซิร์ฟเวอร์ Shiny analytics

Runtime

ตัวแปรค่าเริ่มต้นคำอธิบาย
RUN_ENVprodสภาพแวดล้อม Runtime ใช้ prod สำหรับการผลิต dev สำหรับการพัฒนาภายในเครื่อง
RUN_MODEadminบทบาทคอนเทนเนอร์ admin รันสแตกเต็ม (web + queue + cron) worker รันการประมวลผลพื้นหลังเท่านั้น
TZAsia/Ho_Chi_Minhเขตเวลาเซิร์ฟเวอร์ ส่งผลต่อ timestamps ล็อก กำหนดการ cron และการแสดงวันที่ ใช้ ชื่อฐานข้อมูล TZ
LOG_LEVELinfoระดับความละเอียดล็อกแอปพลิเคชัน ตัวเลือก: debug, info, warning, error
COMPOSE_PROJECT_NAMErtcloudคำนำหน้าที่ใช้กับชื่อคอนเทนเนอร์และ volume Docker ทั้งหมด เปลี่ยนเมื่อรันหลายอินสแตนซ์ rtCloud บนโฮสต์เดียวกัน
RESTART_POLICYunless-stoppedพฤติกรรมการรีสตาร์ทคอนเทนเนอร์ Docker ตัวเลือก: no, always, on-failure, unless-stopped
RTCLOUD_IMAGErtawebteam/rta-smartsurvey:survey-dockerizeDocker image ที่จะใช้ เปลี่ยน tag เพื่อปักหมุดเวอร์ชันเฉพาะ
REQUIRE_LICENSEfalseเปิดใช้งานการตรวจสอบ license key เมื่อเริ่มต้น ติดต่อ RTA สำหรับข้อมูล license

ความปลอดภัย

ตัวแปรค่าเริ่มต้นคำอธิบาย
CSRF_VALIDATION_ENABLEDtrueเปิดใช้งานการตรวจสอบ CSRF token เก็บเป็น true ในการผลิต ตั้งเป็น false เฉพาะในการพัฒนาภายในเครื่องเมื่อพบข้อผิดพลาด 400 CSRF token could not be verified
GII_ENABLEDfalseเปิดใช้งานเครื่องมือสร้างโค้ด Yii framework ห้ามเปิดในการผลิตเด็ดขาด

SSO — Keycloak แบบฝัง

เปิดใช้งานคอนเทนเนอร์ Keycloak ที่รวมมาสำหรับ SSO องค์กรเต็มรูปแบบ ต้องการโดเมนพร้อม HTTPS

ตัวแปรค่าเริ่มต้นคำอธิบาย
EMBED_KEYCLOAKfalseตั้งเป็น true เพื่อเริ่มคอนเทนเนอร์ Keycloak แบบฝัง เปิดใช้งานโปรไฟล์ embed-keycloak ของ Docker Compose
KEYCLOAK_URLURL เต็มของเซิร์ฟเวอร์ Keycloak (เช่น https://rtcloud.example.com/auth)
KEYCLOAK_REALMชื่อ realm Keycloak (เช่น rtsurvey)
KEYCLOAK_CLIENT_IDClient ID ของ Keycloak สำหรับแอปพลิเคชัน rtCloud
KEYCLOAK_CLIENT_SECRETClient secret ของ Keycloak สร้างจากคอนโซลผู้ดูแลระบบ Keycloak
KEYCLOAK_ADMIN_USERadminชื่อผู้ใช้ผู้ดูแลระบบ Keycloak
KEYCLOAK_ADMIN_PASSWORDรหัสผ่านผู้ดูแลระบบ Keycloak
KEYCLOAK_DBkeycloakชื่อฐานข้อมูลสำหรับ Keycloak สร้างโดยอัตโนมัติเมื่อบูตครั้งแรก
KEYCLOAK_DB_USERkeycloakผู้ใช้ฐานข้อมูลสำหรับ Keycloak
KEYCLOAK_DB_PASSWORDรหัสผ่านฐานข้อมูลสำหรับผู้ใช้ Keycloak
KC_HOSTNAMEURL frontend ของ Keycloak (เช่น https://rtcloud.example.com/auth)
KC_HOSTNAME_STRICTfalseบังคับการจับคู่ชื่อโฮสต์อย่างเข้มงวด ตั้งเป็น true ในการผลิตพร้อมโดเมนที่แน่นอน

ดู การยืนยันตัวตน SSO สำหรับคู่มือการตั้งค่าที่สมบูรณ์


SSO — ผู้ให้บริการ OIDC ภายนอก

เชื่อมต่อกับผู้ให้บริการตัวตนที่รองรับ OIDC ที่มีอยู่ (Supabase, Auth0, Authentik, Okta ฯลฯ)

ตัวแปรค่าเริ่มต้นคำอธิบาย
OIDC_ISSUER_URLURL การค้นพบ OIDC issuer (เช่น https://accounts.google.com)
OIDC_CLIENT_IDClient ID ที่ลงทะเบียนในผู้ให้บริการตัวตน
OIDC_CLIENT_SECRETClient secret จากผู้ให้บริการตัวตน
OIDC_SCOPEopenid profile emailรายการ OIDC scopes ที่คั่นด้วยช่องว่างสำหรับร้องขอ
OIDC_REDIRECT_URIURL callback สำหรับแอปเว็บ (เช่น https://rtcloud.example.com/auth/callback)
OIDC_MOBILE_CLIENT_IDClient ID แยกสำหรับแอปมือถือ rtSurvey
OIDC_MOBILE_REDIRECT_URIURI callback แอปมือถือ (เช่น vn.rta.rtsurvey.auth://callback)
OPEN_REGISTRATIONfalseสร้างบัญชี rtCloud โดยอัตโนมัติสำหรับผู้ใช้ที่ยืนยันตัวตนผ่าน OIDC เป็นครั้งแรก
OIDC_AUTHORIZATION_ENDPOINTแทนที่ URL authorization endpoint (เว้นว่างเพื่อใช้การค้นพบ)
OIDC_TOKEN_ENDPOINTแทนที่ URL token endpoint (เว้นว่างเพื่อใช้การค้นพบ)
OIDC_USERINFO_ENDPOINTแทนที่ URL userinfo endpoint (เว้นว่างเพื่อใช้การค้นพบ)

SSO — Azure Active Directory

ตัวแปรคำอธิบาย
AZURE_CLIENT_IDAzure AD application (client) ID
AZURE_TENANT_IDAzure AD directory (tenant) ID

การผสานรวมเสริม

Stata

ตัวแปรค่าเริ่มต้นคำอธิบาย
STATA_ENABLEDfalseเปิดใช้งานการผสานรวมซอฟต์แวร์สถิติ Stata สำหรับการวิเคราะห์ข้อมูล
STATA_BIN_PATH/usr/bin/stataพาธสัมบูรณ์ไปยัง binary Stata ภายในคอนเทนเนอร์

Elasticsearch

ตัวแปรคำอธิบาย
ES_HOSTโฮสต์ Elasticsearch (เช่น http://elasticsearch:9200)
ES_PORTพอร์ต Elasticsearch

Matomo Analytics

ตัวแปรคำอธิบาย
PIWIK_URLURL เซิร์ฟเวอร์ Matomo (Piwik)
PIWIK_IDID เว็บไซต์ Matomo
PIWIK_SECRETโทเค็นการยืนยันตัวตน Matomo

OpenCPU (การคำนวณ R)

ตัวแปรคำอธิบาย
OCPU_HOSTURL เซิร์ฟเวอร์ OpenCPU สำหรับการคำนวณสถิติที่ใช้ R

การผสานรวม RtBox

ตัวแปรคำอธิบาย
RTBOX_HOSTURL โฮสต์บริการ RtBox
RTBOX_USER_APIAPI key ผู้ใช้ RtBox
RTBOX_BASIC_AUTHข้อมูลประจำตัวการยืนยันตัวตนพื้นฐานสำหรับ RtBox

Matrix Messaging

ตัวแปรคำอธิบาย
MATRIX_HOMESERVER_HOSTโฮสต์ Matrix homeserver
MATRIX_HOMESERVER_PORTพอร์ต Matrix homeserver

Data Volumes

ข้อมูลแอปพลิเคชันทั้งหมดถูกจัดเก็บใน Docker volumes ที่มีชื่อ Volumes ถูกสร้างโดยอัตโนมัติเมื่อเริ่มต้นครั้งแรกและคงอยู่ข้ามการรีสตาร์ทและการอัปเดตคอนเทนเนอร์

VolumeMount Pointเนื้อหา
rtcloud_mysql_data/var/lib/mysqlไฟล์ฐานข้อมูล MySQL
rtcloud_uploads…/uploadsไฟล์ที่ผู้ตอบแบบสำรวจอัปโหลด
rtcloud_audios…/audiosการบันทึกเสียง
rtcloud_downloads…/downloadsไฟล์ส่งออกที่สร้างขึ้น
rtcloud_gallery…/galleryรูปภาพ gallery
rtcloud_voicemail…/voicemailการบันทึก voicemail
rtcloud_analytics…/analyticsข้อมูลการวิเคราะห์
rtcloud_aggregate…/aggregateผลการสำรวจแบบรวม
rtcloud_converter…/converterผลลัพธ์การแปลงข้อมูล
rtcloud_shiny_data/srv/shiny-server/smartsurveyR scripts เซิร์ฟเวอร์ Shiny
rtcloud_shiny_logs/var/log/shiny-serverล็อกเซิร์ฟเวอร์ Shiny
rtcloud_assets…/assetsWeb assets (CSS, JS)
rtcloud_runtime…/protected/runtimeแคช runtime แอปพลิเคชัน
rtcloud_cache…/cacheแคชแอปพลิเคชัน
rtcloud_tmp…/tmpไฟล์ชั่วคราว

ชื่อ Volume นำหน้าด้วยค่าของ COMPOSE_PROJECT_NAME (ค่าเริ่มต้น: rtcloud)

แสดง volumes ทั้งหมดสำหรับการติดตั้งใช้งานของคุณ:

  docker volume ls | grep rtcloud
  
หน้านี้มีประโยชน์หรือไม่?