feat(gowa): compose GOWA + UI untuk podman/docker
Some checks failed
CI / test (push) Has been cancelled
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:
17
.env.gowa.example
Normal file
17
.env.gowa.example
Normal 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
|
||||
@@ -2,6 +2,11 @@
|
||||
|
||||
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"
|
||||
|
||||
### Diperbaiki
|
||||
|
||||
15
README.md
15
README.md
@@ -11,7 +11,7 @@
|
||||
|
||||
<p align="center">
|
||||
<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/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>
|
||||
@@ -106,6 +106,19 @@ docker compose up -d
|
||||
Buka **http://localhost:3001** — login awal `admin` / `demo-isp123` (**segera ganti password**).
|
||||
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)
|
||||
|
||||
```bash
|
||||
|
||||
54
docker-compose.gowa.yml
Normal file
54
docker-compose.gowa.yml
Normal 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:
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"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)",
|
||||
"main": "app-customer.js",
|
||||
"scripts": {
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.5.6
|
||||
0.5.7
|
||||
Reference in New Issue
Block a user