ឯកសារអ្នកអភិវឌ្ឍន៍
ភាសាខ្មែរ

ការដំណើរការម៉ាស៊ីនមេ

ការគ្រប់គ្រង និងការកំណត់

ទំព័រគ្រប់គ្រង ការបញ្ជូនលេខកូដចុះឈ្មោះ (SMS និងអ៊ីមែល) តម្លៃកំណត់របស់ម៉ាស៊ីនមេ ការបម្រុងទុក និងសុវត្ថិភាព — ឯកសារយោងសម្រាប់ប្រតិបត្តិករ។

ម៉ាស៊ីនមេមានទំព័រគ្រប់គ្រងដែលបើកដោយកម្មវិធីរុករក។ អ្នកអាចមើលស្ថានភាពម៉ាស៊ីនមេ កំណត់របៀបបញ្ជូនលេខកូដចុះឈ្មោះ និងចូលគណនី ហើយគ្រប់គ្រងអ្នកប្រើ និងបូត។ ឯកសារនេះជាឯកសារយោង ដែលប្រមូលទំព័រគ្រប់គ្រង និងតម្លៃកំណត់របស់ម៉ាស៊ីនមេ នៅកន្លែងតែមួយ។ បើអ្នកត្រូវដំឡើងជាមុនសិន សូមមើល ការដំឡើងម៉ាស៊ីនមេ។ ទំព័រគ្រប់គ្រងបង្ហាញជាភាសាកូរ៉េ ដូច្នេះឯកសារនេះដាក់ឈ្មោះភាសាកូរ៉េនៃផ្ទាំង ប៊ូតុង និងការកំណត់ ក្នុងវង់ក្រចក។

ការបើកទំព័រគ្រប់គ្រង

ទំព័រគ្រប់គ្រងគឺ /admin/ នៅលើច្រក HTTP សម្រាប់ការគ្រប់គ្រង (8080 ក្នុងរចនាសម្ព័ន្ធផលិតកម្ម) ហើយបើកតែនៅលើម៉ាស៊ីនមេខ្លួនឯង (127.0.0.1) ប៉ុណ្ណោះ។ ប្រតិបត្តិករចូលតាម SSH tunnel។

# នៅលើកុំព្យូទ័ររបស់ខ្ញុំ (ទុកឲ្យដំណើរការ)
ssh -N -L 8080:127.0.0.1:8080 <អ្នកប្រើ>@<ម៉ាស៊ីនមេ>
# កម្មវិធីរុករក៖ http://localhost:8080/admin/

# តូខឹន (នៅលើម៉ាស៊ីនមេ)
sudo cat /srv/pabal/pabal_server/data/admin-token

បញ្ចូលតូខឹន ហើយចុច បើក (열기)។ កម្មវិធីរុករកចងចាំតូខឹន ហើយអ្នកអាចលុបវាដោយ លុបតូខឹន (토큰 지우기) នៅជ្រុងខាងលើផ្នែកខាងស្តាំ។ បើចង់កំណត់តូខឹនដោយខ្លួនឯង សូមផ្តល់ TELEGRAM_ADMIN_TOKEN (16 តួឡើងទៅ) — ពេលនោះ ម៉ាស៊ីនមេនឹងមិនសរសេរឯកសារទេ។

អ្វីដែលបង្ហាញក្នុងផ្ទាំងនីមួយៗ

ផ្ទាំងខ្លឹមសារការធ្វើឲ្យស្រស់
Dashboard (대시보드)មនុស្ស វគ្គ និងការតភ្ជាប់ដែលកំពុងអនឡាញ ចំនួនមនុស្ស បូត ក្រុម សារ និងរូបថត រយៈពេលដំណើរការ ច្រក DB, JVM និងការពិនិត្យស្ថានភាព។ បើលេខសាកល្បងកំពុងបើក នឹងមានបន្ទះព្រមាន5 វិនាទី
លេខកូដចុះឈ្មោះ (가입 코드)លេខកូដដែលកំពុងរង់ចាំ (លេខ វិធីបញ្ជូន ស្ថានភាពផ្ញើ លេខកូដ ពេលវេលានៅសល់ ចំនួនដងបញ្ចូលខុស) និងកំណត់ត្រាថ្មីៗ។ ចម្លង និងបោះបង់លេខកូដ3 វិនាទី
អ្នកប្រើ (사용자)គណនីទាំងអស់ — លេខទូរស័ព្ទ អ៊ីមែលចូលគណនី (កែបាន) ស្ថានភាពអនឡាញ ចំនួនឧបករណ៍ដែលបានចូល ចំនួនសារ។ ចាកចេញពីគ្រប់ឧបករណ៍ (모든 기기 로그아웃) និងហាមឃាត់លេខ (번호 차단)10 វិនាទី
បូត ()បូតដែលបង្កើតដោយ BotFather — អ្នកបង្កើត ម៉ឺនុយពាក្យបញ្ជា វិធីតភ្ជាប់ (MTProto · HTTP polling · អាសយដ្ឋាន webhook និងមូលហេតុបរាជ័យ) និងចំនួន update ដែលកំពុងរង់ចាំ10 វិនាទី
ការកំណត់ (설정)ច្បាប់ចុះឈ្មោះ និងចូលគណនី SMS អ៊ីមែល (SMTP) និងការហាមឃាត់លេខទូរស័ព្ទរក្សាទុកដោយខ្លួនឯង
ការផ្ទុក (저장소)ថតទិន្នន័យ អាសយដ្ឋាន DB (លាក់ពាក្យសម្ងាត់) ចំនួន និងទំហំរូបថត និងចំនួន stream ដែលបានរក្សាទុកតាមប្រភេទ10 វិនាទី

សកម្មភាពគ្រោះថ្នាក់ (ចាកចេញ ហាមឃាត់ បោះបង់លេខកូដ) ត្រូវចុចពីរដងទើបដំណើរការ។

លេខកូដចុះឈ្មោះ និងចូលគណនី

ពេលមនុស្សបញ្ចូលលេខទូរស័ព្ទក្នុងកម្មវិធី ម៉ាស៊ីនមេបង្កើតលេខកូដ ហើយផ្ញើវាតាមវិធីដែលបានជ្រើសក្នុងផ្ទាំងការកំណត់ (설정)។

វិធីបញ្ជូនកន្លែងដែលលេខកូដទៅអេក្រង់កម្មវិធី
ទំព័រគ្រប់គ្រង (관리 화면)ផ្ទាំងលេខកូដចុះឈ្មោះ (가입 코드)។ ប្រតិបត្តិករចម្លង ហើយប្រាប់ដោយផ្ទាល់លេខ → "បានផ្ញើលេខកូដ" → លេខកូដ (បើជាលេខថ្មី ឈ្មោះ)
SMSសារ SMS តាម Twilio · Solapi · webhook មួយណាមួយដូចវិធីទំព័រគ្រប់គ្រង
អ៊ីមែល (이메일)អ៊ីមែលតាម SMTPលេខ → បញ្ចូលអ៊ីមែល → "បានផ្ញើលេខកូដតាមអ៊ីមែល" → លេខកូដ
  • ក្នុងវិធីអ៊ីមែល ការចុះឈ្មោះថ្មីអាចប្រើអាសយដ្ឋានណាក៏បាន ហើយអាសយដ្ឋាននោះក្លាយជាអ៊ីមែលចូលគណនី (로그인 이메일) របស់គណនី។ គណនីដែលមានស្រាប់ ទទួលបានតែតាមអ៊ីមែលចូលគណនីដែលបានចុះបញ្ជីប៉ុណ្ណោះ — នេះការពារកុំឲ្យនរណាម្នាក់ដាក់អាសយដ្ឋានរបស់ខ្លួន លើលេខរបស់អ្នកដទៃ ដើម្បីចូល។ គណនីដែលមានស្រាប់ ហើយគ្មានអ៊ីមែលចូលគណនី នឹងទទួលតាម SMS (បើបានកំណត់) ឬតាមទំព័រគ្រប់គ្រងជំនួសវិញ។ អ្នកអាចបញ្ចូលអ៊ីមែលចូលគណនីឲ្យពួកគេ នៅក្នុងផ្ទាំងអ្នកប្រើ (사용자)។
  • ការផ្ញើកើតឡើងនៅខាងក្រោយ ដូច្នេះកម្មវិធីទៅអេក្រង់លេខកូដភ្លាមៗ។ លទ្ធផលនៃការផ្ញើ (ជោគជ័យ ឬបរាជ័យ និងមូលហេតុ) បង្ហាញក្នុងផ្ទាំងលេខកូដចុះឈ្មោះ។
  • ការចុះឈ្មោះ (ការបញ្ចូលឈ្មោះ) អាចធ្វើបានលុះត្រាតែបញ្ចូលលេខកូដត្រឹមត្រូវរួច។ លេខកូដខុសត្រូវបានទទួលតែតាមចំនួនដងដែលអនុញ្ញាតប៉ុណ្ណោះ ហើយក្រោយពីនោះ ទោះលេខកូដត្រឹមត្រូវក៏ត្រូវបដិសេធដែរ។

ការកំណត់ — ការចុះឈ្មោះ និងការចូលគណនី

ធាតុអត្ថន័យលំនាំដើម
អនុញ្ញាតការចុះឈ្មោះថ្មី (새 가입 허용)បើបិទ មានតែគណនីដែលមានស្រាប់ទេដែលអាចចូលបាន។ លេខថ្មីត្រូវបានបដិសេធដោយ "លេខមិនត្រឹមត្រូវ"បើក
វិធីបញ្ជូនលេខកូដ (코드 전달 방식)ទំព័រគ្រប់គ្រង (관리 화면) / SMS / អ៊ីមែល (이메일)ទំព័រគ្រប់គ្រង
បង្ហាញលេខកូដក្នុងទំព័រគ្រប់គ្រង (관리 화면에 코드 표시)បង្ហាញលេខកូដក្នុងផ្ទាំងលេខកូដចុះឈ្មោះ ទោះប្រើវិធី SMS ឬអ៊ីមែលក៏ដោយ (ត្រៀមសម្រាប់ករណីផ្ញើបរាជ័យ)បើក
លេខសាកល្បង (+99966…) (테스트 번호)តាមការកំណត់ម៉ាស៊ីនមេ (서버 설정대로) / បើក (켜기) / បិទ (끄기)។ បិទនៅក្នុងផលិតកម្មតាមការកំណត់ម៉ាស៊ីនមេ
ចំនួនខ្ទង់លេខកូដ · រយៈពេលមានសុពលភាព (코드 자릿수 · 유효 시간)5 ដល់ 6 ខ្ទង់ · 1 ដល់ 60 នាទី5 ខ្ទង់ · 5 នាទី
ចន្លោះពេលស្នើម្តងទៀត · អតិបរមាក្នុងមួយថ្ងៃ (재요청 간격 · 하루 최대)ចំនួនវិនាទីមុនពេលលេខដដែលអាចទទួលលេខកូដម្តងទៀត (0 ដល់ 3600) · ចំនួនដងអតិបរមាក្នុងរយៈពេល 24 ម៉ោង (1 ដល់ 1000)60 វិនាទី · 10 ដង
ចំនួនដងអនុញ្ញាតឲ្យបញ្ចូលខុស (틀린 입력 허용 횟수)បើលើស លេខកូដនោះនឹងត្រូវចាក់សោ (1 ដល់ 20)5 ដង

ការកំណត់ — SMS

អ្នកផ្តល់សេវាតម្លៃដែលត្រូវបញ្ចូលកំណត់ចំណាំ
Webhook (웹훅)អាសយដ្ឋានទទួល (받을 주소, https://…), header Authorization (ស្រេចចិត្ត)ម៉ាស៊ីនមេផ្ញើ POST {"phone":"+8210…","code":"12345","text":"…"}។ បើ 2xx គឺជោគជ័យ។ សម្រាប់ពេលភ្ជាប់ទៅម៉ាស៊ីនមេ SMS ផ្ទាល់ខ្លួន ឬសេវាផ្សេង
TwilioAccount SID, Auth Token, លេខអ្នកផ្ញើ (발신 번호) ឬ Messaging Service SIDទូទាំងពិភពលោក រួមទាំងលេខបរទេស
Solapi (អតីត CoolSMS)API Key, API Secret, លេខអ្នកផ្ញើSMS ក្នុងស្រុក (កូរ៉េ)។ លេខអ្នកផ្ញើត្រូវជាលេខដែលបានចុះបញ្ជីជាមុននៅ Solapi។ លេខ +82 ត្រូវបានផ្ញើក្នុងទម្រង់ 010…

ក្នុងអត្ថបទសារ អ្នកអាចដាក់ {code} (លេខកូដ) និង {minutes} (រយៈពេលមានសុពលភាព)។ តម្លៃលំនាំដើម៖ [파발] 인증 코드: {code} (មានន័យថា "[Pabal] លេខកូដផ្ទៀងផ្ទាត់៖ {code}")។ បន្ទាប់ពីរក្សាទុក សូមពិនិត្យដោយការផ្ញើសាកល្បង (테스트 발송)។

ការកំណត់ — អ៊ីមែល (SMTP)

សេវាម៉ាស៊ីនមេ · ច្រក · សុវត្ថិភាពឈ្មោះអ្នកប្រើ · ពាក្យសម្ងាត់
Gmailsmtp.gmail.com · 587 · STARTTLSអាសយដ្ឋាន Gmail · ពាក្យសម្ងាត់កម្មវិធី (App password — គណនី Google → សុវត្ថិភាព → ការផ្ទៀងផ្ទាត់ 2 ជំហាន → ពាក្យសម្ងាត់កម្មវិធី)
Naversmtp.naver.com · 587 · STARTTLSID · ពាក្យសម្ងាត់ (បើកការប្រើ POP3/SMTP ក្នុងការកំណត់អ៊ីមែល)
mail relay ក្នុងស្ថាប័នអាសយដ្ឋាន relay · 25 · គ្មានទុកទទេ

អាសយដ្ឋានអ្នកផ្ញើ ត្រូវតែជាអាសយដ្ឋានដែលគណនី SMTP អាចផ្ញើបាន។ ក្នុងប្រធានបទ និងតួអ៊ីមែល ក៏អាចប្រើ {code} និង {minutes} បានដែរ។

ការគ្រប់គ្រងអ្នកប្រើ

  • ចាកចេញពីគ្រប់ឧបករណ៍ (모든 기기 로그아웃)៖ ផ្តាច់ការចូលគណនីទាំងអស់ (auth key) នៃគណនីនោះ។ ប្រើសម្រាប់អ្នកប្រើដែលបាត់ឧបករណ៍។
  • ហាមឃាត់លេខ (번호 차단)៖ លេខនោះមិនអាចទទួលលេខកូដបានទេ ហើយគណនីនៃលេខនោះ ត្រូវចាកចេញពីគ្រប់ឧបករណ៍ភ្លាមៗ។ វាដូចគ្នានឹងបញ្ជីហាមឃាត់លេខទូរស័ព្ទ (전화번호 차단) ក្នុងផ្ទាំងការកំណត់ (설정)។
  • អ៊ីមែលចូលគណនី (로그인 이메일)៖ ចាំបាច់ ដើម្បីឲ្យគណនីដែលមានស្រាប់ អាចចូលតាមអ៊ីមែល ក្នុងវិធីអ៊ីមែល។
  • @BotFather ជាបូតដែលនៅក្នុងម៉ាស៊ីនមេ ដូច្នេះមិនអាចធ្វើឲ្យវាចាកចេញបានទេ។

ការគ្រប់គ្រងបូត

នៅក្នុងផ្ទាំងបូត () អ្នកអាចមើលវិធីតភ្ជាប់របស់បូតនីមួយៗ — ថាវាភ្ជាប់តាម MTProto ឬអត់ ថាវាបានហៅ getUpdates តាម HTTP ក្នុងរយៈពេល 1 នាទីចុងក្រោយឬអត់ និងអាសយដ្ឋាន webhook ជាអ្វី ហើយកំពុងបរាជ័យឬអត់ (រួមទាំងមូលហេតុ)។ បើ update ដែលកំពុងរង់ចាំចេះតែកើនឡើង មានន័យថាកម្មវិធីបូតបានឈប់ ឬ webhook កំពុងបរាជ័យ។ ការលុបបូត និងការចេញតូខឹនថ្មី ធ្វើដោយអ្នកបង្កើតបូត នៅ @BotFather។

អថេរបរិស្ថាន

ម៉ាស៊ីនមេអានឯកសារកំណត់ (server-config.json) រួចសរសេរជាន់ដោយអថេរបរិស្ថាន។ ដោយសារឯកសារ compose ផលិតកម្មកំណត់តម្លៃខាងក្រោមឲ្យរួចហើយ ជាធម្មតាអ្នកគ្រាន់តែកែ .env ប៉ុណ្ណោះ។

អថេរអត្ថន័យតម្លៃក្នុង compose ផលិតកម្ម
TELEGRAM_PORTច្រក MTProtoMTPROTO_PORT (8443)
TELEGRAM_HOSTអាសយដ្ឋានដែល MTProto ស្តាប់0.0.0.0
TELEGRAM_PUBLIC_HOSTអាសយដ្ឋានម៉ាស៊ីនមេដែលប្រាប់ទៅកម្មវិធី (help.getConfig)PUBLIC_IP
TELEGRAM_WEB_PORTច្រកសម្រាប់គេហទំព័រ ឯកសារ Bot API និងទំព័រគ្រប់គ្រង8080
TELEGRAM_WEB_HOSTអាសយដ្ឋានដែលច្រកនោះស្តាប់។ លំនាំដើម 127.0.0.10.0.0.0 (ក្នុង container។ នៅលើ host បើកចំហតែ 127.0.0.1)
TELEGRAM_PUBLIC_URLអាសយដ្ឋានគេហទំព័រ។ សម្រាប់តំណ (me_url_prefix) តំណអញ្ជើញ ឧទាហរណ៍ក្នុងឯកសារ និងរូបភាពមើលជាមុនhttps://DOMAIN/
TELEGRAM_DATA_DIRទីតាំងរូបថត admin-token និង operations.json/app/data
TELEGRAM_RSA_KEYផ្លូវទៅសោឯកជន RSA របស់ម៉ាស៊ីនមេ (បើមិនមាន វាបង្កើតនៅលើកដំបូង សោសាធារណៈគឺ .pub)/app/keys/private.pem
TELEGRAM_DC_IDលេខ DC របស់ម៉ាស៊ីនមេនេះ(លំនាំដើមរបស់ image គឺ 1)
TELEGRAM_DB_TYPEmemory · h2 · postgresqlpostgresql
TELEGRAM_DB_URL, TELEGRAM_DB_USERNAME, TELEGRAM_DB_PASSWORDការតភ្ជាប់ JDBCjdbc:postgresql://pabal-postgres:5432/pabal, pabal, POSTGRES_PASSWORD
TELEGRAM_DB_MAX_POOL_SIZEចំនួនការតភ្ជាប់ DB20
TELEGRAM_ADMIN_TOKENតូខឹនទំព័រគ្រប់គ្រង (បើទុកទទេ វាបង្កើតក្នុង data/admin-token)ADMIN_TOKEN
TELEGRAM_TEST_NUMBERSលេខសាកល្បង +99966…សម្រាប់តែការអភិវឌ្ឍfalse
TELEGRAM_WEBHOOK_ALLOW_LOCALអនុញ្ញាតឲ្យ webhook របស់បូតប្រើ http:// និងអាសយដ្ឋានខាងក្នុង។ សម្រាប់តែការអភិវឌ្ឍ(មិនកំណត់ = false)
JAVA_OPTSជម្រើស JVM (អង្គចងចាំ)តម្លៃក្នុង .env

ឯកសារទិន្នន័យ

ឯកសារខ្លឹមសារសិទ្ធិ
keys/private.pemសោឯកជន RSA របស់ម៉ាស៊ីនមេ។ កុំបញ្ចេញទៅខាងក្រៅជាដាច់ខាត600
keys/private.pem.pubសោសាធារណៈ។ ប្រើសម្រាប់ build កម្មវិធី និង /docs/server-key.pem
data/admin-tokenតូខឹនទំព័រគ្រប់គ្រង600
data/operations.jsonតម្លៃនៃផ្ទាំងការកំណត់ (설정) — ច្បាប់ចុះឈ្មោះ តម្លៃសម្ងាត់ SMS និង SMTP លេខដែលត្រូវបានហាមឃាត់600
data/media/រូបថតដើម
តារាង events នៃ PostgreSQLគណនី ការសន្ទនា សារ ការចូលគណនី បូត និងការកំណត់ webhook — កំណត់ត្រានៃរាល់ការផ្លាស់ប្តូរ

កំណត់ចំណាំសុវត្ថិភាព

  • កុំបើកច្រកគ្រប់គ្រងទៅអ៊ីនធឺណិតដោយផ្ទាល់។ Caddy ក្នុងរចនាសម្ព័ន្ធផលិតកម្ម រារាំងផ្លូវគ្រប់គ្រង ដូចជា /admin, /health, /metrics ដោយ 404។
  • សំណើទិន្នន័យគ្រប់គ្រងទាំងអស់ ត្រូវការ Authorization: Bearer <តូខឹន> ហើយទំព័រនៃគេហទំព័រផ្សេងមិនអាចអានវាបានទេ។
  • តម្លៃសម្ងាត់ SMS និង SMTP មានតែនៅក្នុង operations.json ហើយអេក្រង់ និង API ប្រាប់ត្រឹមតែ "បានរក្សាទុក" (저장됨) ប៉ុណ្ណោះ។ បើទុកប្រអប់តម្លៃសម្ងាត់ទទេ ហើយរក្សាទុក តម្លៃចាស់នៅដដែល។
  • តូខឹន និងតម្លៃសម្ងាត់ មិនត្រូវបានកត់ក្នុង log ទេ ហើយលេខទូរស័ព្ទក្នុង log ត្រូវបានលាក់មួយផ្នែក។ អាសយដ្ឋាន Bot API (ដែលមានតូខឹន) ក៏មិនត្រូវបានកត់ក្នុង log ដែរ។
  • ដោយសារ auth key ស្ថិតនៅក្នុង DB អ្នកណាដែលអាចចូល DB បាន អាចឌិគ្រីបចរាចរណ៍របស់អ្នកប្រើបាន។ សូមការពារ DB និងការបម្រុងទុក ឲ្យបានដូចសោ RSA ដែរ។

ដែនកំណត់

  • លេខកូដដែលកំពុងរង់ចាំ និងកំណត់ត្រាថ្មីៗ ស្ថិតនៅក្នុងអង្គចងចាំ ដូច្នេះវានឹងបាត់ពេលម៉ាស៊ីនមេចាប់ផ្តើមឡើងវិញ (គ្រាន់តែស្នើម្តងទៀតពីកម្មវិធី)។
  • ការផ្ញើពិតប្រាកដរបស់អ្នកផ្តល់សេវា SMS ត្រូវតែពិនិត្យជាមួយគណនីរបស់អ្នកផ្តល់សេវានីមួយៗ។ ម៉ាស៊ីនមេបង្កើតសំណើតាមឯកសាររបស់អ្នកផ្តល់សេវានីមួយៗ។
  • អ្វីដែលមិនទាន់មាន៖ ការលុបគណនី ការលុបបូតដោយបង្ខំ ការមើលសារ ការមើល log និងក្រាហ្វ។