Real-time uptime monitoring for developers and teams.
Know the instant your sites go down β before your users do.
Live Demo Β· Documentation Β· Report Bug Β· Request Feature
![]() Dashboard |
![]() Monitor Detail |
![]() Admin Panel |
![]() Mobile View |
wolfXmonitor is a full-stack SaaS uptime monitoring platform that pings your websites and APIs every minute and alerts you instantly β by email, Telegram, and WhatsApp β the moment they go down. Built with a dark green aesthetic, it includes multi-user support, Free and Pro subscription tiers via Paystack, Brevo email alerts, a public status page, and a full admin control panel.
Over 100+ wolves monitoring endpoints from 20+ countries worldwide.
- 1-minute ping intervals β checks every URL on your list every 60 seconds
- Response time tracking β records latency on every ping for trend analysis
- Uptime percentage β rolling 30-day uptime % shown per monitor
- Incident log β full history of every outage with duration and timestamps
- Public status page β shareable
/statusURL showing live green/red health
- Email alerts via Brevo β instant notification when a site goes down or recovers
- Telegram alerts β real-time incident messages via @wolfXmonitor_bot
- WhatsApp alerts β incident notifications via Twilio WhatsApp API
- Discord alerts β rich color-coded embeds via Discord webhook (no bot invite needed)
- Multi-channel delivery β email + Telegram + WhatsApp + Discord fire simultaneously on every incident
- Alert deduplication β one alert per incident, not one per ping
- Test message button β users can verify each channel connection instantly
- Users connect Telegram by pasting their Chat ID in the Integrations & API page
- Users connect WhatsApp by entering their phone number (international format)
- Users connect Discord by pasting a webhook URL from any channel they own
- Admin configures the Telegram bot token and Twilio credentials once in the Admin Panel
- All channel settings are per-user β each user controls their own alert destinations
- Full docs at monitor.xwolf.space/docs
- Free plan β up to N monitors (admin-configurable)
- Pro plan β unlimited monitors, via Paystack inline checkout
- M-Pesa support β Kenyan users see an M-Pesa / Card picker automatically
- Currency config β admin sets billing currency (default KES)
- Paystack webhook verification β server-side plan activation on payment
- User management β view all users, change plans, delete accounts
- Monitor oversight β see every monitor across all users
- Billing settings β Paystack keys, currency, free plan limits
- Email settings β Brevo API key, sender name, and address
- Chat notifications β Telegram bot token + Twilio WhatsApp credentials
- Footer & social links β edit footer content without code
- Country stats β see which countries your users are from
- Full docs site at monitor.xwolf.space/docs β accessible without logging in
- Covers getting started, monitors, all alert channels, plans, status page, admin setup, and API reference
- Sticky table of contents, mobile-friendly, matches the dark green theme
- Dark green-tinted theme (
hsl(130,12%,4%)base) throughout - Barlow Condensed display font + Space Mono monospace
- Fully responsive β works on mobile, tablet, and desktop
- Animated user counter on landing page (scroll-triggered, ease-out)
- Overlapping country flag stack with live "100+ users Β· 20+ countries" social proof
| Layer | Technology |
|---|---|
| Frontend | React 19, Vite, TailwindCSS v4, Wouter, TanStack Query |
| Backend | Node.js 22, Express, Pino logger, Zod validation |
| Database | PostgreSQL 17, Drizzle ORM |
| Auth | Session-based (express-session + connect-pg-simple) |
| Payments | Paystack Inline JS (v1) |
| Brevo (Sendinblue) Transactional API | |
| Telegram | Telegram Bot API (sendMessage) |
| Twilio WhatsApp API | |
| Monorepo | pnpm workspaces |
| Deployment | Nginx reverse proxy + PM2 process manager |
wolfxmonitor/
βββ artifacts/
β βββ api-server/ # Express REST API
β β βββ src/
β β βββ routes/ # auth, monitors, payments, admin, alerts
β β βββ lib/ # mailer, notifier (Telegram/WhatsApp), scheduler
β βββ uptime-monitor/ # React + Vite frontend
β βββ src/
β βββ pages/ # landing, dashboard, monitoring, upgrade, admin, settings
β βββ components/ # layout, footer, ui primitives
β βββ hooks/ # use-auth, api client hooks
βββ lib/
β βββ db/ # Drizzle schema, migrations, DB client
β βββ api-client-react/ # Generated React Query hooks from OpenAPI spec
βββ scripts/ # Shared utility scripts
βββ pnpm-workspace.yaml
βββ README.md
- Node.js 18+
- pnpm 9+
- PostgreSQL 14+
# Clone the repository
git clone https://github.com/WOLFTECH-254/wolfXmonitor.git
cd wolfxmonitor
# Install all workspace dependencies
pnpm install
# Set up environment variables
cp .env.example .env
# Edit .env with your DATABASE_URL and SESSION_SECRET
# Push the database schema
psql "$DATABASE_URL" < lib/db/migrations/initial.sql
# Start the API server (port 3001)
pnpm --filter @workspace/api-server run dev
# Start the frontend (port 5173)
pnpm --filter @workspace/uptime-monitor run dev| Variable | Description | Required |
|---|---|---|
DATABASE_URL |
PostgreSQL connection string | β |
SESSION_SECRET |
Secret for signing sessions | β |
BREVO_API_KEY |
Brevo transactional email API key | For email alerts |
TELEGRAM_BOT_TOKEN |
Telegram bot token from @BotFather | For Telegram alerts |
TWILIO_ACCOUNT_SID |
Twilio Account SID | For WhatsApp alerts |
TWILIO_AUTH_TOKEN |
Twilio Auth Token | For WhatsApp alerts |
TWILIO_WHATSAPP_FROM |
Twilio WhatsApp-enabled number | For WhatsApp alerts |
Paystack keys, Brevo settings, Telegram token, and Twilio credentials are stored in the database via the Admin Panel β environment variables are optional fallbacks.
- Register the first account β it automatically becomes the admin.
- Navigate to
/admin - Under Payments, enter your Paystack public and secret keys and set the billing currency.
- Under Email, enter your Brevo API key, sender name, and verified sender email.
- Under Settings β Chat Notifications, enter your Telegram bot token and/or Twilio credentials.
- Users then go to Integrations & API in the sidebar to connect their own Telegram Chat ID, WhatsApp number, or Discord webhook URL.
- Message @BotFather on Telegram β
/newbotβ copy the token - Paste it in Admin β Settings β Chat Notifications β Telegram Bot Token
- Users message @userinfobot to get their Chat ID
- Users start your bot (
/start), then paste their Chat ID in Integrations & API
No bot token or admin config needed β Discord uses per-user webhooks:
- User opens Discord β goes to any channel they own β Edit Channel β Integrations β Webhooks β New Webhook
- Names it
wolfXmonitor, clicks Copy Webhook URL - Pastes the URL in Integrations & API β Discord, clicks Save
- Clicks Send test message β a green embed appears in the channel instantly
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/auth/register |
Register a new user |
POST |
/api/auth/login |
Log in |
GET |
/api/auth/me |
Current session user |
GET |
/api/monitors |
List user's monitors |
POST |
/api/monitors |
Create a monitor |
DELETE |
/api/monitors/:id |
Delete a monitor |
POST |
/api/monitors/:id/ping |
Manually trigger a ping |
GET |
/api/dashboard/summary |
Uptime stats summary |
GET |
/api/me/channels |
Get user's Telegram, WhatsApp & Discord settings |
PUT |
/api/me/channels |
Save Telegram Chat ID, WhatsApp number, or Discord webhook URL |
POST |
/api/me/channels/test |
Send a test message to Telegram, WhatsApp, or Discord |
GET |
/api/status |
Public status page data |
GET |
/api/payments/config |
Paystack config + user country |
POST |
/api/payments/verify |
Verify Paystack payment & activate Pro |
GET |
/api/stats/countries |
Public user country distribution |
# On your VPS
git clone https://github.com/WOLFTECH-254/wolfXmonitor.git /var/www/wolfxmonitor
cd /var/www/wolfxmonitor
pnpm install
pnpm --filter @workspace/uptime-monitor run build
# Create ecosystem.config.js for PM2
# Start API server
pm2 start ecosystem.config.js --env production
pm2 save
# Configure Nginx reverse proxy
# β Frontend static files served from artifacts/uptime-monitor/dist
# β /api/* proxied to API server portserver {
listen 80;
server_name yourdomain.com;
root /var/www/wolfxmonitor/artifacts/uptime-monitor/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_cache_bypass $http_upgrade;
}
}- Telegram alerts β real-time bot messages on site down/recovery
- WhatsApp alerts β via Twilio WhatsApp API
- Discord alerts β rich color-coded embeds via webhook (no bot needed)
- Slack webhook alerts
- Custom ping intervals (5 min, 15 min, 30 min)
- Multi-region pings (US, EU, Africa)
- SSL certificate expiry monitoring
- API key authentication for programmatic access
- Team accounts with multiple members
Pull requests are welcome. For major changes, please open an issue first to discuss what you'd like to change.
# Fork and clone
git checkout -b feature/your-feature
git commit -m "feat: your feature"
git push origin feature/your-feature
# Open a pull requestMIT Β© WOLF TECH Β· Silent Wolf
Powered by WOLF TECH Β· Silent Wolf
Built in Nairobi, Kenya π°πͺ β watched from 20+ countries worldwide.



