Appearance
Monitoring
HELIX includes health monitoring tools to ensure your services are running correctly and to alert you when issues arise.
Health Checks
Each Docker service has a built-in health check:
| Service | Health Check | Interval |
|---|---|---|
| PostgreSQL | pg_isready | 10s |
| Redis | redis-cli ping | 10s |
| Backend | GET /api/health | 30s |
| Frontend | GET / | 30s |
| Gateway | WebSocket connectivity test | 30s |
Docker automatically restarts unhealthy containers based on these checks.
Service Status
Via CLI
bash
# Check all service status
helix status
# Example output:
# Service Status Health
# ─────────────────────────────────────
# helix-db running healthy
# helix-redis running healthy
# helix-gateway running healthy
# helix-backend running healthy
# helix-frontend running healthy
# helix-caddy running healthyVia Docker
bash
# Container status with health
docker compose ps
# Detailed health info for a service
docker inspect --format='{{json .State.Health}}' helix-backendVia API
bash
# Backend health endpoint
curl https://helix.example.com/api/healthLogs
View Logs
bash
# All services
helix logs
# Specific service
helix logs backend
helix logs gateway
helix logs frontend
# Or via Docker
docker compose logs -f backend
docker compose logs -f gateway --tail=100Log Locations
| Service | Log Access |
|---|---|
| Backend | docker compose logs backend |
| Frontend | docker compose logs frontend |
| Gateway | docker compose logs gateway |
| PostgreSQL | docker compose logs db |
| Redis | docker compose logs redis |
| Caddy | docker compose logs caddy |
| Systemd | journalctl -u helix-mission-control |
Log Levels
Set the log level in .env:
bash
LOG_LEVEL=info # Options: debug, info, warning, errorUse debug for troubleshooting, info for normal operation.
Health Check Script
HELIX includes a comprehensive health check script:
bash
bash scripts/health-check.shThis script checks:
- Docker — is Docker running?
- Containers — are all containers up and healthy?
- Database — can we connect and query?
- Redis — is Redis responding?
- Backend API — does
/api/healthreturn 200? - Frontend — is the web UI accessible?
- Gateway — is the WebSocket connection established?
- Disk space — is there sufficient disk remaining?
- Memory — is memory usage acceptable?
Automated Health Monitoring
Set up periodic health checks with alerts:
bash
bash scripts/setup-health-cron.shThis creates a cron job that runs the health check every 5 minutes and sends Telegram alerts if any service is unhealthy.
Auto-Restart
HELIX services are configured with Docker restart policies:
yaml
restart: unless-stoppedIf a container crashes, Docker automatically restarts it. Combined with health checks, this provides self-healing for transient failures.
The systemd service ensures HELIX starts on server boot:
bash
sudo systemctl enable helix-mission-controlMonitoring Checklist
For production deployments, regularly check:
- [ ] All containers show
healthystatus - [ ] Gateway shows
Connectedin the dashboard - [ ] Disk space is above 20% free
- [ ] Backup cron is running (check latest backup timestamp)
- [ ] No error-level entries in recent logs
- [ ] SSL certificate is valid and not expiring soon