# Darpan ๐ช
> **เคฆเคฐเฅเคชเคฃ** (Darpan) = Mirror in Hindi/Sanskrit
> *Your development environment, reflected in real-time*
[](https://crates.io/crates/darpan)
[](https://opensource.org/licenses/MIT)
[](https://www.rust-lang.org/)
**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.
```bash
cargo install darpan
darpan watch # That's it!
```
---
## โจ What You Get
### Before Darpan ๐
```bash
$ systemctl status postgresql redis nginx
$ curl localhost:8000/health
$ journalctl -u postgresql -f
$ tail -f /var/log/nginx/error.log
```
**6 commands. 6 terminal tabs. Constant context switching.**
### With Darpan โจ
```bash
$ darpan watch
```
```
โโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโผโโโโโโโโค
โ โ 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 `/health` work (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 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
**Auto-detects log sources:**
- ๐ณ **Docker**: stdout/stderr from containers
- โ๏ธ **Systemd**: `journalctl` integration
- ๐ **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/k` support)
- Color-coded status indicators
- Live auto-refresh
- Service details with diagnostics
- Network activity section
---
## ๐ฆ Installation
```bash
# From crates.io (recommended)
cargo install darpan
# From source
git clone https://github.com/codeBunny2022/darpan.git
cd darpan
cargo install --path .
# Verify
darpan --version # v0.2.5+
```
**Requirements:** Rust 1.70+, Linux
**Optional:** Docker, systemd, ss/netstat
---
## ๐ฏ Quick Start
### Basic Commands
```bash
darpan watch # Interactive TUI (recommended)
darpan status # Quick CLI status
darpan why "Redis" # Troubleshoot specific service
darpan status --format json # For scripts/CI
darpan init # Create .darpan.yml template
```
### TUI Navigation
| `โ`/`โ`, `j`/`k` | Navigate services |
| `Enter` | View details + network activity |
| **`L`** | **View live service logs** ๐ฅ |
| `r` | Refresh |
| `q`, `Esc` | Back/Quit |
### Log Viewer (Press `L`)
| `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:
```yaml
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: { database: postgres }
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:
```yaml
# ~/.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:
```yaml
health_check:
type: custom
log_paths:
- "journalctl -u {systemd_unit} -f"
```
**Placeholders**: `{name}`, `{host}`, `{port}`, `{pid}`, `{systemd_unit}`
**Programmatic extensions** also supported. See [Extensibility Guide](docs/EXTENSIBILITY.md) and [example packs](examples/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](CONTRIBUTING.md) for:
- Code of conduct
- Development setup
- Pull request process
- Testing guidelines
---
## ๐ License
MIT License - see [LICENSE](LICENSE) for details.
Created by [Chirag (chiraglabs)](https://github.com/codeBunny2022)
---
## ๐ Acknowledgments
Built with:
- [Ratatui](https://github.com/ratatui-org/ratatui) - Terminal UI
- [Tokio](https://tokio.rs/) - Async runtime
- [Bollard](https://github.com/fussybeaver/bollard) - Docker API
- [Serde](https://serde.rs/) - Serialization
Inspired by tools like `htop`, `docker-compose`, and `systemctl status`.
---
## ๐ฌ Support
- **Issues**: [GitHub Issues](https://github.com/codeBunny2022/darpan/issues)
- **Discussions**: [GitHub Discussions](https://github.com/codeBunny2022/darpan/discussions)
- **Crates.io**: [crates.io/crates/darpan](https://crates.io/crates/darpan)
---
<div align="center">
**โญ Star this repo if Darpan helps you!**
Made with โค๏ธ by developers, for developers.
</div>