feat(gowa): compose GOWA + UI untuk podman/docker
Some checks failed
CI / test (push) Has been cancelled

- docker-compose.gowa.yml (image v9.8.0, volume storages/statics, webhook + basic auth)
- .env.gowa.example
- README: cara jalankan + setting OPEN-ISP
- versi 0.5.7
This commit is contained in:
oxpoe
2026-11-05 14:18:36 +07:00
parent 7bb4ca1066
commit 19db67138b
6 changed files with 92 additions and 3 deletions

17
.env.gowa.example Normal file
View File

@@ -0,0 +1,17 @@
# Salin ke .env.gowa lalu isi nilainya. File .env.gowa tidak di-commit.
#
# Login dashboard GOWA (Basic Auth): user:password
GOWA_BASIC_AUTH=admin:ganti-password-kuat
# Port dan interface dashboard/API GOWA
GOWA_PORT=3000
GOWA_BIND=0.0.0.0
# URL webhook OPEN-ISP dari dalam container.
# App di host yang sama : http://host.containers.internal:3001/api/webhook/gowa
# App di compose network : http://open-isp:3001/api/webhook/gowa
GOWA_WEBHOOK_URL=http://host.containers.internal:3001/api/webhook/gowa
# Samakan dengan setting gowa_webhook_secret di OPEN-ISP.
# Buat dengan: openssl rand -hex 32
GOWA_WEBHOOK_SECRET=ganti-dengan-hasil-openssl-rand-hex-32

View File

@@ -2,6 +2,11 @@
Format mengikuti [Keep a Changelog](https://keepachangelog.com/) dan [Semantic Versioning](https://semver.org/). Format mengikuti [Keep a Changelog](https://keepachangelog.com/) dan [Semantic Versioning](https://semver.org/).
## [0.5.7] — 2026-11-05 — "gowa-podman"
### Ditambahkan
- `docker-compose.gowa.yml` + `.env.gowa.example`: menjalankan **GOWA** (WhatsApp gateway + dashboard/UI) dengan Docker atau Podman Compose, termasuk webhook ke OPEN-ISP dan Basic Auth.
## [0.5.6] — 2026-11-05 — "qris-hangus" ## [0.5.6] — 2026-11-05 — "qris-hangus"
### Diperbaiki ### Diperbaiki

View File

@@ -11,7 +11,7 @@
<p align="center"> <p align="center">
<img src="https://img.shields.io/badge/lisensi-ISC-ADFF2F" alt="Lisensi: ISC"> <img src="https://img.shields.io/badge/lisensi-ISC-ADFF2F" alt="Lisensi: ISC">
<img src="https://img.shields.io/badge/versi-0.5.6_qris--hangus-ADFF2F" alt="Versi 0.5.6 (qris-hangus)"> <img src="https://img.shields.io/badge/versi-0.5.7_gowa--podman-ADFF2F" alt="Versi 0.5.7 (gowa-podman)">
<img src="https://img.shields.io/badge/Node.js-%E2%89%A520-339933" alt="Node.js >= 20"> <img src="https://img.shields.io/badge/Node.js-%E2%89%A520-339933" alt="Node.js >= 20">
<img src="https://img.shields.io/badge/docker-ready-2496ED?logo=docker&logoColor=white" alt="Docker"> <img src="https://img.shields.io/badge/docker-ready-2496ED?logo=docker&logoColor=white" alt="Docker">
<a href="https://demo-openisp.oxpoe.xyz"><img src="https://img.shields.io/badge/demo-live-ADFF2F?logo=googlechrome&logoColor=black" alt="Demo"></a> <a href="https://demo-openisp.oxpoe.xyz"><img src="https://img.shields.io/badge/demo-live-ADFF2F?logo=googlechrome&logoColor=black" alt="Demo"></a>
@@ -106,6 +106,19 @@ docker compose up -d
Buka **http://localhost:3001** — login awal `admin` / `demo-isp123` (**segera ganti password**). Buka **http://localhost:3001** — login awal `admin` / `demo-isp123` (**segera ganti password**).
Data tersimpan di volume `docker-data/` (settings, database, logs, uploads, sesi WhatsApp). Data tersimpan di volume `docker-data/` (settings, database, logs, uploads, sesi WhatsApp).
### WhatsApp gateway GOWA + UI (Podman / Docker Compose)
GOWA dijalankan sebagai container terpisah, lengkap dengan dashboard/scan QR bawaan:
```bash
cp .env.gowa.example .env.gowa # isi GOWA_BASIC_AUTH + GOWA_WEBHOOK_SECRET
podman compose --env-file .env.gowa -f docker-compose.gowa.yml up -d
```
Buka dashboard di **http://<ip-host>:3000** (login Basic Auth), lalu scan QR.
Di OPEN-ISP → **Admin → WhatsApp**: pilih gateway **GOWA**, isi base URL `http://127.0.0.1:3000`
(app di host yang sama), username/password, dan **webhook secret** yang sama dengan `.env.gowa`.
### Manual (Node.js ≥ 20, disarankan 22 LTS) ### Manual (Node.js ≥ 20, disarankan 22 LTS)
```bash ```bash

54
docker-compose.gowa.yml Normal file
View File

@@ -0,0 +1,54 @@
# ─────────────────────────────────────────────────────────────────────────────
# GOWA — WhatsApp gateway + dashboard (UI) untuk OPEN-ISP
#
# Kompatibel dengan docker compose maupun podman compose.
#
# 1. Siapkan kredensial:
# cp .env.gowa.example .env.gowa
# # isi GOWA_BASIC_AUTH dan GOWA_WEBHOOK_SECRET (openssl rand -hex 32)
#
# 2. Jalankan:
# podman compose --env-file .env.gowa -f docker-compose.gowa.yml up -d
# # atau: docker compose --env-file .env.gowa -f docker-compose.gowa.yml up -d
#
# 3. Buka dashboard: http://<ip-host>:3000 (login Basic Auth di atas)
# Scan QR di sana, atau dari OPEN-ISP → WhatsApp.
#
# 4. Di OPEN-ISP (Admin → WhatsApp → GOWA):
# base URL : http://127.0.0.1:3000 (app di host yang sama)
# username/pass : sesuai GOWA_BASIC_AUTH
# webhook secret: sama dengan GOWA_WEBHOOK_SECRET
# gateway : GOWA
#
# Catatan:
# - UI (gowa-ui) diunduh otomatis oleh GOWA saat start; butuh internet.
# Server tanpa internet: set APP_UI_AUTO_UPDATE=false lalu taruh
# gowa-ui.html di volume gowa_storages (folder /app/storages/ui).
# - host.containers.internal = IP host dari dalam container (Podman/Docker).
# Bila tidak resolve, ganti GOWA_WEBHOOK_URL dengan IP LAN host,
# mis. http://10.44.33.51:3001/api/webhook/gowa
# ─────────────────────────────────────────────────────────────────────────────
services:
gowa:
image: aldinokemal2104/go-whatsapp-web-multidevice:v9.8.0
container_name: gowa
restart: unless-stopped
ports:
- "${GOWA_BIND:-0.0.0.0}:${GOWA_PORT:-3000}:3000"
volumes:
- gowa_storages:/app/storages
- gowa_statics:/app/statics
environment:
APP_PORT: "3000"
APP_OS: "OPEN-ISP"
APP_BASIC_AUTH: "${GOWA_BASIC_AUTH:?isi GOWA_BASIC_AUTH=user:password}"
APP_UI_ENABLED: "${GOWA_UI_ENABLED:-true}"
APP_UI_AUTO_UPDATE: "${GOWA_UI_AUTO_UPDATE:-true}"
WHATSAPP_ACCOUNT_VALIDATION: "false"
WHATSAPP_WEBHOOK: "${GOWA_WEBHOOK_URL:?isi GOWA_WEBHOOK_URL}"
WHATSAPP_WEBHOOK_SECRET: "${GOWA_WEBHOOK_SECRET:?isi GOWA_WEBHOOK_SECRET}"
WHATSAPP_WEBHOOK_EVENTS: "message"
volumes:
gowa_storages:
gowa_statics:

View File

@@ -1,6 +1,6 @@
{ {
"name": "open-isp", "name": "open-isp",
"version": "0.5.6", "version": "0.5.7",
"description": "OPEN-ISP \u2014 sistem billing & manajemen ISP open-source (PWA pelanggan, multi-OLT, RADIUS, WhatsApp, QRIS)", "description": "OPEN-ISP \u2014 sistem billing & manajemen ISP open-source (PWA pelanggan, multi-OLT, RADIUS, WhatsApp, QRIS)",
"main": "app-customer.js", "main": "app-customer.js",
"scripts": { "scripts": {

View File

@@ -1 +1 @@
0.5.6 0.5.7