Project Details
VIGIL – Monitoring & Operations Platform
Concept, Architecture, Development & Operations
VIGIL is a production monitoring and operations platform that combines server, container, uptime, storage, backup, and log data in one interface. It is used in day-to-day operations and continuously extended.
Tech Stack
- React
- Vite
- TypeScript
- Fastify
- Node.js
- PostgreSQL
- SQLite
- Prometheus
- ECharts
- Docker
Project Links
Infrastructure state in one operational interface
VIGIL combines server metrics, container state, uptime, storage, logs, and backup results in one interface. CPU, memory, storage, and load can be inspected both as current state and historically, while containers add their own resource, network, and status data.
The result is more than a dashboard: it becomes an operational view of the infrastructure — which systems are healthy, where trends or bottlenecks are developing, and which events actually need attention.
Integrated uptime engine
Uptime checks run as a dedicated engine component inside the overall architecture. Availability, response times, events, and TLS certificate lifetime are collected and surfaced directly in VIGIL without requiring a separate interface for daily operations.
The engine is technically separated from the frontend and central API. This keeps check execution and persistence independent while VIGIL consolidates the data through its own platform logic.
Architecture and data layer
The React/Vite frontend communicates with a Fastify API. PostgreSQL stores central platform data, Prometheus provides metrics, and the uptime engine runs as a separate Node.js service with its own SQLite persistence. ECharts visualizes current and historical measurements.
The components run containerized and deliberately remain separated. New data sources or operational modules can be added without turning the frontend, API, and engine into a tightly coupled monolith.
Backups, storage, and operational extensions
Beyond classic metrics, VIGIL also integrates backup state and results plus file and object storage into the operational view. The goal is to avoid treating infrastructure as isolated tools and instead make dependencies and operating state visible in one place.
Active development is moving toward first-party multi-channel alerting, deeper container and server operations, and more complete object-storage management directly from the interface.
