Darpan ๐ช
เคฆเคฐเฅเคชเคฃ (Darpan) = Mirror in Hindi/Sanskrit
Your development environment, reflected in real-time
Zero-config service monitoring for Linux developers. Auto-discovers and monitors databases, APIs, Docker containers, and caches with real-time health checks, live log streaming, network activity tracking, and extensible service packs.
โจ What You Get
Before Darpan ๐
|
6 commands. 6 terminal tabs. Constant context switching.
With Darpan โจ
โโ Darpan - myproject | Live Monitor โโโโโโโโโโโโโโโโโโ
โ STATUS โ NAME โ TYPE โ PORT โ CONN โ
โโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโผโโโโโโโโค
โ โ Healthy โ PostgreSQL โ Database โ 5432 โ 3 โ
โ โ Healthy โ Redis โ Cache โ 6379 โ 0 โ
โ โ Healthy โ Frontend โ HTTP โ 3000 โ 1 โ โ Works without /health!
โ โ Down โ API Server โ HTTP โ 8000 โ - โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
3/4 healthy | Enter: details | L: logs | r: refresh
One command. One dashboard. Everything.
๐ Key Features
๐ Zero-Config Auto-Discovery
- Instant detection: PostgreSQL, Redis, MySQL, MongoDB, Docker, HTTP servers
- Multi-source scanning: Ports, processes, Docker API, systemd units
- Smart recognition: Service signatures and common patterns
- Extensible: Service packs for custom stacks (Node.js, Django, etc.)
- Just works: No setup required
๐ Intelligent Health Monitoring
- Multi-tier checks: HTTP endpoints โ Port connectivity โ Process verification
- Database pings: PostgreSQL, Redis, MySQL, MongoDB
- Traffic-based: Frontend/Backend services use network activity (no HTTP spam)
- Script support: Custom health checks via commands
- Fallback logic: Services without
/healthwork (React, Vue, Angular dev servers)
๐ก Live Network Activity Tracking โก NEW
โโโ Network Activity โโโ
Port Status: LISTENING โ
Active Connections: 5 (traffic detected)
Process Connections: 3 established, 1 listening
- See actual traffic to your services
- Detect hung connections or leaks
- Verify listening status even without health endpoints
- Process-level insights for deep debugging
๐ Real-Time Log Streaming
โโ SERVICE LOGS: Redis โโโโโโโโโโโโโโโโโโโโโโโโโโ
โ [12:30:45 INFO ] Starting Redis 7.0.15 โ
โ [12:30:46 INFO ] Ready to accept connections โ
โ [12:30:50 WARN ] Memory usage: 2.1MB โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Press /: search | 1-4: filter level | E: export
Auto-detects log sources:
- ๐ณ Docker: stdout/stderr from containers
- โ๏ธ Systemd:
journalctlintegration - ๐ Files:
/var/log/,./logs/,~/.pm2/logs/ - โก Process: Direct stdout/stderr capture
- ๐ง Scripts: Custom commands (e.g.,
journalctl -u {systemd_unit} -f)
Interactive features:
- Search (
/), filter (1-4), pause (Space), scroll (โโ, mouse wheel) - Copy selection (
v/y/Ctrl+C), export (E) - Page navigation (
PageUp/PageDown,g/G,Home/End)
๐จ Beautiful TUI
- Keyboard-driven (Vim-style
j/ksupport) - Color-coded status indicators
- Live auto-refresh
- Service details with diagnostics
- Network activity section
๐ฆ Installation
# From crates.io (recommended)
# From source
# Verify
Requirements: Rust 1.70+, Linux
Optional: Docker, systemd, ss/netstat
๐ฏ Quick Start
Basic Commands
TUI Navigation
| Key | Action |
|---|---|
โ/โ, j/k |
Navigate services |
Enter |
View details + network activity |
L |
View live service logs ๐ฅ |
r |
Refresh |
q, Esc |
Back/Quit |
Log Viewer (Press L)
| Key | Action |
|---|---|
Space |
Pause/resume |
/ |
Search |
1-4 |
Filter by level |
0 |
Clear filters |
E |
Export |
โ/โ |
Scroll (paused) |
๐ Configuration (Optional)
Darpan works without config. Add .darpan.yml for custom services:
version: 1
services:
- name: My API
type: http_server
port: 8000
health_check:
type: http
path: /api/health
log_file: /var/log/myapi/app.log
- name: PostgreSQL
type:
port: 5432
health_check:
type: postgres
Locations: ./.darpan.yml (project) or ~/.config/darpan/config.yml (user)
๐ Examples
Microservices: Auto-detect Docker containers, APIs, databases
Debugging: Press L โ search logs โ export for analysis
CI/CD: darpan status --format json | jq '.[] | select(.status != "Healthy")'
๐ Extensibility โก NEW
Extend Darpan without code changes:
Service Packs (YAML)
Share detection rules, health checks, and log paths for common stacks:
# ~/.config/darpan/packs/my-stack.yml
name: my-stack
version: "1.0.0"
signatures:
- name: My API
type: http_server
role: backend
port: 8080
process_pattern: "my-api"
health_check:
type: http
path: /health
Packs auto-load from:
~/.config/darpan/packs/*.yml(user-wide).darpan.d/packs/*.yml(project-local)
Script-Based Checks
Custom health checks and log sources via commands:
health_check:
type: custom
script: "curl -f http://{host}:{port}/health || exit 1"
log_paths:
- "journalctl -u {systemd_unit} -f"
Placeholders: {name}, {host}, {port}, {pid}, {systemd_unit}
Programmatic extensions also supported. See Extensibility Guide and example packs.
๐ง Troubleshooting
Service not detected? โ Check port (ss -tln) or add to .darpan.yml (darpan init)
Logs not showing? โ Check permissions or specify log_file in config
Health check wrong? โ Override health_check in .darpan.yml
๐ค Contributing
Contributions welcome! Please see CONTRIBUTING.md for:
- Code of conduct
- Development setup
- Pull request process
- Testing guidelines
๐ License
MIT License - see LICENSE for details.
Created by Chirag (chiraglabs)
๐ Acknowledgments
Built with:
Inspired by tools like htop, docker-compose, and systemctl status.
๐ฌ Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Crates.io: crates.io/crates/darpan
โญ Star this repo if Darpan helps you!
Made with โค๏ธ by developers, for developers.