Releases: orangecoding/pm2-hawkeye
3.3.0
3.1.0
- design updates
- improve processlist design
- fixing csrf token issue
3.0.1
- improving deployment handling
3.0.0
With this release, finally you can deploy your own apps easily.
Full Changelog: 2.1.0...3.0.0
2.1.0
What's Changed
- adding alerting ability by @orangecoding in #2
- Adding settings panel
Full Changelog: 2.0.0...2.1.0
2.0.0
What's Changed
-
Persistence by @orangecoding in #1
Release Notes - v2.0.0
Persistent Monitoring
The headline feature of this release. Previously every process ran in live-only mode - data was gone the moment you navigated away. You can now enable persistent monitoring per process, which stores CPU/memory history and log entries in a local SQLite database.
- Start/Stop Monitoring per process via a new notice bar in the UI
- CPU & memory sampled every 20 seconds, stored for 24 hours by default
- Log entries persisted for 14 days by default - including a full backfill of existing PM2 log files when monitoring is first enabled
- Sparkline charts show CPU and memory trends over time in the stats panel
- Orphan tracking - monitored processes that disappear from PM2 are kept in the sidebar as orphans so their history remains accessible
- Retention periods are fully configurable via METRICS_RETENTION_MS and LOGS_RETENTION_MS in .env
WebSocket Consolidation
All real-time data now flows through a single multiplexed WebSocket connection (/ws/stream) instead of three separate connections. The client sends
select/deselect messages to tell the server which process to stream; the server manages detail polling and log subscriptions per connection with a generation
counter to handle rapid process switching cleanly.Security Hardening
- Unauthenticated access rate limiting - after 2 unauthenticated hits within a 60-second window, subsequent requests are delayed by 5 seconds and receive a 429
response with Retry-After. All three thresholds are configurable via UNAUTH_WINDOW_MS, UNAUTH_MAX_REQUESTS, and UNAUTH_PENALTY_MS. - PM2 reconnection fix - the PM2 RPC socket connection could go stale when idle (e.g. no browser open overnight), causing the metrics scheduler to silently
fail. The connected flag is now reset on any RPC error so the next call reconnects automatically.
Log Viewer Improvements
- New lines no longer auto-scroll the log viewer. Instead, an unread-count badge appears at the bottom of the panel; clicking it jumps to the latest line.
- Stored logs (from the database) and live lines are merged into a single chronological stream for monitored processes.
- Log level detection runs on the backend at insert time and is stored alongside each entry, so the frontend does not need to re-parse every line on render.
UI Changes
- Monitoring notice bar between the hero card and stats grid, showing current monitoring state, configured retention periods, and start/stop controls with a
confirmation step before removing history. - Monitored badge in the process sidebar is now on its own row in green with a pulsing dot - previously it was inline with the process name in the same
coral/salmon color as errors. - Database path - SQLITE_DB_PATH now accepts a directory; the filename pm2-manager.db is appended automatically.
Operations
- update.sh - new script that pulls the latest commits, installs dependencies, rebuilds the frontend, and restarts the PM2 Manager process in one step.
- Retention TTLs, unauthenticated rate-limit parameters, and the database path are all documented in .env.example and the README.
Breaking Changes
- The three WebSocket endpoints (/ws/processes/stream, /ws/processes/:id/details, /ws/processes/:id/logs) have been replaced by the single /ws/stream endpoint.
Any external client relying on the old paths will need to be updated. - SQLITE_DB_PATH previously expected a full file path; it now expects a directory. Existing installations with a custom path ending in .db continue to work
unchanged.
Full Changelog: 1.0.2...2.0.0
1.0.2
- next release version
- adding app footer
- fixing test runner
- upgrading dependencies
1.0.1
- adding update notification
1.0.0
And so it begins...
Full Changelog: https://github.com/orangecoding/pm2-manager/commits/1.0.0