Skip to content

Repository files navigation

Ping-Tower / Frontend

Part of the Ping-Tower uptime monitoring system. 📖 Full project description and architecture →

Web UI for the PingTower platform: manage monitored servers, watch their status update live over WebSocket, browse ping history/uptime charts, and configure notification preferences.

Stack

  • React 19 + TypeScript, built with Vite, feature-sliced (app / pages / widgets / features / entities / shared)
  • @microsoft/signalr — live status updates from the API's /hubs/monitoring hub
  • TanStack Query — server-state fetching/caching
  • Zustand — client-side state
  • React Hook Form + Zod — forms and validation
  • Radix UI + Tailwind CSS — component primitives and styling
  • Recharts — ping history / uptime charts

Running locally

cp .env.example .env
pnpm install
pnpm dev        # http://localhost:5173

Environment variables:

Var Purpose
VITE_API_URL API base URL (leave empty in production to use the nginx proxy)
VITE_TELEGRAM_BOT_USERNAME bot username used for the Telegram account-linking deep link
VITE_SOCIAL_TELEGRAM_URL / VITE_SOCIAL_GITHUB_URL / VITE_SOCIAL_GITLAB_URL / VITE_SOCIAL_LINKEDIN_URL footer/social links

Docker

Multi-stage build (node/pnpm → nginx). In production, VITE_API_URL is left empty and nginx proxies /api/* and /hubs/* to the API container (BACKEND_URL, set at container start via envsubst).

docker build --build-arg VITE_API_URL= -t pingtower-frontend .
docker run --rm -p 3000:80 -e BACKEND_URL=http://pingtower-api:8080 pingtower-frontend

Docker Compose

docker-compose.yml joins the external pingtower_network and points nginx at the API container via FRONTEND_BACKEND_URL.

CI/CD (GitLab)

.gitlab-ci.yml: build (Docker image, push, main/stage only) → deploy (SSH, docker compose pull && up -d).

About

Web UI for PingTower - manage monitored servers, live status via WebSocket, ping history & uptime charts. React 19 + TypeScript + Vite.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages