Files
wehub-resource-sync 4ce4204b6c
CI / Lint (push) Failing after 2s
CI / Build (push) Has been skipped
SDK CI / PHP SDK (push) Failing after 1s
Split PHP SDK / PHP SDK tests (push) Failing after 1s
CI / Test (push) Failing after 1s
CI / Dashboard (push) Failing after 0s
SDK CI / JavaScript SDK (push) Failing after 0s
SDK CI / Python SDK (push) Failing after 2s
SDK CI / Java SDK (push) Failing after 1s
Split PHP SDK / Mirror sdk/php -> rmyndharis/openwa-php (push) Has been skipped
CI / Test (PostgreSQL migrations) (push) Failing after 7m47s
CI / Docker Build (push) Has been skipped
chore: import upstream snapshot with attribution
2026-07-13 12:24:08 +08:00
..

OpenWA Dashboard

OpenWA Logo

Modern web dashboard for managing OpenWA WhatsApp API Gateway sessions, webhooks, and infrastructure.

Features

  • Session Management - Create, monitor, and control WhatsApp sessions
  • QR Code Authentication - Real-time QR code display for device pairing
  • Webhook Configuration - Configure and test webhook endpoints
  • API Key Management - Generate and manage API keys
  • Infrastructure Monitoring - View system health and storage status
  • Real-time Updates - Live session status via WebSocket

🛠️ Tech Stack

Technology Purpose
React 19 UI Framework
TypeScript Type Safety
Vite 7 Build Tool
React Router 7 Client-side Routing
TanStack Query Server State Management
TanStack Table Data Tables
Socket.IO Client Real-time Communication
Lucide React Icons

🚀 Getting Started

Prerequisites

  • Node.js 20+
  • npm or yarn

Development

# Install dependencies
npm install

# Start development server
npm run dev

Dashboard will be available at http://localhost:2886 (Vite dev server with hot reload; it proxies /api + /socket.io to the NestJS API on :2785).

In production the build (npm run builddist/) is served by the NestJS API itself on the same port via @nestjs/serve-static, so there is no separate dashboard container.

Production Build

# Build for production
npm run build

# Preview production build
npm run preview

📁 Project Structure

dashboard/
├── src/
│   ├── components/     # Reusable UI components
│   ├── pages/          # Page components
│   ├── hooks/          # Custom React hooks
│   ├── services/       # API service layer
│   ├── types/          # TypeScript definitions
│   ├── utils/          # Utility functions
│   ├── App.tsx         # Root component
│   ├── App.css         # Global styles
│   └── main.tsx        # Entry point
├── public/             # Static assets
├── index.html          # HTML template
└── vite.config.ts      # Vite configuration

🔗 API Connection

By default the dashboard calls the API on the same origin it is served from (the single-container setup), so no configuration is needed.

For a split-origin deployment (dashboard hosted separately from the API), set the API origin at build time — the /api prefix is appended automatically:

VITE_API_URL=http://localhost:2785
# real-time events (WebSocket) origin; defaults to the page origin
VITE_WS_URL=http://localhost:2785

📄 License

MIT License - Part of the OpenWA project.