ការកំណត់ទាំងអស់ ត្រូវបានធ្វើ តាមរយៈ environment variables នៅក្នុងឯកសារ .env នៅ root នៃ directory ដាក់ deployed របស់អ្នក។ Docker Compose អានឯកសារនេះ ដោយស្វ័យប្រវត្តិ — មិនត្រូវការ flag --env-file ទេ។

Variables ដែលសម្គាល់ ចាំបាច់ ត្រូវតែ set មុន ចាប់ផ្ដើម containers។ ផ្សេងទៀត ទាំងអស់ មានលំនាំដើម ហើយ ស្រេចចិត្ត។


គម្រោង

Variables ទាំងនេះ កំណត់អត្តសញ្ញាណ និងចំណុចចូលដំណើរការ នៃ rtCloud instance របស់អ្នក។

Variableលំនាំដើមចាំបាច់ការពិពណ៌នា
PROJECT_IDបាទអត្តសញ្ញាណតែមួយគត់ សម្រាប់ការដាក់ deployed នេះ។ គ្មានចន្លោះ ឬ តួអក្សរពិសេស ។ ប្រើ ជា prefix សម្រាប់ការដាក់ឈ្មោះខាងក្នុង។
PROJECT_URLបាទឈ្មោះ domain ឬ IP address ដែលអ្នកប្រើ ចូលដំណើរការ app (ឧ. rtcloud.example.com192.168.1.100)។
PROJECT_TYPErtsurveyទេកំណែ platform ដើម្បីបើកដំណើរការ។ Options: rtwork, rtsurvey, rthome
PROJECT_PORT80ទេPort ដែល application ស្ដាប់ ក្នុង container។ កុំ ផ្លាស់ប្ដូរ លុះត្រាតែ អ្នកដឹង ថាអ្នកកំពុងធ្វើអ្វី។
HTTP_PROTOCOLhttpsទេProtocol ដែល ប្រើ ដើម្បីស្ថាបនា URLs ខាងក្នុង។ Set ទៅ http ប្រសិនបើ អ្នកមិន ប្រើ SSL។

មូលដ្ឋានទិន្នន័យ

ព័ត៌មានសម្ងាត់ connection MySQL។ មូលដ្ឋានទិន្នន័យ ត្រូវបានគ្រប់គ្រង ដោយស្វ័យប្រវត្តិ ដោយ MySQL container — អ្នក ត្រូវការ set តែ ពាក្យសម្ងាត់ ខ្លាំង ប៉ុណ្ណោះ។

Variableលំនាំដើមចាំបាច់ការពិពណ៌នា
MYSQL_DATABASEsmartsurveyទេឈ្មោះ application database។
MYSQL_USERsmartsurveyទេMySQL user សម្រាប់ application។
MYSQL_PASSWORDបាទពាក្យសម្ងាត់ សម្រាប់ MYSQL_USER។ ប្រើ តម្លៃ ខ្លាំង តែមួយគត់។
MYSQL_ROOT_PASSWORDបាទពាក្យសម្ងាត់ MySQL root។ ចាំបាច់ សម្រាប់ initialization មូលដ្ឋានទិន្នន័យ និង admin operations។
MYSQL_HOSTmysqlទេMySQL hostname។ ប្រើ default លុះត្រាតែ អ្នក ភ្ជាប់ ទៅ database ខាងក្រៅ។
MYSQL_PORT3306ទេMySQL port។

គណនី Admin

គណនី admin ត្រូវបានបង្កើត ដោយស្វ័យប្រវត្តិ នៅ boot ដំបូង នៃ database ថ្មី។

Variableលំនាំដើមចាំបាច់ការពិពណ៌នា
ADMIN_PASSWORDadminបាទពាក្យសម្ងាត់ សម្រាប់ admin user ដែលភ្ជាប់។ Set វា មុន boot ដំបូង។ គ្មានប្រសិទ្ធភាព ប្រសិនបើ database មានស្រាប់។

បន្ទាប់ពី ចូលដំបូង ផ្លាស់ប្ដូរ ពាក្យសម្ងាត់ admin ពី Account Settings page ក្នុង web UI។


Ports

ត្រួតពិនិត្យ host ports ដែល application ភ្ជាប់ ជាមួយ។

Variableលំនាំដើមការពិពណ៌នា
APP_PORT8080Host port សម្រាប់ web UI ចម្បង។ ផ្លាស់ប្ដូរ ប្រសិនបើ port 8080 ត្រូវបានប្រើ ស្រាប់ នៅលើ server របស់អ្នក។
SHINY_PORT3838Host port សម្រាប់ Shiny analytics server។

Runtime

Variableលំនាំដើមការពិពណ៌នា
RUN_ENVprodRuntime environment។ ប្រើ prod សម្រាប់ production deployments, dev សម្រាប់ local development។
RUN_MODEadminContainer role។ admin ដំណើរការ full stack (web + queue + cron)។ worker ដំណើរការ background processing (សម្រាប់ horizontal scaling)។
TZAsia/Ho_Chi_MinhTimezone ម៉ាស៊ីនមេ។ ប៉ះពាល់ timestamps log, schedules cron, និងការបង្ហាញ date។ ប្រើ TZ database name (ឧ. UTC, America/New_York, Europe/London)។
LOG_LEVELinfoភាពរលំអានតក្ក log Application។ Options: debug, info, warning, error
COMPOSE_PROJECT_NAMErtcloudPrefix ដែលអនុវត្ត ទៅ container Docker ទាំងអស់ និងឈ្មោះ volume។ ផ្លាស់ប្ដូរ នៅពេល ដំណើរការ rtCloud instances ច្រើន នៅ host តែមួយ។
RESTART_POLICYunless-stoppedឥរិយាបទ restart container Docker។ Options: no, always, on-failure, unless-stopped
RTCLOUD_IMAGErtawebteam/rta-smartsurvey:survey-dockerizeDocker image ដើម្បី ប្រើ។ ផ្លាស់ប្ដូរ tag ដើម្បី pin version ជាក់លាក់។
REQUIRE_LICENSEfalseបើក ការ validate license key នៅ startup។ ទាក់ទង RTA សម្រាប់ ព័ត៌មាន license។

សុវត្ថិភាព

Variableលំនាំដើមការពិពណ៌នា
CSRF_VALIDATION_ENABLEDtrueបើក CSRF token validation។ រក្សា true ក្នុង production។ Set ទៅ false មានតែ ក្នុង local development ប្រសិនបើ អ្នកជួបប្រទះ 400 CSRF token could not be verified errors។
GII_ENABLEDfalseបើក Yii framework code generator tool។ កុំ បើក ក្នុង production ។

SSO — Keycloak ភ្ជាប់

បើក Keycloak container ដែលភ្ជាប់ សម្រាប់ SSO សហគ្រាស ដែលពោរពេញ feature។ ត្រូវការ domain ជាមួយ HTTPS។

Variableលំនាំដើមការពិពណ៌នា
EMBED_KEYCLOAKfalseSet ទៅ true ដើម្បី ចាប់ផ្ដើម Keycloak container ភ្ជាប់។
KEYCLOAK_URLURL ពេញ នៃ Keycloak server (ឧ. https://rtcloud.example.com/auth)។
KEYCLOAK_REALMឈ្មោះ Keycloak realm (ឧ. rtsurvey)។
KEYCLOAK_CLIENT_IDKeycloak client ID សម្រាប់ rtCloud application។
KEYCLOAK_CLIENT_SECRETKeycloak client secret។ Generate ពី Keycloak admin console។
KEYCLOAK_ADMIN_USERadminឈ្មោះអ្នកប្រើ administrator Keycloak។
KEYCLOAK_ADMIN_PASSWORDពាក្យសម្ងាត់ administrator Keycloak។
KEYCLOAK_DBkeycloakឈ្មោះ database សម្រាប់ Keycloak។
KEYCLOAK_DB_USERkeycloakDatabase user សម្រាប់ Keycloak។
KEYCLOAK_DB_PASSWORDពាក្យសម្ងាត់ database សម្រាប់ Keycloak user។
KC_HOSTNAMEKeycloak frontend URL (ឧ. https://rtcloud.example.com/auth)។
KC_HOSTNAME_STRICTfalseEnforce hostname matching ដ៏តឹងរ៉ឹង។ Set ទៅ true ក្នុង production ជាមួយ domain ថេរ។

SSO — External OIDC Provider

ភ្ជាប់ ទៅ identity provider ដែលស្របគ្នា OIDC ដែលមានស្រាប់ (Supabase, Auth0, Authentik, Okta, ។ ល។)។

Variableលំនាំដើមការពិពណ៌នា
OIDC_ISSUER_URLOIDC issuer discovery URL (ឧ. https://accounts.google.com)។
OIDC_CLIENT_IDClient ID ដែលបានចុះឈ្មោះ ក្នុង identity provider របស់អ្នក។
OIDC_CLIENT_SECRETClient secret ពី identity provider របស់អ្នក។
OIDC_SCOPEopenid profile emailបញ្ជី OIDC scopes ដែលចែក ដោយ space ដើម្បី request។
OIDC_REDIRECT_URICallback URL សម្រាប់ web app (ឧ. https://rtcloud.example.com/auth/callback)។
OIDC_MOBILE_CLIENT_IDClient ID ដាច់ ដោយ ឡែក សម្រាប់ rtSurvey mobile app។
OIDC_MOBILE_REDIRECT_URIMobile app callback URI (ឧ. vn.rta.rtsurvey.auth://callback)។
OPEN_REGISTRATIONfalseបង្កើត rtCloud accounts ដោយស្វ័យប្រវត្តិ សម្រាប់ users ដែល authenticate តាមរយៈ OIDC ជាលើកដំបូង។

SSO — Azure Active Directory

Variableការពិពណ៌នា
AZURE_CLIENT_IDAzure AD application (client) ID។
AZURE_TENANT_IDAzure AD directory (tenant) ID។

ការរួមបញ្ចូល ស្រេចចិត្ត

Stata

Variableលំនាំដើមការពិពណ៌នា
STATA_ENABLEDfalseបើក Stata statistical software integration សម្រាប់ ការ វិភាគ ទិន្នន័យ។
STATA_BIN_PATH/usr/bin/stataPath ដាច់ ខាត ទៅ Stata binary ក្នុង container។

Elasticsearch

Variableការពិពណ៌នា
ES_HOSTElasticsearch host (ឧ. http://elasticsearch:9200)។
ES_PORTElasticsearch port។

Data Volumes

ទិន្នន័យ application ទាំងអស់ ត្រូវបានរក្សាទុក ក្នុង named Docker volumes។ Volumes ត្រូវបានបង្កើតដោយស្វ័យប្រវត្តិ នៅ startup ដំបូង ហើយ persist នៅទូទាំង container restarts និង updates។

VolumeMount Pointខ្លឹមសារ
rtcloud_mysql_data/var/lib/mysqlឯកសារ MySQL database
rtcloud_uploads…/uploadsឯកសារ ដែលបញ្ចូល ដោយ អ្នកឆ្លើយតប ស្ទង់មតិ
rtcloud_audios…/audiosការថតសូរ
rtcloud_downloads…/downloadsឯកសារ export ដែលបង្កើត
rtcloud_gallery…/galleryរូបភាព gallery
rtcloud_voicemail…/voicemailការថត voicemail
rtcloud_analytics…/analyticsទិន្នន័យ analytics
rtcloud_shiny_data/srv/shiny-server/smartsurveyR scripts Shiny server
rtcloud_shiny_logs/var/log/shiny-serverShiny server logs

ឈ្មោះ Volume ត្រូវបាន prefix ដោយ តម្លៃ COMPOSE_PROJECT_NAME (default: rtcloud)។

  docker volume ls | grep rtcloud
  
តើទំព័រនេះមានប្រយោជន៍ទេ?