Skip to content

Releases: K0lin/loglynx

v1.1.0

22 Feb 13:58
Immutable release. Only release title and notes can be modified.
bff5635

Choose a tag to compare

What's Changed

  • fix: prevent splash screen after log rotation by @K0lin in #66

Full Changelog: v1.0.9...v1.1.0

v1.0.9

14 Feb 08:31
Immutable release. Only release title and notes can be modified.
1023c73

Choose a tag to compare

LogLynx v1.0.9 - Widget Integration, Log Rotation Fix, Timezone Support & Security Updates

New Features

Widget Integration for Dashboard Embedding

A new compact widget page is now available for embedding LogLynx analytics in external dashboards like Homarr, Home Assistant, or any platform that supports iframes.
Features:

  • Real-time mode with live updates (5s refresh)
  • Summary mode for time periods (1h, 24h, 7d, 30d)
  • Light and dark themes
  • Compact metrics: requests, error rate, response time, unique IPs
  • Traffic sparkline chart
    Usage:
    http://your-loglynx:8080/widget?theme=dark&time=24h
    Configuration:
    WIDGET_ENABLED=true # Enable/disable widget (default: false)
    📖 Full documentation: Widget Guide

Timezone Support for Dashboard Display

The dashboard now supports configurable timezone display for all charts and timestamps.
Configuration:
TIMEZONE=UTC # IANA timezone (e.g., UTC, America/New_York, Europe/London)
What it does:

  • All charts display data in the configured timezone
  • Timestamps in tables respect the timezone setting
  • Default is UTC if not configured
    Note: This only affects display. Data is stored in UTC in the database for consistency.

And add to the Configuration section:

| `TIMEZONE` | `UTC` | Dashboard display timezone (IANA format) |

Bug Fixes

Fixed: Splash Screen Appearing After Log Rotation (fix issue #63)
The splash screen would incorrectly appear after log rotation, even when the database contained existing data. This was caused by the progress percentage calculation returning 0% when the log file was rotated (empty file).
What was fixed:

  • Progress percentage now correctly shows 100% for rotated files that were previously processed
  • hasExistingData check is now performed at startup to properly distinguish between fresh installations and existing databases
  • Splash screen only appears on truly fresh installations

Security

Dependency Updates

  • Updated Go to 1.25.7 with security patches
  • Updated all dependencies to latest secure versions

API Changes

New Endpoints

Endpoint Description
GET /widget Widget UI page
GET /api/v1/widget/data Real-time widget data
GET /api/v1/widget/summary Summary data for time period
GET /api/v1/widget/timeline Timeline data for sparkline charts

Configuration

New Environment Variables

Variable Default Description
WIDGET_ENABLED false Enable/disable widget endpoints
TIMEZONE UTC Dashboard display timezone (IANA format)

Upgrade Notes

No breaking changes. Simply update your container image to k0lin/loglynx:v1.0.9.

What's Changed

  • Fix known vulnerabilities by @K0lin in #58
  • Fix known vulnerabilities by @K0lin in #60
  • Add timeZone configuration by @K0lin in #61
  • Added widget functionality with API endpoints and HTML template by @K0lin in #62
  • fix: prevent splash screen after log rotation by @K0lin in #64

Full Changelog: v1.0.8...v1.0.9

v1.0.8

21 Jan 16:08
Immutable release. Only release title and notes can be modified.
516203a

Choose a tag to compare

What's New

API: getIPRecentRequests

  • New endpoint getIPRecentRequests to retrieve recent requests for a given IP address, enabling faster investigation and timeline views.

UI: Mini-Chart Layout Enhancements

  • Improved mini-chart styles for better spacing and responsiveness in dashboards and detail pages.

Technical Details

  • getIPRecentRequests returns a compact list of recent request timestamps, paths, and status codes for an IP.
  • ipDetails page updated to consume the new endpoint and show recent activity inline.
  • Mini-chart CSS tweaks improve layout across narrow and wide panels and reduce overlap with labels.

Migration

  • No breaking changes. Update frontends that call ipDetails to use the new getIPRecentRequests response shape if you want the enhanced recent-requests view.

Note on browser cache

Changes to the user interface may not be immediately visible due to your browser cache. If you don't see the changes right away, clear your browser cache or perform a hard refresh to load the new resources.

Feedback

We welcome feedback and contributions. If you find issues with the new API or UI changes, please open an issue on GitHub.

What's Changed

  • feat(api): add getIPRecentRequests method and fix ipDetails page by @K0lin in #55
  • style(ui): enhance mini-chart styles for better layout by @K0lin in #56

Full Changelog: v1.0.7...v1.0.8

v1.0.7

18 Jan 19:05
Immutable release. Only release title and notes can be modified.
b846e87

Choose a tag to compare

Release: Caddy Support Added

We're excited to announce the latest update to LogLynx, now with full support for Caddy access logs!

What's New

✨ Caddy Integration

  • New Parser: Added dedicated parser for Caddy JSON access logs
  • Auto-Discovery: Automatic detection of Caddy log files in standard locations
  • Configuration: New CADDY_LOG_PATH environment variable for custom log paths
  • Comprehensive Parsing: Extracts all relevant fields from Caddy logs including:
    • Client information (IP, port, user ID)
    • Request details (method, host, path, query, headers)
    • Response data (status, size, content type, timing)
    • TLS information (version, cipher, server name)
    • Upstream/backend details

Compatibility

LogLynx now supports:

  • Pangolin (Docker Compose setup)
  • Traefik (JSON and CLF formats)
  • Caddy (JSON format)

Technical Details

  • Parser detects Caddy logs by checking for logger field containing "http.log.access"
  • Supports all standard Caddy JSON log fields
  • Handles client IP fallback from X-Forwarded-For headers
  • Converts TLS version and cipher codes to human-readable names
  • Extracts upstream information for backend analysis

Migration

No breaking changes. Existing Traefik and Pangolin configurations continue to work unchanged. Simply add your Caddy log path to start monitoring Caddy traffic.

Feedback

As always, we welcome feedback and contributions! If you encounter any issues with Caddy log parsing or have suggestions for improvements, please open an issue on GitHub.


What's Changed

  • feat: add support for Caddy access logs by @K0lin in #53

Full Changelog: v1.0.6...v1.0.7

v1.0.6

15 Jan 15:28
Immutable release. Only release title and notes can be modified.
0a81987

Choose a tag to compare

LogLynx v1.0.6 Release Notes

Overview

This release introduces significant database performance improvements through centralized index management.

What's New

🚀 Database Performance Optimizations

  • Centralized Index Management: Introduced internal/database/indexes package with centralized index definitions for better maintainability and consistency.
  • Automatic Index Reconciliation: Implemented indexes.Ensure function that reconciles expected indexes against the database, dropping obsolete ones and creating missing ones.

🔧 Technical Improvements

  • Enhance database connection and optimization logic with sensible defaults and additional indexes
  • Enhanced database connection logic with optimized index creation flow.
  • Improved repository code to use centralized index management.
  • Better error handling and logging for database operations.

Breaking Changes

None. This release maintains full backward compatibility.

Upgrade Notes

  • Existing databases will automatically have their indexes reconciled on the next startup.
  • No additional schema migrations required.

What's Changed

  • Enhance database connection and optimization logic with sensible defaults and additional indexes by @K0lin in #49
  • Refactor database index management: introduce index reconciliation and optimize index creation logic by @K0lin in #50

Full Changelog: v1.0.5...v1.0.6

v1.0.5

05 Jan 12:13
Immutable release. Only release title and notes can be modified.
9e8f15f

Choose a tag to compare

Release 1.0.5

Overview

  • Startup stability: APIs return 503 until initial indexing finishes; ingestion pauses/resumes in lockstep to avoid overload or data loss.
  • Frontend resilience: the loader handles 503 "initializing" responses and polls until the service is ready.
  • Compliance: MIT license headers and legal year updated to 2026.
  • Multi-arch builds: CI now ships amd64 + arm64 Docker images.

Changes since 1.0.4

  • Guard the API during initialization/index creation (returns 503 until ready) and surface status via the splash/loader (PR #36 / #40).
  • Coordinate ingestion by pausing processors while indexes are built, then resuming once ready (PR #36 / #40).
  • Frontend improvements: handle 503 initializing responses, keep polling until readiness, and refresh footer year to 2026.
  • Licensing and headers: MIT notices added across Go/JS; legal year aligned.
  • CI/CD: multi-architecture Docker publishing enabled (amd64 + arm64), validated through qemu aarch64 (PR #38 / #42).
  • Resolved PRs in this release: #36 (startup/index readiness & ingestion pause), #38 (multi-arch Docker builds), #40 (API guard during init), #42 (CI cross-arch workflow adjustments).

ARM64 / Platforms

  • Official loglynx:1.0.5 images are multi-arch (amd64, arm64); same configuration and env vars across architectures.
  • Tested on arm64 via qemu; legacy amd64 build path unchanged.
  • No special host requirements for arm64; SSD-backed storage and WAL (default) remain recommended for low latency.

Upgrade Notes

  • Expect 503 during startup while initial indexing completes; clients should retry.
  • No additional schema migrations: upgrade is DB-compatible with prior versions.

What's Changed

  • Enhanced security and added MIT License to all source files by @K0lin in #37
  • Prevent API Calls During Startup and Index Creation by @K0lin in #40
  • ci: configure docker workflow for cross-architecture builds by @quivalen in #42
  • Remove non-root user configuration from Dockerfile by @K0lin in #41

Full Changelog: v1.0.4...v1.0.5

v1.0.4

12 Dec 17:43
Immutable release. Only release title and notes can be modified.
aee318f

Choose a tag to compare

Overview

LogLynx v1.0.4 delivers major performance improvements through advanced database indexing, introduces flexible time range selection across dashboards, addresses security vulnerabilities, and includes UI enhancements for better user experience.

What's New

🚀 Database Performance Optimizations

  • Implemented comprehensive database performance optimizations through strategic index restructuring
  • Introduced automatic index upgrades for existing databases to ensure optimal query performance
  • Enhanced database repositories with advanced indexing strategies for faster data retrieval
  • Improved query efficiency in HTTP request and stats repositories

⏰ Time Range Selection Feature

  • Added flexible time range selectors across all dashboard pages (Overview, Performance, Traffic, Backends, Content, Security)
  • Implemented consistent time selection UI with options for 1 hour to 30 days, plus all-time view
  • Enhanced API endpoints to support time-based filtering
  • Improved user experience with persistent time range preferences

🔒 Security Enhancements

  • Mitigated stdlib x509 vulnerabilities by upgrading Go toolchain
  • Updated CI/CD workflows and Docker configuration for security compliance
  • Bumped quic-go dependency from 0.55.0 to 0.57.0 for improved QUIC protocol security

📊 UI and Visualization Improvements

  • Enhanced status code timeline visualization in the Overview dashboard
  • Fixed UI counter update issues in geographic and traffic dashboards
  • Improved RefreshManager initialization handling for better frontend stability
  • Refined chart rendering and data display logic

🎨 Previous UI Enhancements

  • Updated chart styles and layout components for improved responsiveness
  • Completely refactored tooltip system with centralized management
  • Enhanced visual clarity and accessibility across all dashboard elements

Breaking Changes

None. This release maintains full backward compatibility.

How to Upgrade

  1. Pull the latest changes from the repository
  2. Run database migrations if prompted (automatic index upgrades will be applied)
  3. Restart your LogLynx server
  4. Clear browser cache to ensure new UI elements load correctly

Performance Improvements

  • Database queries are now significantly faster due to optimized indexing
  • Reduced memory usage in stats calculations
  • Improved frontend rendering performance with better refresh handling

Full Changelog: v1.0.3...v1.0.4

v1.0.3

22 Nov 19:05
Immutable release. Only release title and notes can be modified.
a799ef0

Choose a tag to compare

What's Changed

✨ Features & Enhancements

  • Per-Service Metrics in Realtime:
    • Per-service metrics have been inserted into the websocket stream for the realtime page, allowing for more granular performance monitoring.
  • Selectable Time Range:
    • Solved Issue #11 by adding a select (dropdown) component to choose the time range to display on the realtime page.
  • Flexible Realtime Metrics Card:
    • The small card displaying realtime metrics when the stream is paused has been modified to be draggable and hiddable, improving user experience.

🐛 Bug Fixes

  • County Display Fix:
    • Fixed the county display on the realtime page when the paths are updated with the newer, dynamically loaded data.
  • Buffering Data Loss:
    • Fixed the buffering error that caused data to be lost when the realtime feed was paused.

Full Changelog: v1.0.2...v1.0.3

v1.0.2

19 Nov 20:45
Immutable release. Only release title and notes can be modified.
a475070

Choose a tag to compare

Major Data Import Fixes, UX Refinements, and Real-Time Monitoring Upgrade


This release focuses on improving data integrity, especially during initial import, enhancing the user experience through standardized design elements, and upgrading the information provided in Real-Time monitoring.

New Features & Enhancements

🌎 Geo-Location and UX Improvements

  • Geo-Data Integration: Flag icons and the corresponding Country/Continent Name have been inserted into all relevant data tables for improved geographical context.
  • Enhanced Auto-Refresh Settings:
    • The Auto-Refresh feature has been upgraded with new graphic elements and a dedicated session variable to persist settings.
  • Unified Visual Identity: The graphical appearance of the filters and the "Hide My Traffic" controls has been refined to align with the new visual identity introduced by the Auto-Refresh feature.
  • Conditional Feature Removal: The filters and "Hide My Traffic" elements have been logically removed from the page header on views where these features are not applicable or available.

📊 Real-Time Monitoring Upgrade

  • New Table: Request Rate per Service & IP: A new table has been added to the Real-Time Monitoring page displaying the Request Rate, aggregated by Service and Source IP address, offering better traffic load analysis.

🐛 Critical Fixes and Data Integrity

1. Data Import Integrity

  • Fixed: Algorithm for Log Import: The critical bug in the search algorithm, which was incorrectly setting the starting import position (too recent), has been fixed.
  • Added Validation Logging: New logging has been implemented to verify that the import process correctly starts from the intended historical date, ensuring data completeness.

2. Monitoring & Real-Time Corrections

  • Fixed: Real-Time Monitoring Latency & Duplication: Addressed issues causing delays and potential duplication of requests in the Real-Time monitoring feed. Data accuracy and timeliness are now significantly improved.
  • Fixed: Response Time Bug: Resolved a calculation/display bug affecting the Response Time metric within the main Real-Time monitoring table.

3. User Experience and Visibility (Issue Resolutions)

  • Partially Solved Issue #17 (No Data Handling): Implementation of the "No data available" message on pages where data is missing, improving feedback when data is absent.
  • Solved Issue #16 (Conditional Page Visibility): The navigation/routing logic now correctly hides pages that require specific, non-available database configurations (e.g., log format), streamlining the user interface based on the active setup.

Full Changelog: v1.0.1...v1.0.2

v1.0.1

16 Nov 17:41
Immutable release. Only release title and notes can be modified.
26651c1

Choose a tag to compare

What's Changed

  • Fixes Country Flags Display in Geographic Analytics by @amankumarconnect in #12
  • Fixed minor bugs and enhanced startup loader with empty database handling by @K0lin in #14
  • Enhance Traefik JSON parsing to support multiple timestamp and client IP fields by @K0lin in #15

New Contributors

  • @amankumarconnect made their first contribution in #12

Full Changelog: v1.0.0...v1.0.1