# ขั้นตอนการทำงานและการดำเนินการ

Canonical page: https://phishdestroy.github.io/TgWitness/th/docs/reference/operations/

การดำเนินงานประจำวันของแผงควบคุม: โหมดการทำงาน, หมวดหมู่การติดตาม, พารามิเตอร์, การแจ้งเตือน, การส่งออกข้อมูล, การสำรองข้อมูล และขีดความสามารถ

สำหรับการเชื่อมต่อครั้งแรก ให้[ใช้บัญชีและรูปแบบเซสชัน](https://phishdestroy.github.io/TgWitness/th/docs/reference/accounts/) เพื่อดูคำอธิบายเกี่ยวกับเวอร์ชันที่บันทึกไว้ นโยบายเหตุการณ์ และช่องว่าง โปรด [ดูวิธีการทำงานของระบบการเก็บข้อมูล](https://phishdestroy.github.io/TgWitness/th/docs/reference/collection/) คู่มือนี้ครอบคลุมการดำเนินงานประจำวันและการกู้คืนข้อมูล

## ขั้นตอนการทำงานของผู้ใช้

แผนผังกระบวนการ · เลือกพื้นที่จัดเก็บและวิธีการปกป้องกุญแจ → เปิดแผงควบคุมด้วยโทเค็นของมัน; เปิดแผงควบคุมด้วยโทเค็นของมัน → เลือกพื้นที่ทำงาน; เลือกพื้นที่ทำงาน → กำหนดเส้นทาง Direct หรือ proxy; กำหนดเส้นทาง Direct หรือ proxy → ป้อนหมายเลขโทรศัพท์หรือเลือกไฟล์ / QR; ป้อนหมายเลขโทรศัพท์หรือเลือกไฟล์ / QR → ตรวจสอบตัวตนของบัญชีและเลือกกลุ่มที่สามารถเข้าถึงได้; ตรวจสอบตัวตนของบัญชีและเลือกกลุ่มที่สามารถเข้าถึงได้ → กำหนดนโยบายการบันทึกเหตุการณ์และไฟล์แนบ แล้วเริ่มการติดตาม; กำหนดนโยบายการบันทึกเหตุการณ์และไฟล์แนบ แล้วเริ่มการติดตาม → ติดตามข้อผิดพลาด การเข้าถึง แถวรอ และพื้นที่ดิสก์; ติดตามข้อผิดพลาด การเข้าถึง แถวรอ และพื้นที่ดิสก์ → รักษาจุดตรวจสอบอิสระ; รักษาจุดตรวจสอบอิสระ → ส่งออกและตรวจสอบข้อมูล · เลือกพื้นที่จัดเก็บและวิธีการปกป้องกุญแจ · เปิดแผงควบคุมด้วยโทเค็นของมัน · เลือกพื้นที่ทำงาน · กำหนดเส้นทาง Directหรือ proxy · ป้อนหมายเลขโทรศัพท์หรือเลือกไฟล์ / QR · ตรวจสอบตัวตนของบัญชีและเลือกกลุ่มที่สามารถเข้าถึงได้ · กำหนดนโยบายการบันทึกเหตุการณ์และไฟล์แนบแล้วเริ่มการติดตาม · ติดตามข้อผิดพลาดการเข้าถึง แถวรอและพื้นที่ดิสก์ · รักษาจุดตรวจสอบอิสระ · ส่งออกและตรวจสอบข้อมูล

**แผนภาพในรูปแบบข้อความ**

1. เลือกพื้นที่จัดเก็บและวิธีการปกป้องกุญแจ → เปิดแผงควบคุมด้วยโทเค็นของมัน
2. เปิดแผงควบคุมด้วยโทเค็นของมัน → เลือกพื้นที่ทำงาน
3. เลือกพื้นที่ทำงาน → กำหนดเส้นทาง Direct หรือ proxy
4. กำหนดเส้นทาง Direct หรือ proxy → ป้อนหมายเลขโทรศัพท์หรือเลือกไฟล์ / QR
5. ป้อนหมายเลขโทรศัพท์หรือเลือกไฟล์ / QR → ตรวจสอบตัวตนของบัญชีและเลือกกลุ่มที่สามารถเข้าถึงได้
6. ตรวจสอบตัวตนของบัญชีและเลือกกลุ่มที่สามารถเข้าถึงได้ → กำหนดนโยบายการบันทึกเหตุการณ์และไฟล์แนบ แล้วเริ่มการติดตาม
7. กำหนดนโยบายการบันทึกเหตุการณ์และไฟล์แนบ แล้วเริ่มการติดตาม → ติดตามข้อผิดพลาด การเข้าถึง แถวรอ และพื้นที่ดิสก์
8. ติดตามข้อผิดพลาด การเข้าถึง แถวรอ และพื้นที่ดิสก์ → รักษาจุดตรวจสอบอิสระ
9. รักษาจุดตรวจสอบอิสระ → ส่งออกและตรวจสอบข้อมูล

การอนุญาต การเชื่อมต่อเครือข่าย การเข้าถึงกลุ่ม และความครบถ้วนของการ ส่ง เป็นคุณสมบัติที่ต่างกัน สถานะการเชื่อมต่อสีเขียวไม่ได้หมายความว่าทุก เหตุการณ์ได้ถูกบันทึกไว้แล้ว

## แบ่งปันงานโดยไม่ต้องแบ่งปันกุญแจหลัก

การเข้าถึงแบบเปิด (Open **Access**) เพื่อมอบโทเค็นส่วนตัวให้กับผู้ตรวจสอบหรือนักวิเคราะห์ เลือกบัญชี และแชทที่พวกเขาสามารถเปิดได้ จากนั้นอนุญาตให้ดู ส่งออก หรือดำเนินการต่างๆ ผู้ดำเนินการที่เริ่ม/หยุดการเก็บข้อมูลจำเป็นต้องมีสิทธิ์เข้าถึงพื้นที่ทำงานทั้งหมด; ส่วนผู้ตรวจสอบ สามารถถูกจำกัดให้เข้าถึงได้เฉพาะการสนทนาเดียวเท่านั้น ข้อจำกัดของเซสชัน ระยะเวลาหมดอายุ และกฎ IP เป็นเรื่องที่แยกต่างหาก จากการอนุญาตบัญชี Telegram ดู[ส่วนการเข้าถึงและสิทธิ์](https://phishdestroy.github.io/TgWitness/th/docs/reference/access/)

ใช้ "**Open sessions"** เพื่อปิดการเชื่อมต่อ หรือเพิกถอนสิทธิ์การเข้าถึงเพื่อปิด ทุกเซสชันของมัน คอนโซลผู้ดูแลระบบรวมกิจกรรมของกระบวนการปัจจุบันจาก ทุกพื้นที่ทำงาน การปิดเซสชันจะไม่ส่งผลต่อการทำงานของระบบการเก็บข้อมูล

## โหมดการทำงาน

| โหมด | การดำเนินการ | พฤติกรรม |
| --- | --- | --- |
| Demo | scripts\Demo.cmd หรือ `--demo` | ข้อมูลสังเคราะห์; การเชื่อมต่อกับบัญชีจริงถูกปิดใช้งาน |
| ข้อสังเกต | เริ่มการสังเกต | บันทึกการอัปเดตที่ส่งมาสำหรับแหล่งข้อมูลที่เลือกไว้ |
| ภาพรวมประวัติ | แหล่งข้อมูล → ภาพถ่ายประวัติ | บันทึกข้อความล่าสุดได้สูงสุด 500 ข้อความ; ไม่มีการสร้างใหม่ของทุกการเปลี่ยนแปลงในอดีต |
| หยุดชั่วคราว | หยุดการสังเกต | หยุดการเก็บข้อมูลในขณะที่ยังคงเก็บข้อมูลและงานที่อยู่ในคิว |
| ตรวจสอบ/ส่งต่อ | การส่งออก | ZIP, JSONL/CSV/HTML, จุดตรวจสอบ, ใบรับการดำเนินการ และคำขอประทับเวลา |
| หลายบัญชี | พื้นที่ทำงาน หรือปุ่ม **+** ด้านบน | สามารถสร้างพื้นที่ทำงานแยกกันได้ไม่จำกัดภายในกระบวนการเดียว |

การเข้าถึงเดโมท้องถิ่นจะเปิดอัตโนมัติโดยไม่ต้องป้อนโทเค็นด้วยมือ มันใช้ ความสามารถที่มีอายุการใช้งานตามกระบวนการ (process-lifetime capability) ซึ่งใช้ได้เฉพาะสำหรับการเข้าถึงแบบลูปแบ็กโดยตรงไปยัง เดโมสังเคราะห์ที่แยกเป็นอิสระ; โทเค็นของแผงหลักไม่ถูกเปิดเผย พื้นที่ทำงานจริงและการเข้าถึงเดโมจากระยะไกล หรือผ่านพร็อกซี ยังคงต้องใช้การยืนยันตัวตนด้วยโทเค็น การเข้าสู่เดโมไม่มอบสิทธิ์การอนุญาตของ Telegram

## หมวดหมู่การติดตาม

![การตั้งค่าการติดตามสำหรับแต่ละบัญชีด้วยข้อมูลแหล่งที่มาสังเคราะห์](https://phishdestroy.github.io/TgWitness/assets/sources.png)

ใน **Sources → Capture settings → Choose which changes to preserve**, ให้เลือกข้อความใหม่ การแก้ไข การแจ้งเตือนการลบ การอัปเดตปฏิกิริยา และเหตุการณ์สมาชิกอย่างแยกกัน ค่าเริ่มต้น จะเก็บรักษาทุกหมวดหมู่ **ข้อความ การแก้ไข และการลบจะ**รักษาบริบทเดิม ในขณะที่ปิดการอัปเดตปฏิกิริยา/สมาชิกแยกกัน **การบันทึกกิจกรรมที่มองเห็นได้ทั้งหมดจะ** บันทึกทั้งห้าประเภท การตั้งค่าล่วงหน้าจะเปลี่ยนรูปแบบ; กด **“บันทึกการตั้งค่าการติดตาม”** เพื่อนำไปใช้

นโยบายที่บันทึกไว้จะใช้กับแหล่งข้อมูลทั้งหมดที่เลือกไว้ในพื้นที่ทำงานนั้น ส่วน พื้นที่ทำงานอื่น ๆ จะรักษาการตั้งค่าของตนเองไว้ การเปลี่ยนแปลงแต่ละครั้งจะบันทึกค่าก่อน/หลัง ที่ลงนามไว้; นโยบายปัจจุบันยังถูกรวมไว้ในใบยืนยันกระบวนการและบันทึก การเริ่มต้นการสังเกตการณ์ด้วย การปิดใช้งานหมวดหมู่จะไม่ลบการสังเกตการณ์ก่อนหน้านี้ การเปิดใช้งาน ใหม่จะไม่กู้คืนการเปลี่ยนแปลงที่พลาดไป ในเวอร์ชันนี้ ไม่มีฟังก์ชันการแทนที่หมวดหมู่ตามกลุ่ม

ให้เปิดใช้งานการบันทึกข้อความใหม่เมื่อเนื้อหาเดิมมีความสำคัญ: การแจ้งเตือนการลบไม่สามารถ กู้คืนข้อความที่ไม่เคยถูกบันทึกไว้ได้ บันทึกการดำเนินงาน/การครอบคลุม และเหตุการณ์บริการกลุ่ม อื่นๆ จะถูกเก็บรักษาไว้เสมอ ภาพถ่ายประวัติที่ชัดเจนจะแยกต่างหากจาก การเลือกหมวดหมู่แบบเรียลไทม์ และอาจรวมถึงข้อความบริการด้วย สวิตช์เหล่านี้ไม่ ลบข้อมูลเมตาดาต้าของปฏิกิริยา/สมาชิกที่ฝังอยู่ในวัตถุ Telegram ที่ถูกบันทึกไว้แล้ว

ภาพถ่ายประวัติอาจจัดไฟล์แนบเข้าคิวระหว่างที่ระบบถูกหยุดชั่วคราว ให้เริ่มการสังเกตเพื่อประมวลผล ไฟล์เหล่านั้น การจัดเข้าคิวไม่หมายความว่าไฟล์ได้ถูกดาวน์โหลดแล้ว ไฟล์ต้นฉบับที่ไม่มีอยู่จะไม่ถูกแทนที่ ด้วยเวอร์ชันที่แก้ไขใหม่กว่า; ผลลัพธ์จะถูกบันทึกแยกกัน

การล็อกจะล้างการเข้าถึงเบราว์เซอร์และฟิลด์ลับ แต่ยังคงให้กระบวนการเก็บข้อมูลทำงานต่อไป การปิดแท็บก็ยังคงให้กระบวนการทำงานต่อไปเช่นกัน การหยุดกระบวนการ Python หรือบริการ จะหยุดการเก็บข้อมูลโดยไม่ขึ้นกับสถานะของเบราว์เซอร์

การลบพื้นที่ทำงานเพิ่มเติมจะหยุดตัวเก็บข้อมูลและลบข้อมูลท้องถิ่นของมัน หาก ไฟล์ถูกล็อกหรือเกิดข้อผิดพลาดในระบบไฟล์จนทำให้การลบถูกขัดจังหวะ แผงควบคุมจะรายงานความล้มเหลวและ ยังคงแสดงพื้นที่ทำงานนั้นว่าไม่สามารถใช้งานได้ (`DeletionPending`) ปิดโปรแกรมที่ถือ ไฟล์ดังกล่าวและลอง**ลบ**อีกครั้ง การเริ่มต้น TgWitness ใหม่จะทำให้พื้นที่ทำงานนั้นยังคงหยุดทำงานอยู่ และ ไม่สร้างบันทึกหรือกุญแจที่ถูกลบไปบางส่วนขึ้นใหม่ การลบที่สำเร็จจะถูกบันทึก เพียงหลังจากที่ไดเรกทอรีถูกลบไปแล้วเท่านั้น; สำเนาที่ส่งออกหรือสำรองข้อมูลไว้แยกต่างหากจะยังคงอยู่ ภายใต้นโยบายการเก็บรักษาข้อมูลของตนเอง

## การแจ้งเตือน

**แหล่งข้อมูล**เปิด**→ การแจ้งเตือน → การแจ้งเตือนและสรุปประจำวัน** TgWitness ใช้ Apprise เพื่อส่งการแจ้งเตือนไปยัง Matrix, Telegram, Discord, Slack, ntfy, email และ บริการอื่น ๆ ที่รองรับ คุณสามารถเพิ่มจุดหมายปลายทางหลายแห่งไปยังพื้นที่ทำงานเดียวได้

1. ป้อน URL ปลายทาง Apprise หนึ่งรายการต่อบรรทัด ใช้ [แคตตาล็อกบริการและรูปแบบ URL](https://appriseit.com/services/) ที่เหมาะสมกับบริการของคุณ
2. เปิดการแจ้งเตือนการส่ง (**Send notifications**) แล้วเลือกการแจ้งเตือนปัญหา การเปลี่ยนแปลงใน การสนทนาที่ติดตาม และสรุปประจำวัน การสรุปประจำวันใช้เวลามาตรฐานของเซิร์ฟเวอร์
3. เปิดตัวเลือก **“รวมข้อความสั้น”** หากต้องการให้ข้อความที่บันทึกไว้จากข้อความที่ถูกลบและแก้ไข ปรากฏในคำเตือน
4. กด "**บันทึกการแจ้งเตือน**" แล้วกด "**ส่งทดสอบ"** เพื่อตรวจสอบการส่งถึง

สำหรับตัวรับของคุณเอง ให้ใช้ [JSON webhook](https://appriseit.com/services/json/) ของ Apprise ตัวอย่างเช่น `jsons://notify.example.org/tgwitness` ส่ง JSON ผ่าน HTTPS ไปยัง จุดปลายทางนั้น นี่เป็นตัวอย่างสมมติ; ให้แทนที่ด้วยจุดปลายทางของคุณเอง

จุดหมายปลายทางและตั้งค่าเป็นส่วนหนึ่งของพื้นที่ทำงานที่เลือกไว้ การแจ้งเตือนการเปลี่ยนแปลง ครอบคลุมแหล่งข้อมูลที่ติดตามอยู่ รวมถึงการสนทนาที่เพิ่มใหม่ สัญลักษณ์รูปกระดิ่งในแถบด้านบน ยังแสดงปัญหาล่าสุดและการเปลี่ยนแปลงในการสนทนาด้วย

ในเวอร์ชันสาธิต การควบคุมการแจ้งเตือนจะปรากฏอยู่ แต่ฟังก์ชันการส่งถูกปิดใช้งานไว้ ให้ตั้งค่า การส่งในสภาพแวดล้อมการทำงานจริง การแจ้งเตือนจะใช้เส้นทาง Direct, SOCKS5 หรือ HTTP ของสภาพแวดล้อมการทำงานนั้น; MTProxy ไม่สามารถส่งการแจ้งเตือนได้ จุดหมายปลายทางที่ไม่ใช่ HTTP เช่น SMTP จำเป็นต้อง ใช้เส้นทางตรง

## การจัดวางแผง

![พื้นที่ทำงานเชื่อมต่อโดยใช้ข้อมูลสังเคราะห์](https://phishdestroy.github.io/TgWitness/assets/connection.png)

**บันทึก**แสดงข้อมูลการสังเกต การค้นหา และตัวกรอง การแก้ไขจะเปิดเวอร์ชันที่ถูกบันทึกไว้; การลบจะเปิดเนื้อหาเดิมหากมีอยู่ แหล่งที่มาที่ไม่ทราบจะยังคงระบุไว้อย่างชัดเจน จำนวนข้อมูลสามารถดูได้ในส่วน "**ภาพรวม**" (**Overview**); รายละเอียดการเก็บข้อมูลจะอยู่ในคู่มือท้องถิ่น

เปิดข้อความที่ถูกแก้ไขเพื่อเปรียบเทียบเวอร์ชันด้วยมุมมอง **แสดงความต่างในข้อความ** หรือ **แสดงเทียบกัน** ส่วน **ข้อมูลดิบ** จะแสดงฟิลด์ที่บันทึกไว้ การเปลี่ยนแปลงลิงก์ที่ซ่อนอยู่และปุ่มบอทจะแสดงแยกต่างหาก เปิดตัวอย่างไฟล์แนบเพื่อตรวจสอบรูปภาพ เสียง หรือวิดีโอที่บันทึกไว้ โดยปุ่มดาวน์โหลดจะช่วยให้คุณนำไฟล์ต้นฉบับที่เก็บรักษาไว้ออกมาใช้งานได้

**Live** จะอัปเดตบันทึกเหตุการณ์และแชททันทีที่ข้อมูลเข้ามา คุณสามารถหยุดชั่วคราวขณะตรวจสอบข้อมูล หรือใช้ปุ่มเหตุการณ์ใหม่เมื่อพร้อม โดยที่การเก็บรวบรวมข้อมูลยังคงทำงานต่อไป กด **Ctrl/Cmd+K** เพื่อค้นหาคำสั่งในพาเนลและค้นหาข้อมูลในบันทึกเหตุการณ์

**ส่วน "แหล่งข้อมูล"** ประกอบด้วยขอบเขตการสังเกต (การสนทนาที่เลือกไว้, โฟลเดอร์ Telegram หรือทั้ง บัญชี), การสนทนาที่เข้าถึงได้ทุกประเภท, แหล่งข้อมูลที่เลือกไว้พร้อมดาวแสดงลำดับความสำคัญ, การตั้งค่า ไฟล์แนบและการตรวจสอบซ้ำ รวมถึงภาพถ่ายประวัติ แหล่งข้อมูลส่วนตัวถูกเลือกผ่านกล่องสนทนา/ID โดยไม่มีลิงก์สาธารณะ สถานะการเข้าถึงอธิบายการตรวจสอบล่าสุด ไม่ใช่สิทธิ์การเข้าถึงถาวร

กรองแหล่งข้อมูล เลือกช่องทำเครื่องหมาย จากนั้นเปิดใช้งาน หยุดชั่วคราว หรือทำเครื่องหมายเป็นรายการสำคัญพร้อมกันได้ ในรายการแชทที่มีอยู่ ปุ่ม **เพิ่มรายการที่เลือก** จะใช้รายการที่คุณเลือก ส่วน **เพิ่มทุกรายการที่ตรงกัน** จะใช้คำค้นหาและตัวกรองประเภทในปัจจุบัน

**Chats → People** แสดงรายชื่อทุกคนที่มีข้อความที่บันทึกไว้; เมื่อเปิดโปรไฟล์ผู้ใช้ สำหรับแชทนั้น การคลิกจะเปิดโปรไฟล์ของบุคคลนั้นพร้อมลิงก์ไปยังบันทึกในสมุดบันทึก

**Witness** สร้างโทเค็นพยานแบบอ่านอย่างเดียว แสดงเวลาที่พยานแต่ละตัวตรวจสอบครั้งสุดท้าย และ ให้คำสั่งและตัวเลือกเพื่อเรียกใช้พยานหนึ่งตัว ([พยานอิสระ](https://phishdestroy.github.io/TgWitness/th/docs/reference/witness/))

**ส่วน "Parameters"** กำหนดทุกขีดจำกัดและจังหวะการทำงานของพื้นที่ทำงานที่ไม่ได้ระบุไว้ในหน้าอื่น: จำนวนบทสนทนาที่อ่าน, ความถี่ในการอ่านใหม่ของรายชื่อแชท, ช่วงเวลาของ heartbeat และ checkpoint บัฟเฟอร์เริ่มต้น, วิธีที่ระบบกระจายคำขอในการตรวจสอบใหม่ (ความล่าช้าครั้งแรก, จำนวนแชทต่อ ครั้ง, เวลาพักระหว่างการสนทนา, จำนวนข้อความที่กู้คืนและขอใหม่), พื้นที่ดิสก์สำรอง, เวลาหมดอายุและ การลองใหม่ในการดาวน์โหลด, สิ่งที่โปรไฟล์ผู้ใช้ค้นหา (รวมถึงนิพจน์ปกติของคุณเอง), ขนาดและความถี่ของการแจ้งเตือน, ข้อจำกัดของ snapshot, ZIP และการดาวน์โหลดผ่านเบราว์เซอร์, รวมถึง เวลาหมดอายุและลองใหม่ของไคลเอนต์ Telegram. แต่ละฟิลด์จะแสดงช่วงค่าและค่าเริ่มต้น; ฟิลด์ที่เปลี่ยนแปลงแล้ว จะถูกทำเครื่องหมายและสามารถคืนค่าได้ทีละรายการหรือทั้งหมดพร้อมกัน การเปลี่ยนแปลงทุกครั้งจะถูกบันทึกเป็น `parameters.changed` พร้อมค่าก่อนและหลังการเปลี่ยนแปลง และบันทึกการเริ่มต้นการสังเกตการณ์จะระบุ ชื่อค่าที่มีผลบังคับใช้ ค่าจะมีผลตั้งแต่การใช้งานครั้งถัดไป; ส่วนเวลาหมดอายุและจำนวนครั้งลองใหม่ของไคลเอนต์จะมีผลตั้งแต่ การเชื่อมต่อครั้งถัดไป ส่วนช่วงเวลาตรวจสอบซ้ำ ประเภทและขนาดไฟล์แนบ หลักฐาน และช่วงเวลาคัดลอกข้อมูลนอกเซิร์ฟเวอร์ จะอยู่ในหน้าของตัวเองและสามารถตั้งค่าได้ทุกค่าในช่วงที่กำหนด ไม่จำกัดเฉพาะค่าที่ตั้งไว้ล่วงหน้าเท่านั้น

ไอคอนรูปกระดิ่งในแถบด้านบนแสดงปัญหาและเปลี่ยนแปลงล่าสุดในแชทที่ถูกติดตาม; ข้อความที่ยังไม่ได้อ่าน จะถูกนับจนกว่าจะถูกทำเครื่องหมายว่าอ่านแล้ว การเปลี่ยนแปลงถูกจัดกลุ่มตามแชทและชั่วโมง ("12 ข้อความถูกลบ, 1 ข้อความถูกแก้ไข, 0 ข้อความไม่พบ") และปัญหาต่างๆ เช่น การออกจากระบบหรือพื้นที่ดิสก์เต็ม จะยังคงอยู่ในรายการ ไม่ว่าแชทจะมีความเคลื่อนไหวมากเพียงใด

การตั้งค่าบัญชีเริ่มต้นที่ช่องหมายเลขโทรศัพท์ **การคลิก “ต่อไป”** จะนำคุณไปยัง หน้าป้อนรหัสโดยตรง โดยจะขอข้อมูลรับรอง API เฉพาะเมื่อยังไม่มีเท่านั้น QR และการนำเข้าไฟล์เป็น แท็บทางเลือก ข้อมูลรับรอง API ที่บันทึกไว้จะถูกใช้ซ้ำได้เฉพาะภายในพื้นที่ทำงานของตัวเองเท่านั้น หน้าจอป้อนข้อมูลไม่มีแถบด้านข้าง สถิติ หรือส่วนตั้งค่า ไอคอนการตั้งค่า เปิดการควบคุม API, พร็อกซี, พื้นที่จัดเก็บ และบัญชีเพิ่มเติม การติดตั้งใหม่ เริ่มต้นที่นี่; บัญชีที่เชื่อมต่อแล้วแต่ยังไม่ได้เลือกแหล่งข้อมูลจะเริ่มต้นที่ **"เลือกแชท**" การเปลี่ยนเส้นทางต้องหยุดการสังเกตชั่วคราวและยกเลิกการเข้าสู่ระบบที่ยังไม่เสร็จสิ้น บันทึกที่มีอยู่ ไม่สามารถผูกกับบัญชี Telegram อื่นได้โดยอัตโนมัติ

**การส่งออกจะ**ตรวจสอบความสมบูรณ์ของบันทึกและสร้างไฟล์ที่สามารถพกพาได้ ID ของพื้นที่ทำงาน สามารถส่งต่อไปยัง CLI สำหรับการดาวน์โหลดได้ การส่งออกแต่ละครั้งจะกำหนดคำนำหน้าของบันทึกเต็มรูปแบบ; เหตุการณ์ ที่เกิดขึ้นในภายหลังจะถูกบันทึกในไฟล์ส่งออกถัดไป ตัวกรองการค้นหาไม่เปลี่ยนแปลงขอบเขตของแพ็กเกจ ข้อมูลรายละเอียดเกี่ยวกับการลงนามและขอบเขตการครอบคลุมอยู่ในส่วน "**การตรวจสอบและข้อจำกัด**"

แผงควบคุมจะแสดงสถานะของ Collector, สื่อที่อยู่ในคิว/ล้มเหลว, สื่อที่รอการประมวลผลที่เก่าที่สุด, พื้นที่ว่าง บนดิสก์, การหยุดชั่วคราวของคำขอ และแหล่งข้อมูลที่การเข้าถึงยังไม่ได้รับการยืนยัน ภายใต้ส่วน **Collector health** รายละเอียดเหล่านี้จะถูกพับเก็บไว้โดยเริ่มต้นและซ่อนไว้บนหน้า Account บัตรตั้งค่า จะแสดงขั้นตอนต่อไป: เชื่อมต่อบัญชี, เลือกแหล่งข้อมูล หรือเริ่มการสังเกตการณ์ รายชื่อบัญชีเป็นภาพถ่ายขณะโหลด; พื้นที่ทำงานที่เลือกจะอัปเดตเป็นระยะๆ นี่ไม่ใช่เครื่องมือติดตาม SLA แบบหลายกระบวนการ

ส่วนติดต่อผู้ใช้ (UI) ใช้ทรัพยากรท้องถิ่นและการแสดงผลข้อความสำหรับเนื้อหาต้นฉบับ ได้ทดสอบแล้วสำหรับเดสก์ท็อปและ เลย์เอาต์ Chromium แบบแคบ นี่ไม่ใช่การรับรองความสามารถในการเข้าถึงที่สมบูรณ์; การประเมินความสามารถในการใช้งานสำหรับโปรแกรมอ่านหน้าจอและผู้ใช้ทั่วไปยังคงเป็นงานที่แยกต่างหาก

## สภาพแวดล้อมการติดตั้ง

| สภาพแวดล้อม | การติดตั้ง | สถานะการตรวจสอบ |
| --- | --- | --- |
| Windows PC/server | Python 3.11+, สคริปต์\Setup.cmd/Start.cmd, ไดเรกทอรีข้อมูลส่วนตัว | ได้ตรวจสอบในระบบ Windows/Python 3.12 แล้ว |
| เซิร์ฟเวอร์ Linux/VPS | Python venv, ผู้ใช้บริการเฉพาะ, HTTPS/SSH | มีตัวอย่างโค้ด CI และ systemd; ไม่ได้ถูกดำเนินการบนโฮสต์นี้ |
| macOS | Python venv, กระบวนการทำงานในพื้นหน้า หรือ ตัวแทนผู้ใช้ | มีตัวอย่าง launchd ให้ดู; ต้องตรวจสอบการติดตั้งแยกต่างหาก |
| Docker/Compose | ปริมาณคงที่, หนึ่งคนทำงาน | มีคำอธิบายและฟังก์ชันตรวจสอบการทำงานของ CI; Docker ไม่สามารถใช้งานได้ในระบบท้องถิ่น |
| เบราว์เซอร์บนโทรศัพท์ | เชื่อมต่อกับแผงควบคุมที่ได้รับการป้องกันบนเซิร์ฟเวอร์ที่กำลังทำงาน | ได้ทดสอบกับรูปแบบ Chromium ที่แคบแล้ว; ตัวเก็บข้อมูลไม่ทำงานบน iOS/Android |

ความสามารถในการพกพาได้หมายความว่าไม่จำเป็นต้องใช้บริการคลาวด์หรือสร้างส่วนหน้า (frontend) แต่ละเป้าหมายยังคง ต้องมีความเข้ากันได้กับไลบรารี Python/crypto ที่จำเป็น รวมถึงการเข้าถึงดิสก์ท้องถิ่นและเครือข่าย ดู [DEPLOYMENT.md](https://phishdestroy.github.io/TgWitness/th/docs/reference/deployment/) และ[แม่แบบบริการ](https://github.com/phishdestroy/TgWitness/blob/main/deploy/README.md)

พื้นที่ทำงาน (Workspaces) ใช้ CPU, หน่วยความจำ และวงจรเหตุการณ์ (event loop) ร่วมกัน เพื่อแยกกระบวนการ (process isolation) ให้ใช้ อินสแตนซ์ พอร์ต ไดเรกทอรีข้อมูล และการอนุญาตบัญชีที่ต่างกัน ไม่มี แผงควบคุม (panel) ที่รวมกันสำหรับอินสแตนซ์ที่แยกกัน อย่ากำหนดให้หลายตัวทำงาน (workers) เชื่อมต่อกับฐานข้อมูลเดียวกัน

## การตรวจสอบและส่งออกข้อมูล

รัน `python start.py --check` ก่อนเริ่มสภาพแวดล้อมที่เตรียมไว้ เพิ่ม `--json` สำหรับการตรวจสอบที่เครื่องอ่านได้ หรือส่งค่า `--data-dir`, `--host` และ `--port` ที่ต้องการ คำสั่งนี้จะตรวจสอบเงื่อนไขเบื้องต้นโดยไม่ต้องเข้าสู่ระบบ Telegram หรือสร้างบันทึก คำสั่งนี้ไม่ตรวจสอบบันทึกหรือยืนยันความพร้อมในการบันทึก; การตรวจสอบบันทึกจะดำเนินการ ระหว่างการเริ่มต้นแอปพลิเคชัน พอร์ตที่ถูกใช้งานอยู่อาจเป็นเพียงอินสแตนซ์ที่มีอยู่เดิม

เบราว์เซอร์ที่สนับสนุน File System Access API จะบันทึกการส่งออกผ่านสตรีมที่เขียนได้ ส่วนเบราว์เซอร์อื่น ๆ จะบัฟเฟอร์ได้สูงสุด 128 MiB ให้ใช้ CLI แบบสตรีมมิ่งสำหรับการส่งออกที่มีขนาดใหญ่ หรือเบราว์เซอร์ที่ไม่มีฟังก์ชันสตรีมมิ่งไฟล์:

```
python -m tgwitness.download --token-file data/live/panel-token.txt --out evidence.zip
```

เพิ่ม `--profile ID` จาก Exports เพื่อสร้างพื้นที่ทำงานลูก ใช้ `--url https://server` สำหรับการเข้าถึงจากระยะไกล HTTP แบบธรรมดาจะได้รับการยอมรับเฉพาะสำหรับปลายทาง loopback เท่านั้น โทเค็น จะถูกอ่านจากไฟล์และส่งในส่วนหัว (header) ไม่ถูกพิมพ์หรือใส่ใน URL การเปลี่ยนเส้นทาง จะถูกปฏิเสธ ปลายทางที่มีอยู่จะไม่ถูกเขียนทับ การถ่ายโอนที่ล้มเหลวจะลบ ไฟล์ส่วนชั่วคราวที่เกี่ยวข้อง SHA-256 ที่รายงานเป็นค่าตรวจสอบการถ่ายโอน; โปรดตรวจสอบไฟล์ ZIP ที่ลงนาม แยกต่างหากด้วยลายนิ้วมือ/จุดตรวจสอบที่เชื่อถือได้

## การสำรองข้อมูล การกู้คืนข้อมูล และการหยุดทำงาน

1. หยุดการสังเกตและยุติกระบวนการอย่างเรียบร้อย
2. คัดลอกไดเรกทอรีข้อมูลทั้งหมด: ฐานข้อมูล, WAL/SHM (หากมี), media, `credentials.enc`, `signing.enc`, `network.enc`, vault keys/metadata, token, checkpoints และทุกไดเรกทอรี `profiles/`
3. สำหรับโหมดกุญแจภายนอก (external-key mode) ให้เก็บรักษากุญแจหลัก (master key) และแต่ละ `vault.external.json` แยกกัน การสร้างกุญแจใหม่ไม่สามารถกู้คืนความลับเดิมได้
4. กู้คืนข้อมูลในขณะที่ปลายทางถูกหยุดทำงาน; ตั้งค่ากุญแจต้นฉบับ, จำกัด การเข้าถึง และตรวจสอบความสมบูรณ์ก่อนที่จะดำเนินการต่อ
5. บันทึกช่วงเวลาที่ระบบหยุดทำงานและผลการตรวจสอบ ภาพถ่ายประวัติไม่สามารถพิสูจน์ได้ว่า ไม่มีการลบข้อความเกิดขึ้นในช่วงเวลาที่ระบบหยุดทำงาน

ไฟล์ ZIP ของหลักฐานไม่รวมเซสชัน/กุญแจส่วนตัว และไม่ใช่การสำรองข้อมูลแบบเต็มระบบ มีสี่สิ่งที่ได้รับการคุ้มครองอย่างแตกต่างกัน:

| อะไร | การป้องกัน |
| --- | --- |
| ส่งออกไฟล์โดยไม่ใช้รหัสผ่าน (ค่าเริ่มต้น) | ไม่มีการเข้ารหัส แต่มีลายเซ็น ดังนั้นการเปลี่ยนแปลงสามารถตรวจพบได้ แต่ผู้ถือไฟล์สามารถอ่านเนื้อหาได้ |
| ส่งออกไฟล์ด้วยรหัสผ่าน | หากตั้งรหัสผ่าน ไฟล์ที่ส่งออกเสร็จสิ้นจะถูกเก็บไว้ในรูปแบบ WinZip AES-256 ZIP ที่ 7-Zip และ WinRAR สามารถเปิดได้ โดยรหัสผ่านจะไม่ถูกเก็บไว้ ([การจัดการหลักฐาน](https://phishdestroy.github.io/TgWitness/th/docs/reference/evidence/)) |
| ฐานข้อมูลของบันทึกและไฟล์แนบที่เก็บไว้บนดิสก์ | TgWitness ไม่เข้ารหัสข้อมูล; ให้ใช้ดิสก์หรือโวลุ่มที่เข้ารหัส |
| เซสชัน Telegram และกุญแจลงนาม | ถูกเข้ารหัสในโฟลเดอร์ข้อมูล (`credentials.enc`, `signing.enc`, `network.enc`) |

การสำรองข้อมูลแบบครบวงจรคือไดเรกทอรีข้อมูลที่ถูกหยุดไว้ตามที่อธิบายข้างต้น ไม่ใช่การส่งออก ใช้พื้นที่จัดเก็บที่ได้รับการป้องกันและกลไกการถ่ายโอนที่ได้รับการออกแบบอย่างรอบคอบสำหรับทั้งสองกรณี การส่งออกชั่วคราวบนเซิร์ฟเวอร์จะถูกเก็บไว้ใน `temporary-exports/` ของแต่ละพื้นที่ทำงาน; คำตอบที่เสร็จสมบูรณ์จะถูกล้างออก และไฟล์การส่งออกที่ถูกขัดจังหวะ จะถูกลบออกในการเริ่มต้นระบบครั้งต่อไป ในขณะที่ล็อกอินสแตนซ์ของพื้นที่ทำงานนั้นยังคงถูกถืออยู่

เหตุการณ์การเชื่อมต่อที่ได้รับการฟื้นฟูไม่รับประกันการกู้คืนการเปลี่ยนแปลงระหว่างทาง งานสื่อที่คงอยู่และตำแหน่งการอัปเดตของ Telegram จะยังคงอยู่หลังการรีสตาร์ท; [ดูรูปแบบหลักฐาน](https://phishdestroy.github.io/TgWitness/th/docs/reference/evidence/#durable-collection-and-process-receipts-02)

## ความจุและการเก็บรักษา

ขีดจำกัดเริ่มต้น ซึ่งสามารถปรับเปลี่ยนได้ทั้งหมดภายใต้ส่วน **Parameters**: 1,000 บทสนทนาแรก, 500 ข้อความ ต่อ snapshot, เนื้อหา ZIP ที่ลงนามและไม่ถูกบีบอัด 4 GiB (ไฟล์เก็บถาวรที่ใหญ่กว่าต้องใช้ `verify.py --max-gib N`) และพื้นที่สำรองสำหรับเบราว์เซอร์ 128 MiB. ไฟล์แนบใช้พื้นที่ 1–2,000 MiB ต่อ ประเภท ในส่วน **Sources → Attachments**. CLI สำหรับการดาวน์โหลดตั้งค่าเริ่มต้นที่ 5 GiB ที่ถูกส่งไป พื้นที่ดิสก์ที่มีอยู่สามารถเป็น ขีดจำกัดที่ต่ำกว่าได้ ให้สำรองพื้นที่สำหรับบันทึก, สื่อ, WAL, การส่งออกชั่วคราว และการสำรองข้อมูล การส่งออกใช้ปริมาณข้อมูลแทน `/tmp` 512 MiB ของ Compose

วัดเหตุการณ์ต่อวินาที (events/second), อายุคิว (queue age), ไบต์ของสื่อ (media bytes) และความล่าช้าของดิสก์ (disk latency) แทนที่จะนับ กลุ่ม (groups) เพียงอย่างเดียว การทดสอบประสิทธิภาพแบบจำลองในท้องถิ่น (synthetic local benchmarks) ไม่รับประกันการส่งข้อความใน Telegram ไม่มีการลบข้อมูลที่เก็บรักษาไว้โดยอัตโนมัติ การลบส่วนท้ายของบันทึก (journal tail) จะทำให้ความสัมพันธ์ของบันทึกนั้น กับจุดตรวจสอบที่เก็บรักษาไว้ (checkpoints) ไม่ถูกต้อง

ระบบตรวจสอบซ้ำตามลำดับความสำคัญมีอยู่แล้ว: แหล่งข้อมูลที่ติดดาวจะถูกตรวจสอบซ้ำทุก 15 นาทีตามค่าเริ่มต้น, แหล่งข้อมูลอื่น ๆ ทุก 6 ชั่วโมง (ดู[ระดับการตรวจสอบซ้ำ](https://phishdestroy.github.io/TgWitness/th/docs/reference/collection/#recheck-tiers)). การส่งออกข้อมูล ที่ได้รับการป้องกันด้วยรหัสผ่านมีอยู่ตามที่อธิบายไว้ข้างต้น. การรับข้อมูล Telegram/proxy แบบเรียลไทม์, การเล่นซ้ำที่คงทน, บันทึกผู้ดูแลระบบและการสำรวจปฏิกิริยา, ผู้ทำงานแบบแยกส่วน, การเข้ารหัสบันทึกท้องถิ่นและสื่อ โดย TgWitness เอง และการตรวจสอบอิสระ ยังคงเป็นงานที่แยกต่างหาก การเข้าถึงตามขอบเขต ได้รับการบันทึกไว้ใน[ส่วนการเข้าถึงและสิทธิ์](https://phishdestroy.github.io/TgWitness/th/docs/reference/access/) ดู [READINESS.md](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/READINESS.md), [LIVE_ACCEPTANCE.md](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/LIVE_ACCEPTANCE.md) และ [VERIFICATION.md](https://phishdestroy.github.io/TgWitness/th/docs/reference/verification/).
