Skip to content

LP-Tracker v2.0.0

Choose a tag to compare

@Sysadminfromhell Sysadminfromhell released this 03 Sep 22:11
· 176 commits to main since this release
8d71957

LP-Tracker v2.0.0

LP-Tracker v2 is a major update focused on reliability, scalability, provider flexibility and production readiness.

This release introduces a reworked event and leaderboard architecture, multiple League data providers, improved refresh behavior, live updates, monitoring, stronger admin security and a full project/documentation cleanup for production deployments.

Highlights

  • Multi-event support with scheduled, active and completed events
  • Reworked Leaderboard V2
  • Provider abstraction for League data sources
  • OP.GG MCP and Riot Games API support
  • Riot API rate-limit handling, pacing and automatic HTTP 429 retries
  • Incremental player refreshes
  • Incremental match statistics
  • Persistent leaderboard caching
  • Server-Sent Events for live frontend updates
  • Improved event lifecycle handling
  • Stronger admin session security
  • Prometheus-compatible monitoring
  • Build/version metadata in the UI and health endpoint
  • Frontend and backend CI checks for Pull Requests
  • Updated deployment and contribution documentation
  • AGPL-3.0-only licensing

Event and Leaderboard Improvements

V2 introduces a more robust event model with support for:

  • Scheduled events
  • Active events
  • Completed events
  • Participant start snapshots
  • LP gain tracking relative to event start state
  • Persistent match history
  • Final participant refresh before ending an event

The leaderboard was reworked to provide more reliable live standings, highlights and update state.

League Data Providers

LP-Tracker now uses a provider abstraction instead of coupling the application directly to a single external source.

Available providers:

  • OP.GG MCP
  • Riot Games API

The Riot provider includes:

  • Application rate-limit detection
  • Request pacing
  • HTTP 429 detection
  • Automatic retry handling
  • Rate-limit monitoring metrics

opgg remains the default provider when no provider is explicitly configured.

Refresh and Live Updates

Player refresh behavior has been reworked to reduce unnecessary provider requests and improve consistency.

V2 includes:

  • Incremental player refreshes
  • Incremental match processing
  • Persistent leaderboard cache
  • Scheduled refreshes
  • Manual refresh support
  • Server-Sent Events for live frontend updates

Monitoring

The backend now exposes:

GET /api/health
GET /metrics

The health endpoint includes:

  • Application status
  • Build version
  • Git commit
  • Database connectivity
  • Provider status and diagnostics
  • Event state
  • Player/cache state
  • Refresh scheduler state

Prometheus-compatible metrics include application state, refresh counters, refresh timing, provider connectivity and Riot API rate-limit information.

Security

V2 includes several admin and deployment security improvements:

  • Existing admin sessions are invalidated when the backend restarts
  • Production cookie and request security behavior is enabled through NODE_ENV=production
  • Initial admin bootstrap behavior was hardened
  • Deployment and secret-handling guidance was added
  • A dedicated SECURITY.md policy is now included

Build and Deployment

Frontend and backend versions are now both reported as 2.0.0.

Production builds can include the Git commit used for the backend image through:

GIT_COMMIT_SHA

The leaderboard footer displays:

Frontend version · Backend version · Git commit

CI injects the current commit automatically into backend Docker builds.

Docker images:

safhdev/lp-tracker:lptracker-frontend
safhdev/lp-tracker:lptracker-backend

CI and Project Maintenance

V2 adds or improves:

  • Backend tests on Pull Requests
  • Backend type checking and production builds
  • Frontend build checks on Pull Requests
  • Frontend lint checks on Pull Requests
  • Dependabot configuration cleanup
  • Updated bug report template
  • CONTRIBUTING.md
  • SECURITY.md
  • backend/.env.example
  • Reworked root README
  • Frontend metadata and README cleanup

License

LP-Tracker is now licensed under the GNU Affero General Public License v3.0, version 3 only:

AGPL-3.0-only

The AGPL requires modified versions made available to users over a network to provide the corresponding source code under the same license.

Upgrade Notes

Before upgrading an existing production deployment:

  1. Back up PostgreSQL.
  2. Record the currently deployed image or commit.
  3. Pull or build the V2 frontend and backend.
  4. Deploy the backend and allow startup migrations to complete.
  5. Deploy or restart the frontend.
  6. Verify /api/health.
  7. Verify admin login and event state.
  8. Verify /metrics if monitoring is enabled.

Existing admin sessions will be invalidated when the backend restarts.

Compatibility

Tested with:

  • PostgreSQL 18.6
  • Docker Engine / Docker Swarm 29.7.2

Full Changelog

This release includes all changes merged into main up to tag v2.0.0.