wa-bot-notif

Layanan notifikasi WhatsApp — Go + whatsmeow.

auto-imported
Lihat Source

Ikhtisar

Layanan notifikasi WhatsApp yang dibangun dengan Go dan whatsmeow. Menyediakan HTTP API ringkas untuk mengirim pesan, memeriksa kontak, dan menjalankan health check.

API

MethodPathAuthDeskripsi
POST/sendBearerMengirim pesan WhatsApp
GET/contactsBearerDaftar kontak yang tersinkronisasi
GET/messagesBearerCache pesan terbaru (runtime memory)
GET/healthzSelalu mengembalikan 200 OK
GET/readyz200 saat WA terhubung, 503 jika tidak

POST /send

Alur permintaan POST /send dari klien ke WhatsApp melalui layanan

Request body:

{ "message": "hello", "userId": "628xxx", "groupId": "[email protected]" }

Prioritas penentuan target: userIdgroupId → fallback ke env GROUP_JID.

Response:

{ "success": true, "sent_to": "<jid>", "timestamp": "<RFC3339>" }

Konfigurasi

VariabelDefaultWajibDeskripsi
AUTH_TOKENBearer token untuk seluruh endpoint berautentikasi
PORT5000Port listen HTTP (1–65535)
GROUP_JIDTarget pengiriman default saat request tidak menyertakan userId/groupId
AUTH_DB_DSNfile:auth.db?_foreign_keys=onDSN SQLite untuk sesi WhatsApp
LOGS_DB_DSNfile:logs.db?_foreign_keys=onDSN SQLite untuk audit log
LOG_LEVELinfoLevel Zerolog: trace, debug, info, warn, error

Salin .env.example menjadi .env, lalu isi AUTH_TOKEN dan GROUP_JID sebelum menjalankan untuk pertama kali.

Menjalankan Secara Lokal

Prasyarat

  • Go 1.25+
  • CGO toolchain
  • SQLite dev headers
    • macOS: Xcode Command Line Tools
    • Debian/Ubuntu: build-essential libsqlite3-dev

Menjalankan layanan

GOTOOLCHAIN=auto go run ./cmd/api

Pemeriksaan saat pengembangan

GOTOOLCHAIN=auto go test ./...
GOTOOLCHAIN=auto go vet ./...
GOTOOLCHAIN=auto gofmt -l .

Docker

cp .env.example .env
# isi AUTH_TOKEN

docker compose -f deploy/docker-compose.yml up --build -d
docker compose -f deploy/docker-compose.yml logs -f api

File SQLite dipersistensikan melalui Docker volume wa_bot_notif_data.

Deployment shared-network

Pada deployment shared-network, layanan dapat diakses di http://wa-bot-notif-api:5000 melalui network homelab_integration:

docker network create homelab_integration

Selanjutnya, atur INTEGRATION_NETWORK=homelab_integration di .env.

Struktur Proyek

Struktur komponen layanan wa-bot-notif dan dependensinya

.
├── cmd/api/          — entry point
├── internal/
│   ├── config/       — env config loading + validation
│   ├── httpapi/      — HTTP handlers
│   ├── storage/      — SQLite audit log store
│   └── wa/           — WhatsApp connection manager
├── deploy/           — Docker Compose
├── docs/ai/          — AI agent guidance and planning docs
├── Dockerfile
└── go.mod

Bacaan Lebih Lanjut

Dokumentasi AI

  • AGENTS.md — entrypoint agent
  • docs/ai/README.md — indeks lengkap dokumentasi AI

Deployment

  • docs/deploy.md — runbook deployment lengkap (lokal, Docker, homelab, WireGuard)