https://github.com/onflux-tech/whatsmiau-manager
Self-hosted management dashboard for WhatsMiau WhatsApp API
https://github.com/onflux-tech/whatsmiau-manager
dashboard docker go manager monitoring multi-arch pocketbase react self-hosted typescript whatsapp whatsapp-api whatsmiau
Last synced: 3 months ago
JSON representation
Self-hosted management dashboard for WhatsMiau WhatsApp API
- Host: GitHub
- URL: https://github.com/onflux-tech/whatsmiau-manager
- Owner: onflux-tech
- License: mit
- Created: 2026-04-10T10:30:13.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-10T11:13:04.000Z (3 months ago)
- Last Synced: 2026-04-10T13:02:35.133Z (3 months ago)
- Topics: dashboard, docker, go, manager, monitoring, multi-arch, pocketbase, react, self-hosted, typescript, whatsapp, whatsapp-api, whatsmiau
- Language: TypeScript
- Homepage:
- Size: 168 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WhatsMiau Manager
[](https://go.dev)
[](https://react.dev)
[](https://pocketbase.io)
[](https://github.com/onflux-tech/whatsmiau-manager/pkgs/container/whatsmiau-manager)
[](LICENSE)
[](https://github.com/onflux-tech/whatsmiau-manager/pkgs/container/whatsmiau-manager)
Self-hosted management dashboard for WhatsMiau WhatsApp API instances. Single binary, embedded SPA, zero external dependencies beyond your WhatsMiau API.
---
## Features
- **Multi-workspace** -- manage multiple WhatsMiau API servers from a single dashboard
- **Instance management** -- create, connect (QR/phone pairing), disconnect, and delete WhatsApp instances
- **Webhook configuration** -- configure per-instance webhook URLs, event filtering, and base64 media
- **Proxy settings** -- per-instance SOCKS5/HTTP/HTTPS proxy configuration
- **Health monitoring** -- automatic health checks with latency tracking and connection status
- **API Docs** -- built-in interactive API reference with playground, code generation, and request history
- **Adaptive polling** -- smart polling that adjusts frequency based on user activity
- **Real-time updates** -- PocketBase SSE for instant UI updates on data changes
- **Multi-arch Docker** -- pre-built images for `linux/amd64` and `linux/arm64`
- **Single binary** -- Go backend with embedded React SPA, no separate web server needed
## Quick Start
```yaml
# docker-compose.yml
services:
manager:
image: ghcr.io/onflux-tech/whatsmiau-manager:latest
ports:
- "8090:8090"
volumes:
- manager-data:/app/pb_data
restart: unless-stopped
volumes:
manager-data:
```
```bash
docker compose up -d
```
Open `http://localhost:8090` and create your admin account on first access.
### Add a Workspace
1. Click **Novo workspace**
2. Enter a name, the WhatsMiau API URL (e.g., `http://whatsmiau:8080`), and the API key
3. Your instances will appear automatically
## Configuration
| Environment Variable | Default | Description |
|---|---|---|
| `ENV` | - | Set to `dev` for development mode with auto-migrations |
PocketBase CLI flags are passed directly:
```bash
./manager serve --http=0.0.0.0:8090 --dir=/custom/data/path
```
## Development
**Requirements:** Go 1.25+, Node.js 22+, npm
```bash
cd manager
# Backend
ENV=dev go run main.go serve --http=0.0.0.0:8090
# Frontend (separate terminal)
cd site
npm install
npm run dev
```
The Vite dev server proxies `/api` and `/_` to `localhost:8090`.
### Build from Source
```bash
cd manager/site && npm ci && npm run build && cd ..
CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o manager main.go
./manager serve --http=0.0.0.0:8090
```
### Docker Build
```bash
cd manager
docker buildx build --platform linux/amd64,linux/arm64 -t whatsmiau-manager .
```
## Architecture
```
manager/
main.go # PocketBase bootstrap + version injection
hub/
hub.go # Lifecycle hooks, event wiring
routes.go # REST API (setup, proxy, polling, version)
proxy.go # Reverse proxy to WhatsMiau API
health.go # Health checks and instance snapshot sync
poller.go # Adaptive polling engine
spa.go # Embedded SPA serving
migrations/ # PocketBase schema migrations
site/ # React SPA (Vite + TypeScript)
src/
components/ # UI components (workspace, instances, command)
features/ # Feature modules (auth, docs)
hooks/ # Shared React hooks
lib/ # Utilities, types, PocketBase client
stores/ # Zustand state stores
```
## Releases
Docker images are published to GHCR on every git tag (`v*`):
```bash
docker pull ghcr.io/onflux-tech/whatsmiau-manager:latest
docker pull ghcr.io/onflux-tech/whatsmiau-manager:0.1.0
```
---
## PT-BR
### Funcionalidades
- **Multi-workspace** -- gerencie multiplos servidores WhatsMiau API a partir de um unico painel
- **Gerenciamento de instancias** -- crie, conecte (QR/pareamento por telefone), desconecte e exclua instancias WhatsApp
- **Configuracao de webhooks** -- configure URLs de webhook por instancia, filtragem de eventos e midia em base64
- **Configuracao de proxy** -- proxy SOCKS5/HTTP/HTTPS por instancia
- **Monitoramento de saude** -- health checks automaticos com rastreamento de latencia e status de conexao
- **API Docs** -- referencia interativa com playground, geracao de codigo e historico de requests
- **Polling adaptativo** -- polling inteligente que ajusta a frequencia conforme a atividade do usuario
- **Atualizacoes em tempo real** -- SSE do PocketBase para atualizacoes instantaneas na UI
- **Docker multi-arch** -- imagens pre-compiladas para `linux/amd64` e `linux/arm64`
- **Binario unico** -- backend Go com SPA React embutido, sem necessidade de servidor web separado
### Inicio Rapido
```yaml
# docker-compose.yml
services:
manager:
image: ghcr.io/onflux-tech/whatsmiau-manager:latest
ports:
- "8090:8090"
volumes:
- manager-data:/app/pb_data
restart: unless-stopped
volumes:
manager-data:
```
```bash
docker compose up -d
```
Acesse `http://localhost:8090` e crie sua conta de administrador no primeiro acesso.
### Adicionar um Workspace
1. Clique em **Novo workspace**
2. Insira um nome, a URL da API WhatsMiau (ex: `http://whatsmiau:8080`) e a API key
3. Suas instancias aparecerao automaticamente
### Desenvolvimento
**Requisitos:** Go 1.25+, Node.js 22+, npm
```bash
cd manager
# Backend
ENV=dev go run main.go serve --http=0.0.0.0:8090
# Frontend (terminal separado)
cd site
npm install
npm run dev
```
### Build a partir do Codigo
```bash
cd manager/site && npm ci && npm run build && cd ..
CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o manager main.go
./manager serve --http=0.0.0.0:8090
```
---
## License
[MIT](LICENSE)