Skip to content

Releases: orangecoding/pm2-hawkeye

3.3.0

12 Apr 07:10

Choose a tag to compare

  • next release version
  • making sure pm2 does not fail on unstaged changes
  • making sure to show undeployed apps
  • fixing redeployment
  • fixing external env file usage

3.1.0

07 Apr 18:18

Choose a tag to compare

  • design updates
  • improve processlist design
  • fixing csrf token issue

3.0.1

01 Apr 10:54

Choose a tag to compare

  • improving deployment handling

3.0.0

01 Apr 07:15

Choose a tag to compare

With this release, finally you can deploy your own apps easily.

Full Changelog: 2.1.0...3.0.0

2.1.0

19 Mar 19:01

Choose a tag to compare

What's Changed

Full Changelog: 2.0.0...2.1.0

2.0.0

19 Mar 11:29
8f710ad

Choose a tag to compare

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

15 Mar 16:02

Choose a tag to compare

  • next release version
  • adding app footer
  • fixing test runner
  • upgrading dependencies

1.0.1

15 Mar 15:42

Choose a tag to compare

  • adding update notification

1.0.0

15 Mar 15:04

Choose a tag to compare