เอกสารนี้จะแสดงวิธีการตั้งค่าการติดตั้งไคลเอ็นต์ WhatsApp Business API ที่มีการเชื่อมต่อหลายจุดบน Minikube สำหรับเครื่องของผู้พัฒนา โปรดดูรายการข้อกำหนดของเราก่อนเริ่มขั้นตอนการตั้งค่าเหล่านี้
หากต้องการตั้งค่าคลัสเตอร์ความพร้อมใช้งานระดับสูง ให้ดำเนินขั้นตอนเหล่านี้
biz
สำหรับสคริปต์การตั้งค่าwhatsapp-config
$VERSION
หากต้องการตั้งค่าคลัสเตอร์การเชื่อมต่อหลายจุดที่มีความพร้อมใช้งานระดับสูง ให้ดำเนินขั้นตอนเหล่านี้
เมื่อตั้งค่าอินสแตนซ์เรียบร้อยแล้ว คุณสามารถเลือกที่จะอัพเกรดอินสแตนซ์ได้ หากต้องการถอนการติดตั้งไคลเอ็นต์ ให้ทำตามขั้นตอนเหล่านี้
คุณจะต้องมีรายการต่อไปนี้
minikube
kubectl
เราขอแนะนำอย่างยิ่งให้คุณอ่านคู่มือความพร้อมใช้งานและการขยายขนาดเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับความพร้อมใช้งานระดับสูงและการเชื่อมต่อหลายจุด
biz
สำหรับสคริปต์การตั้งค่าเรียกใช้โค้ดต่อไปนี้ในตำแหน่งที่คุณต้องการสำหรับไคลเอ็นต์ WhatsApp Business API ดังนี้
mkdir ~/biz; cd ~/biz;
โคลนไฟล์การกำหนดค่าทั้งหมดจากไดเรกทอรีการตั้งค่า/kubernetes ของคลัง GitHub WhatsApp-Business-API-Setup-Scripts ไปไว้ในไดเรกทอรี ~/biz
ที่คุณสร้างขึ้นในขั้นตอนที่ 1
สร้างฐานข้อมูล MySQL ที่มีไดรฟ์ข้อมูลคงที่โดยใช้คำสั่งต่อไปนี้
kubectl apply -f mysql.yaml
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
persistentvolume/mysql-volume created persistentvolumeclaim/mysql-volume-claim created service/mysql-service created deployment.extensions/mysql-deployment created
คุณสามารถตรวจสอบยืนยันได้ว่า MySQL กำลังทำงานอยู่โดยใช้คำสั่งต่อไปนี้
kubectl get pods
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
NAME READY STATUS RESTARTS AGE mysql-deployment-5d4f898-xtkpj 1/1 Running 0 53m
whatsapp-config
สร้างข้อมูลลับ whatsapp-config
จากไฟล์ db.env
ด้วยคำสั่งต่อไปนี้
kubectl create secret generic whatsapp-config --from-env-file=db.env
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
secret/whatsapp-config created
คุณสามารถตรวจสอบได้ว่ามีการสร้างข้อมูลลับหรือไม่โดยใช้คำสั่งต่อไปนี้
kubectl get secrets
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
NAME TYPE DATA AGE whatsapp-config Opaque 5 52s
คุณสามารถตรวจสอบรายละเอียดข้อมูลลับได้โดยใช้คำสั่งต่อไปนี้
kubectl describe secrets/whatsapp-config
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
Name: whatsapp-config Namespace: default Labels: <none> Annotations: <none> Type: Opaque Data ==== wa-db-password: 8 bytes wa-db-port: 4 bytes wa-db-username: 4 bytes wa-db-engine: 5 bytes wa-db-hostname: 13 bytes
ในการส่งหรือรับข้อความสื่อ ไคลเอ็นต์ WhatsApp Business API กำหนดให้ต้องมีไดรฟ์ข้อมูลคงที่ซึ่งแชร์ร่วมกันระหว่างการติดตั้งใช้งาน Webapp, Master และ Coreapp สร้าง PersistentVolume
และ PersistentVolumeClaim
สำหรับข้อความสื่อโดยเรียกใช้คำสั่งต่อไปนี้
kubectl apply -f volume.yaml
คำสั่งนี้จะจัดทำไดรฟ์ข้อมูลสื่อในเครื่องขึ้นและติดตั้งไว้ที่ /usr/local/wamedia
ภายในคลัสเตอร์ Kubernetes โดยมีขนาด 1 GB และจะส่งคำขอใช้งานพื้นที่จริงในเครื่องอีก 1 GB ผ่าน PersistentVolumeClaim
เพื่อใช้ในการพัฒนาและทดสอบ
คุณสามารถตรวจสอบสถานะของไดรฟ์ข้อมูลสื่อและการขอรับไดรฟ์ข้อมูลสื่อได้ผ่านคำสั่งต่อไปนี้
kubectl get pv media-volume kubectl get pvc media-volume-claim
$VERSION
แทนที่ตัวแปรสภาพแวดล้อม $VERSION
ด้วยไคลเอ็นต์ WhatsApp Business API เวอร์ชั่นล่าสุด (เช่น 2.23.4
) ในส่วน containers
ของไฟล์ webapp.yaml
, master.yaml
และ coreapp.yaml
webapp.yaml
containers: - name: whatsapp-web image: docker.whatsapp.biz/web:v2.23.4
master.yaml
containers: - name: whatsapp-master image: docker.whatsapp.biz/coreapp:v2.23.4
coreapp.yaml
containers: - name: whatsapp-coreapp image: docker.whatsapp.biz/coreapp:v2.23.4
ติดตั้งใช้งานคอนเทนเนอร์ Webapp, Master และ Coreapp โดยเรียกใช้คำสั่งต่อไปนี้
Webapp
kubectl apply -f webapp.yaml
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
horizontalpodautoscaler.autoscaling/whatsapp-web-autoscaler created service/whatsapp-web-service created deployment.apps/whatsapp-web-deployment created
Master
kubectl apply -f master.yaml
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
horizontalpodautoscaler.autoscaling/whatsapp-master-autoscaler created service/whatsapp-master-service created deployment.apps/whatsapp-master-deployment created
Coreapp
kubectl apply -f coreapp.yaml
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
horizontalpodautoscaler.autoscaling/whatsapp-coreapp-autoscaler created service/whatsapp-coreapp-service created deployment.apps/whatsapp-coreapp-deployment created
คุณสามารถตรวจสอบได้ว่าพ็อด Master/Coreapp/Webapp กำลังทำงานอยู่หรือไม่โดยใช้คำสั่งต่อไปนี้
kubectl get pods
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
NAME READY STATUS RESTARTS AGE mysql-deployment-5d4f898-xtkpj 1/1 Running 0 53m whatsapp-coreapp-deployment-78c4d987b8-4cpz4 1/1 Running 0 2s whatsapp-coreapp-deployment-78c4d987b8-l5qjj 1/1 Running 0 2s whatsapp-master-deployment-8598d7bf6b-56fvn 1/1 Running 7 15m whatsapp-master-deployment-8598d7bf6b-9r6lc 1/1 Running 7 16m whatsapp-web-deployment-cd4c5785c-9vn6l 1/1 Running 0 16m whatsapp-web-deployment-cd4c5785c-mn7kf 1/1 Running 0 16m
การกำหนดค่าเริ่มต้นจะสร้างพ็อด Master, พ็อด Coreapp และพ็อด Webapp ขึ้นมารายการละ 2 พอด แต่ละพ็อดจะส่งคำขอใช้งานหน่วยความจำ 128MB และ 0.15 CPU ดำเนินการเปลี่ยนแปลงต่อ spec.template.spec.containers.resources
ในไฟล์ YAML ที่สอดคล้องกันหากคุณต้องเปลี่ยนแปลงการตั้งค่าการใช้งานทรัพยากร
คุณสามารถดาวน์โหลดและกำหนดค่าคอลเลกชั่น Postman ของเราเพื่อโต้ตอบกับ WhatsApp Business API ได้ หากคุณไม่ต้องการใช้บรรทัดคำสั่ง
เมื่อคุณเรียกใช้คลัสเตอร์ Kubernetes โดยใช้ Minikube คุณต้องตรวจสอบ IP คลัสเตอร์ Kubernetes โดยเรียกใช้คำสั่งต่อไปนี้
minikube ip
ค้นหาว่าพอร์ตใดที่คอนเทนเนอร์ Webapp กำลังทำงานอยู่โดยใช้คำสั่งต่อไปนี้
kubectl get services/whatsapp-web-service
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE whatsapp-web-service NodePort 10.101.114.46 <none> 443:32477/TCP 25m
ในตัวอย่างนี้ พอร์ต 443
ภายในคอนเทนเนอร์ Webapp จะโยงเข้ากับพอร์ต 32477
บนคลัสเตอร์ Kubernetes
คุณต้องใช้ https://your-minikube-cluster-ip:your-webapp-service-targetport
(เช่น https://10.101.114.46:32477) เป็น URL ระดับรากของ API เมื่อใช้คอลเลกชั่น Postman
เข้าสู่ระบบไคลเอ็นต์ WhatsApp Business API เพื่อดึงโทเค็นการยืนยันตัวตน Bearer เพื่อเรียก API
คุณสามารถดำเนินการตรวจสอบระบบกับไคลเอ็นต์ WhatsApp Business API โดยใช้การเรียก API ไปยังโหนด health
เพื่อตรวจสอบยืนยันว่าพ็อดทั้งหมดทำงานอย่างถูกต้อง
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
'health': { '172.17.0.11:whatsapp-coreapp-deployment-78c4d987b8-l5qjj': { 'errors': [ { 'code': 1011, 'title': 'Service not ready', 'details': 'Wacore is not instantiated. Please check wacore log for details.' } ] }, '172.17.0.6:whatsapp-master-deployment-8598d7bf6b-56fvn': { 'errors': [ { 'code': 1011, 'title': 'Service not ready', 'details': 'Wacore is not instantiated. Please check wacore log for details.' } ] }, '172.17.0.7:whatsapp-coreapp-deployment-78c4d987b8-4cpz4': { 'errors': [ { 'code': 1011, 'title': 'Service not ready', 'details': 'Wacore is not instantiated. Please check wacore log for details.' } ] }, '172.17.0.8:whatsapp-master-deployment-8598d7bf6b-9r6lc': { 'gateway_status': 'unregistered', 'role': 'primary_master' } }, 'meta': { 'version': 'v2.23.4', 'api_status': 'stable' }
การตอบกลับจะแสดง gateway_status
เป็น unregistered
ในส่วน gateway_status
สำหรับคอนเทนเนอร์ Master หลัก เนื่องจากไคลเอ็นต์ WhatsApp Business API ยังไม่ได้รับการลงทะเบียน
คุณสามารถลงทะเบียนไคลเอ็นต์ WhatsApp Business API ของคุณโดยใช้การเรียก API ไปยังโหนด account
ดำเนินการตรวจสอบไคลเอ็นต์ WhatsApp Business API อีกครั้งหนึ่งโดยใช้การเรียก API ไปยังโหนด health
หลังจากลงทะเบียนเสร็จสิ้น และตรวจสอบให้แน่ใจว่าหนึ่งในคอนเทนเนอร์ Coreapp มี gateway_status
เป็น connected
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
'health': { '172.17.0.11:whatsapp-coreapp-deployment-78c4d987b8-l5qjj': { 'gateway_status': 'disconnected', 'role': 'coreapp' }, '172.17.0.6:whatsapp-master-deployment-8598d7bf6b-56fvn': { 'gateway_status': 'disconnected', 'role': 'secondary_master' }, '172.17.0.7:whatsapp-coreapp-deployment-78c4d987b8-4cpz4': { 'gateway_status': 'connected', 'role': 'coreapp' }, '172.17.0.8:whatsapp-master-deployment-8598d7bf6b-9r6lc': { 'gateway_status': 'disconnected', 'role': 'primary_master' } }, 'meta': { 'version': 'v2.23.4', 'api_status': 'stable' }
หมายเหตุ: ในโหมดความพร้อมใช้งานระดับสูง จะมีเพียง Coreapp เดียวเท่านั้น (ในตัวอย่างนี้คือ whatsapp-coreapp-deployment-78c4d987b8-4cpz4
) ที่จะเชื่อมต่อกับเซิร์ฟเวอร์ WhatsApp โดยโหนดอื่นๆ ทั้งหมด รวมถึง Master หลัก จะมี gateway_status
เป็น disconnected
หาก whatsapp-coreapp-deployment-78c4d987b8-4cpz4
ขัดข้อง whatsapp-coreapp-deployment-78c4d987b8-l5qjj
จะเข้ามาแทนที่และเชื่อมต่อกับเซิร์ฟเวอร์ WhatsApp เพื่อรักษาความพร้อมใช้งานระดับสูงเอาไว้
ตอนนี้ คุณได้ตั้งค่าไคลเอ็นต์ WhatsApp Business API ในโหมดความพร้อมใช้งานระดับสูงแล้ว ในโหมดนี้ จะมี Coreapp เดียวเท่านั้นที่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ WhatsApp เพื่อส่งข้อความในช่วงเวลาที่กำหนดได้ หากคุณต้องการส่งข้อความพร้อมๆ กันจากหลาย Coreapp เพื่อเพิ่มปริมาณข้อความ ให้ทำตามขั้นตอนในส่วนการตั้งค่าคลัสเตอร์การเชื่อมต่อหลายจุดที่มีความพร้อมใช้งานระดับสูงด้านล่างนี้
ใช้ตำแหน่งข้อมูลของชาร์ดเพื่อตั้งค่าชาร์ด 2 รายการ คุณจะเห็นการตอบกลับ HTTP ที่มีสถานะเป็น 201 Created
คุณสามารถดำเนินการตรวจสอบระบบกับไคลเอ็นต์ WhatsApp Business API โดยใช้การเรียก API ไปยังโหนด health
เพื่อตรวจสอบยืนยันว่าพ็อดทั้งหมดทำงานอย่างถูกต้อง
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
'health': { '172.17.0.11:whatsapp-coreapp-deployment-78c4d987b8-l5qjj': { 'gateway_status': 'connected', 'role': 'coreapp' }, '172.17.0.6:whatsapp-master-deployment-8598d7bf6b-56fvn': { 'gateway_status': 'disconnected', 'role': 'secondary_master' }, '172.17.0.7:whatsapp-coreapp-deployment-78c4d987b8-4cpz4': { 'gateway_status': 'connected', 'role': 'coreapp' }, '172.17.0.8:whatsapp-master-deployment-8598d7bf6b-9r6lc': { 'gateway_status': 'connected', 'role': 'primary_master' } }, 'meta': { 'version': 'v2.23.4', 'api_status': 'stable' }
หมายเหตุ: ในโหมดการเชื่อมต่อหลายจุดที่มี 2 ชาร์ด จะมี Coreapp 2 รายการ (ในตัวอย่างนี้คือ whatsapp-coreapp-deployment-78c4d987b8-l5qjj
และ whatsapp-coreapp-deployment-78c4d987b8-4cpz4
) ที่จะเชื่อมต่อเข้ากับเซิร์ฟเวอร์ WhatsApp ส่วน Master หลัก (ในตัวอย่างนี้คือ whatsapp-master-deployment-8598d7bf6b-9r6lc
) ก็จะเชื่อมต่อกับเซิร์ฟเวอร์ของ WhatsApp ด้วยเช่นกัน
ในตัวอย่างนี้ คุณมีคอนเทนเนอร์ Coreapp 2 รายการ และปริมาณข้อความถูกแบ่งออกให้กับทั้งสองคอนเทนเนอร์ อย่างไรก็ตาม หากมีคอนเทนเนอร์ Coreapp รายการใดรายการหนึ่งหยุดทำงาน การส่งข้อความของคุณครึ่งหนึ่งจะล้มเหลว หากต้องการรักษาความพร้อมใช้งานระดับสูงในการตั้งค่าการเชื่อมต่อหลายจุดใหม่นี้เอาไว้ คุณสามารถเริ่มการทำงานของ Coreapp ที่สามได้เพื่อรับมือกรณีที่มี Coreapp ล้มเหลวไป 1 รายการ ซึ่งจะคล้ายคลึงกับผังที่แสดงในบทนำการเชื่อมต่อหลายจุด
หากต้องการเริ่มต้นการทำงานของคอนเทนเนอร์ Coreapp ที่สาม ให้เปลี่ยนจำนวน replicas
เป็น 3
ในไฟล์ coreapp.yaml
ดังนี้
spec: replicas: 3
จากนั้น ให้ติดตั้งใช้งาน Coreapp ใหม่อีกครั้งโดยเรียกใช้คำสั่งต่อไปนี้
kubectl apply -f coreapp.yaml
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
horizontalpodautoscaler.autoscaling/whatsapp-coreapp-autoscaler unchanged service/whatsapp-coreapp-service unchanged deployment.apps/whatsapp-coreapp-deployment configured
ดำเนินการตรวจสอบระบบอีกครั้งเพื่อตรวจสอบยืนยันว่าโหนดทั้งหมดทำงานอย่างถูกต้องโดยใช้การเรียก API ไปยังโหนด health
เพื่อตรวจสอบยืนยันว่าพ็อดทั้งหมดทำงานอย่างถูกต้อง
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
'health': { '172.17.0.10:whatsapp-coreapp-deployment-78c4d987b8-hwqp6': { 'gateway_status': 'disconnected', 'role': 'coreapp' }, '172.17.0.11:whatsapp-coreapp-deployment-78c4d987b8-l5qjj': { 'gateway_status': 'connected', 'role': 'coreapp' }, '172.17.0.6:whatsapp-master-deployment-8598d7bf6b-56fvn': { 'gateway_status': 'disconnected', 'role': 'secondary_master' }, '172.17.0.7:whatsapp-coreapp-deployment-78c4d987b8-4cpz4': { 'gateway_status': 'connected', 'role': 'coreapp' }, '172.17.0.8:whatsapp-master-deployment-8598d7bf6b-9r6lc': { 'gateway_status': 'connected', 'role': 'primary_master' } }, 'meta': { 'version': 'v2.23.4', 'api_status': 'stable' }
ตอนนี้คอนเทนเนอร์ whatsapp-coreapp-deployment-78c4d987b8-hwqp6
ใหม่ทำหน้าที่เป็นคอนเทนเนอร์สำรอง และจะยังไม่เชื่อมต่อกับเซิร์ฟเวอร์ WhatsApp ในขณะนี้ ถ้า whatsapp-coreapp-deployment-78c4d987b8-l5qjj
หรือ whatsapp-coreapp-deployment-78c4d987b8-4cpz4 หยุดทำงาน
whatsapp-coreapp-deployment-78c4d987b8-hwqp6` จะเชื่อมต่อกับเซิร์ฟเวอร์ WhatsApp เพื่อรักษาจำนวนชาร์ดในภาพรวมให้เป็น 2 รายการ
ระบบจะมีช่วงเวลาหยุดทำงานในระหว่างกระบวนการอัพเกรด
ขอแนะนำเป็นอย่างยิ่งให้สำรองข้อมูลการตั้งค่าแอพพลิเคชั่นปัจจุบันของคุณก่อนอัพเกรด เพื่อให้มั่นใจว่าคุณจะกลับมาทำงานได้ตามปกติอย่างรวดเร็ว โปรดปฏิบัติตามเอกสารประกอบเกี่ยวกับการสำรองและกู้คืนข้อมูล
เราขอแนะนำให้ทำการอัพเกรดในช่วงเวลาที่มีปริมาณงานน้อยที่สุด
$VERSION
เป็นเวอร์ชั่นใหม่อัพเดตตัวแปรสภาพแวดล้อมการทำงาน $VERSION
ให้เป็นเวอร์ชั่นที่คุณต้องการอัพเกรด (เช่น 2.23.5
) ในส่วน containers
ของไฟล์ webapp.yaml
, master.yaml
และ coreapp.yaml
webapp.yaml
containers: - name: whatsapp-web image: docker.whatsapp.biz/web:v2.23.5
master.yaml
containers: - name: whatsapp-master image: docker.whatsapp.biz/coreapp:v2.23.5
coreapp.yaml
containers: - name: whatsapp-coreapp image: docker.whatsapp.biz/coreapp:v2.23.5
อัพเกรดคอนเทนเนอร์ Webapp, Master และ Coreapp และติดตามสถานะการเปิดตัว
Webapp
kubectl apply -f webapp.yaml
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
kubectl rollout status deployments/whatsapp-web-deployment
Master
kubectl apply -f master.yaml
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
kubectl rollout status deployments/whatsapp-master-deployment
Coreapp
kubectl apply -f coreapp.yaml
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
kubectl rollout status deployments/whatsapp-coreapp-deployment
ลบการติดตั้งใช้งานโดยใช้คำสั่งต่อไปนี้
kubectl delete -f webapp.yaml kubectl delete -f master.yaml kubectl delete -f coreapp.yaml kubectl delete -f mysql.yaml
ลบไดรฟ์ข้อมูลโดยใช้คำสั่งต่อไปนี้
kubectl delete -f volume.yaml
ลบข้อมูลลับโดยใช้คำสั่งต่อไปนี้
kubectl delete secrets/whatsapp-config
หากต้องการตรวจสอบว่าพ็อดทั้งหมดกำลังทำงานอยู่หรือไม่ ให้ใช้คำสั่งต่อไปนี้
kubectl get pods
เอาต์พุตที่ได้ควรมีลักษณะดังต่อไปนี้
NAME READY STATUS RESTARTS AGE mysql-deployment-5d4f898-xtkpj 1/1 Running 0 1h whatsapp-coreapp-deployment-78c4d987b8-4cpz4 1/1 Running 2 1h whatsapp-coreapp-deployment-78c4d987b8-hwqp6 1/1 Running 0 24m whatsapp-coreapp-deployment-78c4d987b8-l5qjj 1/1 Running 2 1h whatsapp-master-deployment-8598d7bf6b-56fvn 1/1 Running 9 1h whatsapp-master-deployment-8598d7bf6b-9r6lc 1/1 Running 8 1h whatsapp-web-deployment-cd4c5785c-f99n4 1/1 Running 0 50m whatsapp-web-deployment-cd4c5785c-s5phx 1/1 Running 0 50m
หากมีพ็อดใดไม่พร้อมทำงาน (หรือแสดงเป็น 0/1
ในคอลัมน์ READY
) คุณสามารถเรียกดูบันทึกข้อมูลของพ็อดดังกล่าวได้โดยใช้คำสั่ง kubectl logs
พร้อมระบุชื่อพอด
ตัวอย่าง:
kubectl logs whatsapp-coreapp-deployment-78c4d987b8-4cpz4 > whatsapp-coreapp-deployment-78c4d987b8-4cpz4.txt
คุณจะพบบันทึกข้อมูลได้ในไฟล์ whatsapp-coreapp-deployment-78c4d987b8-4cpz4.txt
ในไดเรกทอรีล่าสุด
หากต้องการรวบรวมบันทึกข้อมูลสำหรับบริการที่ติดตั้งใช้งานใดโดยเฉพาะเจาะจง เช่น Webapp ให้เรียกใช้คำสั่ง kubectl logs
พร้อมระบุชื่อบริการ
ตัวอย่าง:
kubectl logs deployments/whatsapp-web-deployment > whatsapp-web-deployment.txt
คุณจะพบบันทึกข้อมูลได้ในไฟล์ whatsapp-web-deployment.txt
ในไดเรกทอรีปัจจุบัน
ซอฟต์แวร์นี้ใช้โค้ดของ FFmpeg ซึ่งได้รับสิทธิ์ใช้งานภายใต้ LGPL เวอร์ชั่น 2.1 และคุณสามารถดาวน์โหลดซอร์สโค้ดได้ที่นี่