ការដំណើរការម៉ាស៊ីនមេ
ការគ្រប់គ្រង និងការកំណត់
ទំព័រគ្រប់គ្រង ការបញ្ជូនលេខកូដចុះឈ្មោះ (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 ផ្ទាល់ខ្លួន ឬសេវាផ្សេង |
| Twilio | Account SID, Auth Token, លេខអ្នកផ្ញើ (발신 번호) ឬ Messaging Service SID | ទូទាំងពិភពលោក រួមទាំងលេខបរទេស |
| Solapi (អតីត CoolSMS) | API Key, API Secret, លេខអ្នកផ្ញើ | SMS ក្នុងស្រុក (កូរ៉េ)។ លេខអ្នកផ្ញើត្រូវជាលេខដែលបានចុះបញ្ជីជាមុននៅ Solapi។ លេខ +82 ត្រូវបានផ្ញើក្នុងទម្រង់ 010… |
ក្នុងអត្ថបទសារ អ្នកអាចដាក់ {code} (លេខកូដ) និង {minutes} (រយៈពេលមានសុពលភាព)។ តម្លៃលំនាំដើម៖ [파발] 인증 코드: {code} (មានន័យថា "[Pabal] លេខកូដផ្ទៀងផ្ទាត់៖ {code}")។ បន្ទាប់ពីរក្សាទុក សូមពិនិត្យដោយការផ្ញើសាកល្បង (테스트 발송)។
ការកំណត់ — អ៊ីមែល (SMTP)
| សេវា | ម៉ាស៊ីនមេ · ច្រក · សុវត្ថិភាព | ឈ្មោះអ្នកប្រើ · ពាក្យសម្ងាត់ |
|---|---|---|
| Gmail | smtp.gmail.com · 587 · STARTTLS | អាសយដ្ឋាន Gmail · ពាក្យសម្ងាត់កម្មវិធី (App password — គណនី Google → សុវត្ថិភាព → ការផ្ទៀងផ្ទាត់ 2 ជំហាន → ពាក្យសម្ងាត់កម្មវិធី) |
| Naver | smtp.naver.com · 587 · STARTTLS | ID · ពាក្យសម្ងាត់ (បើកការប្រើ 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 | ច្រក MTProto | MTPROTO_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.1 | 0.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_TYPE | memory · h2 · postgresql | postgresql |
TELEGRAM_DB_URL, TELEGRAM_DB_USERNAME, TELEGRAM_DB_PASSWORD | ការតភ្ជាប់ JDBC | jdbc:postgresql://pabal-postgres:5432/pabal, pabal, POSTGRES_PASSWORD |
TELEGRAM_DB_MAX_POOL_SIZE | ចំនួនការតភ្ជាប់ DB | 20 |
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 និងក្រាហ្វ។