All notable changes to this project will be documented in this file.
- Added new
trusted_headers,trusted_proxies, anduse_forward_headersconfig options - Added new entry page and exit page dimensions
- Added new screen width and orientation dimensions
- Fixed error when both
listenandportconfig options are set - Added retry logic when opening the DuckDB database to handle potential locking issues on startup (e.g. when the database is being updated by another process or when using a shared network drive)
- Fixed an issue where users with invalid session tokens would show up in the UI as logged in
- Added
?ref/?referrer/?sourceas fallbacks for UTM source - Updated to the latest version of DuckDB (1.5.1)
- Improved filtering out invalid referrers
- Improved world map rendering & graph for bounce rate metric
- Improved UI error messages / loading states
- Updated to the latest version of DuckDB (1.5.0)
- GeoIP database now automatically reloads if it has been updated on disk / fixed an issue where the GeoIP database would not be updated on the first boot
- Switched to using
axumas the web framework andua-parserfor user-agent parsing - Added new
listenconfiguration option to specify the address and port to listen on (can be a socket address or just a port number). The oldportoption is still supported for backwards compatibility. - Some small UI improvements and optimizations
- Container image is now based on
distroless
If you map a folder to /data and encounter permission issues, ensure it’s owned by UID 1000 (e.g. chown 1000:1000 ./data) or has appropriate permissions (e.g. chmod 777 ./data). You can also override the UID used by Liwan when starting the container by setting the --user flag (e.g. docker run --user 0 ... to keep the old behavior).
- Updated to the latest version of DuckDB (1.4)
- Graceful shutdown on SIGINT and SIGTERM
X86-64-v3is now the default target architecture forx86_64Linux builds
- Full dimension values are now shown when hovering over the dimension in the table
- Updated dependencies & switched to the upstream of DuckDB
- Now using Jemalloc as the default memory allocator for improved performance and memory usage
- Liwan has been relicensed under the terms of the Apache-2.0 license (this also applies to all previous versions)
- Updated to the latest version of DuckDB (1.2)
- Updated list of referrer spammers, user-agents and site icons
- Ellipsis for long URLs in the UI
- Overall performance improvements and memory usage optimizations
- Force duckdb to always checkpoint the database after shutting down. This is required for upgrading to the latest version of duckdb in liwan 1.2, which has issues loading the old checkpoint files when using musl libc.
- Improved query caching to prevent unnecessary database queries
- Added Country Code to Google Referrer URLs
- Improved Multi-User Support (Non-admin users can now be granted access to specific projects)
- UTM parameters: Added support for UTM parameters. You can filter and search by UTM source, medium, campaign, content, and term. (#13)
- New Date Ranges: Fully reworked date ranges. Data is more accurate and consistent now, and you can move to the next or previous time range. Also includes some new time ranges like
Week to DateandAll Time. You can now also select a custom date range to view your data. (97cdfce, 391c580) - UI Improvements: A lot of small improvements to the UI for better polish and usability.
- New Metrics: Added new metrics:
Bounce Rate,Average Time on Page(97cdfce) - Favicons can be disabled: You can now disable fetching favicons from DuckDuckGo (
config.tomlsetting:disable_favicons) (2100bfe) - New Graphs: Graphs are now custom-built using d3 directly to improve performance and flexibility. (eb1415d)
- Fixed a potential panic when entities are not found in the database (
31405a7) - Fixed issues with the
YesterdayDate Range (76278b57) - Fixed issue with NaN values in the bounce rate metric (eb1415d)
- Removed Sessions and Average Views per Session metrics. They were not accurate and were removed to avoid confusion.
- Added more tests & improved API performance (
95d95d0)
- Database indexes: Removed unnecessary indexes to improve performance and reduce disk usage (
6191a72)
This is the first full release of the Liwan! 🎉 All essential features for web analytics are now available, including:
- Live tracking of page views
- Geolocation of visitors
- Automatic GeoIP database updates
- Basic user management
- Filtering and searching
- Multiple tracking dimensions: URL, referrer, browser, OS, device type, country, and city
- Multiple metrics: page views, unique visitors, sessions, and average views per session
- Multiple date ranges (custom date ranges are coming soon!)
- Documentation and a simple setup guide at liwan.dev
- A simple and clean UI