Skip to content

WOLFTECH-254/wolfXmonitor

Repository files navigation

wolfXmonitor

wolfXmonitor

Real-time uptime monitoring for developers and teams.
Know the instant your sites go down β€” before your users do.

Node.js TypeScript React PostgreSQL Telegram License: MIT Made in Kenya

Live Demo Β· Documentation Β· Report Bug Β· Request Feature


Dashboard
Dashboard
Monitor Detail
Monitor Detail
Admin Panel
Admin Panel
Mobile View
Mobile View

What is wolfXmonitor?

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.


Features

Core Monitoring

  • 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 /status URL showing live green/red health

Alerts & Integrations

  • 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

Integrations & API

  • 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

Multi-user & Billing

  • 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

Admin Panel

  • 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

Documentation

  • 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

Design

  • 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

Tech Stack

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)
Email Brevo (Sendinblue) Transactional API
Telegram Telegram Bot API (sendMessage)
WhatsApp Twilio WhatsApp API
Monorepo pnpm workspaces
Deployment Nginx reverse proxy + PM2 process manager

Project Structure

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

Getting Started

Prerequisites

  • Node.js 18+
  • pnpm 9+
  • PostgreSQL 14+

Installation

# 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

Environment Variables

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.


Admin Setup

  1. Register the first account β€” it automatically becomes the admin.
  2. Navigate to /admin
  3. Under Payments, enter your Paystack public and secret keys and set the billing currency.
  4. Under Email, enter your Brevo API key, sender name, and verified sender email.
  5. Under Settings β†’ Chat Notifications, enter your Telegram bot token and/or Twilio credentials.
  6. Users then go to Integrations & API in the sidebar to connect their own Telegram Chat ID, WhatsApp number, or Discord webhook URL.

Setting up Telegram

  1. Message @BotFather on Telegram β†’ /newbot β†’ copy the token
  2. Paste it in Admin β†’ Settings β†’ Chat Notifications β†’ Telegram Bot Token
  3. Users message @userinfobot to get their Chat ID
  4. Users start your bot (/start), then paste their Chat ID in Integrations & API

Setting up Discord

No bot token or admin config needed β€” Discord uses per-user webhooks:

  1. User opens Discord β†’ goes to any channel they own β†’ Edit Channel β†’ Integrations β†’ Webhooks β†’ New Webhook
  2. Names it wolfXmonitor, clicks Copy Webhook URL
  3. Pastes the URL in Integrations & API β†’ Discord, clicks Save
  4. Clicks Send test message β€” a green embed appears in the channel instantly

API Overview

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

Deployment

VPS (Nginx + PM2)

# 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 port

Nginx Sample Config

server {
    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;
    }
}

Roadmap

  • 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

Contributing

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 request

License

MIT Β© WOLF TECH Β· Silent Wolf


Powered by WOLF TECH Β· Silent Wolf
Built in Nairobi, Kenya πŸ‡°πŸ‡ͺ β€” watched from 20+ countries worldwide.

About

Open-source uptime monitoring SaaS β€” real-time website & API health checks, instant email alerts, public status pages. Free/Pro plans via Paystack (M-Pesa). Built with React, Node.js & PostgreSQL. Made in Kenya πŸ‡°πŸ‡ͺ

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages