Pengaturan Produksi: Satu Instance

Dokumen ini menunjukkan cara menyiapkan satu instance klien API WhatsApp Business dalam produksi.

Jika Anda belum melakukannya, Anda direkomendasikan untuk menyiapkan satu instance klien API WhatsApp Business pada mesin developer mengikuti instruksi Pengaturan Developer: Satu Instance untuk menguji pengaturan Anda sebelum mengikuti dokumen ini untuk menyiapkan klien API WhatsApp Business dalam produksi.

Untuk menyelesaikan pengaturan awal Anda, periksa persyaratan, dan ikuti langkah-langkah ini:

  1. Buat direktori biz untuk skrip pengaturan
  2. Dapatkan file konfigurasi Klien API WhatsApp Business
  3. Atur variabel lingkungan WA_API_VERSION
  4. Atur variabel lingkungan database
  5. Siapkan volume media lokal
  6. Atur klien API WhatsApp Business
  7. Verifikasikan kontainer sudah berjalan
  8. Lakukan pemeriksaan kesehatan
  9. Daftarkan Klien API WhatsApp Business
  10. Lakukan pemeriksaan kesehatan kedua

Setelah Anda selesai menyiapkan instance, Anda bisa memilih untuk meningkatkannya. Untuk mencopot penginstalan klien, ikuti langkah-langkah ini.

Sebelum Memulai

Jika Anda telah menjalankan pengaturan developer dan ingin menggunakan kembali nomor telepon dalam produksi, lihat Panduan migrasi sebelum melanjutkan dengan sisa dokumen ini.

Konten dalam panduan ini didasarkan pada asumsi penginstalan baru yang menggunakan nomor telepon baru.

Anda akan memerlukan:

Diperlukan MySQL 5.7.xx atau PostgreSQL 13.x/12.x/11.x.

Kata sandi database Anda tidak boleh berisi karakter berikut: ?{}&~!()^=

Jika tidak mematuhi ini, pengaturan mungkin akan gagal.

Terdapat juga masalah kompatibilitas dengan MySQL 8 yang sudah diketahui. Harap hindari menggunakan yang terbaru untuk saat ini. Kami sedang aktif menggarap perbaikan.

Install Docker Desktop

To install Docker Desktop on your developer machine:

  1. Navigate to the Docker website.
  2. If you do not have an existing Docker account, create one by clicking on Sign Up.
  3. After you have created your account, you will be directed to the Docker download page.
  4. Download Docker Desktop based on your OS (This should be automatically detected and presented as the default option).

The remaining steps are based on macOS and should be very similar for Linux or Windows 10.

To install Docker using macOS:

  1. Install the package (docker.dmg for macOS).
  2. After extraction, Finder will pop-up and you will be presented with a dialog that instructs you to drag the Docker icon to Applications. Drag Docker icon to the Application folder in Finder.
  3. In Applications launch Docker and then click the Open button.
  4. You may be prompted to enter your password Docker needs priviledged/administrator access.
  5. Docker will present you with a tutorial, you can click Start to launch a tutorial or you can click Skip Tutorial to start using Docker.

Verify Docker Compose is installed

Docker Compose is a plugin that is bundled with Docker Desktop and should have installed automatically. For more information about using or Docker Compose, see Overview of Docker Compose. If for some reason Docker Compose was not installed, you can install it by following the instructions located at Install Docker Compose.

Pengaturan Awal Klien API WhatsApp Business

Langkah 1: Buat Direktori biz untuk Skrip Pengaturan

Jalankan kode berikut di lokasi pilihan Anda untuk klien API WhatsApp Business:

mkdir ~/biz; cd ~/biz;

Langkah 2: Dapatkan File Konfigurasi Klien API WhatsApp Business

Buat klona file konfigurasi prod-docker-compose.yml dan db.env dari direktori Penginstalanrepositori Github WhatsApp-Business-API-Setup-Scripts ke direktori ~/biz yang Anda buat di Langkah 1.

Langkah 3: Atur Variabel Lingkungan WA_API_VERSION

Variabel lingkungan WA_API_VERSION harus diatur ke versi saat ini menggunakan:

export WA_API_VERSION=current-whatsapp-version

Langkah 4: Atur Variabel Lingkungan Database

Ubah variabel lingkungan database dalam file db.env di bawah direktori ~/biz untuk mencerminkan konfigurasi MySQL/PostgreSQL Anda.

WA_DB_ENGINE=MYSQL | PGSQL
WA_DB_HOSTNAME=your-database-server
WA_DB_PORT=your-database-server-port
WA_DB_USERNAME=your-database-username
WA_DB_PASSWORD=your-database-password

Langkah 5: Siapkan Volume Media Lokal

Volume media lokal (whatsappMedia:/usr/local/wamedia secara default) ditentukan dalam file prod-docker-compose.yml digunakan untuk menyimpan file media. Secara default, volume dipasang ke direktori pada mesin Docker. Atau, Anda dapat memilih untuk memasang volume media ke direktori host. Untuk mengubah titik pasang volume media, ubah definisi volume di dalam bagian services dari whatsappMedia ke jalur direktori host yang Anda gunakan.

services:
  wacore:
    ...
    volumes:
      - /your-local-media-volume-path:/usr/local/wamedia
    ...          
  waweb:
    ...
    volumes:
      - /your-local-media-volume-path:/usr/local/wamedia
    ... 

Langkah 6: Mulailah Klien API WhatsApp Business

Untuk memulai klien API WhatsApp Business dengan 1 kontainer WebApp dan 1 kontainer CoreApp, jalankan:

docker-compose -f prod-docker-compose.yml up -d

Hasil output seharusnya terlihat seperti berikut:

Creating biz_wacore_1 ... done
Creating biz_waweb_1  ... done

Langkah 7: Verifikasikan bahwa Kontainer Aktif

Anda dapat memeriksa bahwa semua kontainer berstatus UP dengan menjalankan:

docker-compose -f prod-docker-compose.yml  ps

Hasil output seharusnya terlihat seperti berikut:

     Name                    Command               State                   Ports
-------------------------------------------------------------------------------------------------
biz_wacore_1   /opt/whatsapp/bin/wait_on_ ...   Up      6250/tcp, 6251/tcp, 6252/tcp, 6253/tcp
biz_waweb_1    /opt/whatsapp/bin/wait_on_ ...   Up      0.0.0.0:9090->443/tcp

Secara default, kontainer WebApp akan berjalan pada porta 9090.

Langkah 8: Lakukan Pemeriksaan Kesehatan

Anda dapat mengunduh dan mengonfigurasi Koleksi Postman kami untuk berinteraksi dengan API WhatsApp Business jika Anda tidak ingin menggunakan baris perintah.

Anda dapat melakukan pemeriksaan kesehatan pada klien API WhatsApp Business menggunakan panggilan API ke node health.

Hasil output seharusnya terlihat seperti berikut:

{
    "health": {
        "gateway_status": "unregistered"
    }
}

Tanggapan menunjukkan gateway_status dari unregistered sebagai gateway_status karena klien API WhatsApp Business belum terdaftar.

Langkah 9: Daftarkan Klien API WhatsApp Business

Anda dapat mendaftarkan klien API WhatsApp Business menggunakan panggilan API ke node account.

Langkah 10: Lakukan Pemeriksaan Kesehatan Kedua

Lakukan pemeriksaan kesehatan lain pada klien API WhatsApp Business menggunakan panggilan API ke node health setelah menyelesaikan pendaftaran.

Hasil output seharusnya terlihat seperti berikut:

{
    "health": {
        "gateway_status": "connected"
    }
}

gateway_statusconnected berarti kontainer CoreApp dapat terhubung ke server WhatsApp untuk memeriksa kontak dan mengirimkan pesan.

Anda direkomendasikan untuk menyiapkan pemantauan bagi klien API WhatsApp Business produksi Anda.

Meningkatkan Klien API WhatsApp Business

Akan ada waktu henti selama proses peningkatan.

Sangat direkomendasikan untuk mencadangkan pengaturan aplikasi Anda saat ini sebelum meningkatkannya untuk memastikan Anda dapat kembali aktif dengan cepat. Harap ikuti dokumentasi Pencadangan dan Pemulihan.

Selalu direkomendasikan untuk melakukan peningkatan selama waktu Anda yang paling tidak sibuk.

Langkah 1: Ubah Variabel Lingkungan WA_API_VERSION ke Versi Baru

Variabel lingkungan WA_API_VERSION harus diperbarui ke nomor versi terbaru menggunakan:

export WA_API_VERSION=new-whatsapp-version

Langkah 2: Mulai ulang Kontainer Docker

Mulai ulang kontainer Docker dengan menjalankan:

docker-compose -f prod-docker-compose.yml up -d

Untuk Pengguna Database MySQL yang Meningkatkan ke v2.23.x ke Atas

Sekarang Anda dapat menggunakan layanan peningkatan database yang memungkinkan Anda untuk meningkatkan database saat aplikasi Anda masih berjalan agar terhindar dari waktu henti.

Langkah 1: Unduh file konfigurasi

File dbupgrade-compose.yml memiliki kolom yang menandakan versi kontainer.

Contoh:

services:
  dbupgrade:
    image: docker.whatsapp.biz/coreapp:v${WA_API_VERSION:-2.21.3}

Langkah 2: Mulailah kontainer

Untuk meningkatkan penginstalan, mulailah kontainer dbupgrade-service dengan variabel lingkungan WA_API_VERSION yang diatur ke versi terbaru:

WA_API_VERSION=new-whatsapp-version docker-compose -f dbupgrade-compose.yml up -d

Catatan: Jika Anda menggunakan orkestrasi yang memulai ulang kontainer saat keluar, terlepas dari kode keluar, mulailah layanan dengan variabel lingkungan EXIT_ON_SUCCESS diatur ke FALSE agar tidak keluar dari kontainer ketika kode keluar adalah 0.

Langkah 3: Tunggu sampai peningkatan selesai

Jika peningkatan database berhasil, kontainer akan keluar dengan kode 0. Anda dapat menggunakan perintah Docker berikut untuk melacak status:

docker wait your-database-upgrade-container-name

Outputnya adalah kode keluar dari kontainer dbupgrade-service.

Langkah 4: Mulai ulang kontainer CoreApp dan Webapp

Mulai ulang kontainer CoreApp dan Webapp Docker dengan variabel lingkungan WA_API_VERSION yang diatur ke versi terbaru:

WA_API_VERSION=new-whatsapp-version docker-compose -f prod-docker-compose.yml up -d

Untuk Pengguna Klien API WhatsApp Business yang Meningkatkan ke Versi 2.29.3 ke Atas

Jika Anda meningkatkan dari v2.29.1, v2.29.2atau mengalami masalah selama peningkatan ke versi tersebut dan harus kembali ke versi sebelumnya demi stabilitas, kami merekomendasikan Anda untuk meningkatkan ke v2.29.3, lalu jalankan perintah berikut pada kontainer Docker Webapp:

chown -R root your-media-directory/incoming your-media-directory/outgoing your-media-directory/shared

Kecuali Anda telah mengubahnya, direktori media default adalah /usr/local/wamedia.

Catatan:

  • Karena penyelesaian perintah ini dapat memakan waktu berdasarkan ukuran volume media yang sudah ada sebelumnya, kami merekomendasikan untuk segera memulai perintah ini setelah Anda meningkatkan selama periode pemeliharaan.
  • Perintah ini hanya mengubah kepemilikan volume media di latar belakang (Tidak ada dampak/waktu untuk operasi media atau latensi/kinerja saat sedang berjalan).
  • Ini adalah jalur peningkatan hanya satu kali untuk memperbaiki masalah kompatibilitas dengan versi sebelumnya di v2.29.1 dan v2.29.2.

Menghapus instalan Klien API WhatsApp Business

Sangat disarankan mencadangkan pengaturan aplikasi Anda saat ini sebelum menghapus instalan. Harap ikuti dokumentasi Pencadangan dan Pemulihan.

Jika Anda perlu mereset lingkungan pengembangan Anda dengan menghapus semua kontainer, jalankan perintah berikut dari direktori yang berisi file prod-docker-compose.yml:

docker-compose -f prod-docker-compose.yml down

Hasil output seharusnya terlihat seperti berikut:

Stopping biz_waweb_1  ... done
Stopping biz_wacore_1 ... done
Removing biz_waweb_1  ... done
Removing biz_wacore_1 ... done

Selain kontainer, untuk menghilangkan semua volume yang ditentukan dalam file prod-docker-compose.yml, jalankan perintah down dengan parameter -v:

docker-compose -f prod-docker-compose.yml down -v

Pemecahan Masalah

Kami rekomendasikan penggunaan WADebug untuk pemecahan masalah yang lebih efektif. WADebug adalah fitur baris perintah untuk membantu menemukan potensi masalah mengenai pengaturan API WhatsApp Business, dan membuat permintaan bantuan dari dukungan WhatsApp lebih efektif.

Apabila WADebug tidak dapat digunakan atau jika terjadi kesalahan setiap fitur ini dijalankan, jalankan perintah berikut untuk mengumpulkan catatan dari semua kontainer:

docker-compose -f prod-docker-compose.yml logs > debug_output.txt

Untuk mengumpulkan catatan dari layanan spesifik, tambahkan nama layanan (waweb atau wacore) ke perintah docker-compose logs:

docker-compose -f prod-docker-compose.yml logs waweb > debug_output.txt

Anda dapat menemukan catatan dalam file debug_output.txt di direktori saat ini.


Perangkat lunak ini menggunakan kode FFmpeg yang dilisensikan di bawah LGPLv2.1 dan sumbernya bisa diunduh di sini.