Overview
moonlock.xyz uses a layered monitoring approach designed to balance simplicity, independence, and visibility.
Monitoring is lightweight and self-controlled. The goal is awareness without unnecessary complexity or external SaaS dependency.
Infrastructure Layer DigitalOcean Monitoring
The VPS (Sharkord host) runs the DigitalOcean monitoring agent.
Enabled metrics:
- CPU usage
- Memory usage
- Disk utilization
- Network traffic
Alerts are configured within the DigitalOcean dashboard for:
- Sustained high CPU usage
- High memory consumption
- Disk capacity thresholds
This ensures droplet-level health visibility even if application services fail independently.
Service Layer - Uptime Monitoring
Service availability is monitored using a self-hosted Uptime Kuma instance running locally (not on the VPS).
Monitors configured:
https://moonlock.xyz(HTTP check)https://chat.moonlock.xyz(HTTP check)- SSH port availability (TCP 22)
Alerts are delivered via webhook to a private channel.
This provides immediate notification if public facing services become unreachable.
Logging & Manual Inspection
For incident investigation:
Docker container logs
docker logs sharkord
System logs
sudo journalctl -xe
DigitalOcean Insights graphs
Used to correlate service disruptions with system load.
Architecture Philosophy
Monitoring is separated across layers:
- Cloudflare handles edge caching and TLS
- DigitalOcean monitors infrastructure health
- Uptime Kuma monitors public service availability
- Logs provide local investigation capability
No external monitoring SaaS is required.
The system remains:
- Self-owned
- Observable
- Lightweight
- Maintainable