Introduction
Tianji combines three common self-hosted monitoring needs into one platform: website analytics (like Umami), uptime monitoring (like Uptime Kuma), and server status pages (like Hetrix). Instead of running separate tools, Tianji offers a single deployment that covers all three use cases with a unified interface.
What Tianji Does
- Tracks website visitors, page views, referrers, and browser statistics
- Monitors HTTP/TCP/DNS endpoint availability with configurable check intervals
- Displays server CPU, memory, disk, and network metrics via a lightweight agent
- Provides public status pages for communicating service health to users
- Sends alerts via email, Telegram, Discord, or webhook on downtime events
Architecture Overview
Tianji is a TypeScript application with a Next.js frontend and a Node.js backend. Data is stored in PostgreSQL for configuration and analytics, with optional ClickHouse integration for high-volume analytics workloads. The server status feature uses a lightweight reporter agent installed on monitored hosts that pushes metrics to the Tianji server over HTTPS.
Self-Hosting & Configuration
- Deploy with Docker Compose; includes PostgreSQL in the default stack
- Configure via environment variables for database, SMTP, and authentication
- Install the tianji-reporter agent on servers you want to monitor
- Supports custom domains for public status pages
- Multi-workspace support for managing multiple projects in one instance
Key Features
- Three monitoring tools unified under one authentication and interface
- Lightweight analytics script with minimal impact on page load
- Customizable public status pages with incident reporting
- Server metrics collection without heavy agents like Prometheus node_exporter
- Survey and feedback collection integrated into the analytics dashboard
Comparison with Similar Tools
- Umami — Analytics only; Tianji adds uptime monitoring and server status in the same tool
- Uptime Kuma — Uptime monitoring only; Tianji extends with website analytics and server metrics
- Beszel — Server monitoring focused; Tianji provides broader coverage including web analytics and availability checks
- Grafana + Prometheus — Full observability stack; Tianji is lighter and simpler for teams that need basic monitoring without complex infrastructure
FAQ
Q: How lightweight is the analytics tracking script? A: The script is under 2KB and loads asynchronously, adding negligible impact to page performance.
Q: Can I use Tianji just for uptime monitoring? A: Yes, each feature module is independent. You can use any combination of analytics, uptime, and server status.
Q: How does the server reporter agent work? A: It is a small binary that collects system metrics and POSTs them to your Tianji instance at configurable intervals. No inbound ports needed on monitored servers.
Q: Does Tianji support multiple team members? A: Yes, workspaces support multiple users with role-based access for collaborative monitoring.