github GilbN/geometrikks v0.25.0

41 minutes ago

Highlights

  • Documentation at geometrikks.dev/docs. The README is now a short front page. The docs site has a page per topic, generated configuration and API references, and a version picker with the latest release and next. Links in the app point to it.
  • AbuseIPDB. With an API key, you can report an IP from its menu with a prefilled report, see its AbuseIPDB score in the IP inspector, and list every report you sent on a new Reports tab on the Security page. IPs on AbuseIPDB's blacklist get the dashed outline DROP IPs get, from a daily download or from a file you already pull yourself. Everything is off until you turn it on.
  • Exclude your IP. Access Logs and Geo Logs leave out your own traffic with one tap.
  • Satellite map. The map can show Esri World Imagery under the borders and place names, with a free ArcGIS key in MAP_ESRI_API_KEY.
  • Four new themes. Glacier, Dusk, Lyng and Storm, each with a light and a dark palette.
  • Security tabs. Decisions, Alerts, DROP and Reports each get a tab, and the open tab is in the URL.

AbuseIPDB

Report to AbuseIPDB dialog with the request summary, prefilled categories and comment, attack time and the IP's current score

Security page Reports tab listing sent AbuseIPDB reports

Satellite map

Map in the Satellite view with Esri World Imagery

Themes

Changelog

Added

  • Access Logs and Geo Logs can leave out your own traffic with one tap. On a phone, the button next to Filters adds the IP GeoMetrikks sees for you to the excluded IPs, and a second tap removes it. The Filters drawer shows that address in a Your IP row. On a wider screen, the filter bar has an Exclude your IP button. When your phone moves to another network, the next tap adds the new address next to the old one. Behind a reverse proxy, GeoMetrikks sees only the proxy's address unless the proxy is in APP_TRUSTED_PROXIES, and the drawer then names that setting. Scripts can read the same address from GET /api/v1/system/client-ip.
  • With ABUSEIPDB_API_KEY set and ABUSEIPDB_REPORTING_ENABLED=true, any IP's menu has a Report to AbuseIPDB… item. It opens a report prefilled from what GeoMetrikks saw, with categories, a comment and the attack time, and you can edit all three before you send it.
    • GeoMetrikks keeps a record of every report it sends and who sent it.
    • The menu shows when an IP was last reported, and blocks a second report of the same IP within 15 minutes.
    • The Check button in the report spends one AbuseIPDB check to show the IP's current score.
    • Read/write API keys can send reports with POST /api/v1/abuseipdb/reports.
    • The IP inspector links to the IP's page on AbuseIPDB, even without an API key.
    • With a key, the IP inspector shows the IP's AbuseIPDB score when it opens. Each lookup uses one daily AbuseIPDB check, at most once per IP every 15 minutes.
    • With a key and ABUSEIPDB_BLACKLIST_ENABLED=true, GeoMetrikks downloads AbuseIPDB's blacklist once a day and marks listed IPs with the dashed outline DROP IPs get, in tables and on the map. The IP inspector, the IP menu, record sheets, the phone IP menu's ban drawer and map popups about one IP name the list, and tapping a marked IP on the map explains it. The abuse report dialog notes listed addresses but leaves them out of the report text. ABUSEIPDB_BLACKLIST_REFRESH_HOURS changes the interval, from 6 to 36 hours. A list more than 72 hours old stops showing. The list is for your own use: AbuseIPDB forbids republishing it, and free plans can't be used commercially.
    • If you already download the blacklist yourself, set ABUSEIPDB_BLACKLIST_ENABLED=true and point ABUSEIPDB_BLACKLIST_FILE at that file. GeoMetrikks then reads it instead, with no API key and none of your daily blacklist calls. It takes AbuseIPDB's JSON answer as saved, or one IP per line, and picks up a new file within 5 minutes.
    • The Security page has a Reports tab listing every report GeoMetrikks has sent, newest first. Search by IP, comment or sender, or filter by category and status. Expanding a row shows the comment and attack time. GET /api/v1/abuseipdb/reports/history returns the same list.
  • Settings > Appearance has four new themes. Glacier is clear blue, Dusk is indigo, Lyng is heather pink and Storm is a muted steel blue. Each has a light and a dark palette, and each side mixes with any other theme.
  • The map has a Satellite switch under Globe that shows Esri World Imagery, with country borders and place names on top. It needs an ArcGIS key in MAP_ESRI_API_KEY, free at location.arcgis.com. Without one the switch stays off and says so. The browser remembers your choice.

Changed

  • The documentation moved from the README to geometrikks.dev/docs. The proxy warnings on Settings > Status, "Set up an agent" on Settings > Agents, the CrowdSec setup note on the Security page and the missing GeoLite2 database banner now link to it. The Loki and Nginx Proxy Manager messages in the log name the page to read.
  • On a phone, the map's Layers drawer shows Country, City and Server as rows, like the Filters drawer on the log pages. Country and City open a search page in the drawer, and Server opens the phone's own list. They used to be three stacked lists with their own search boxes. In the Debug Logs Filters drawer, Lines is a row that opens the phone's own list.
  • The Security page splits Decisions, Alerts, DROP and Reports into tabs, one table at a time. The open tab is in the URL, so a reload or a shared link keeps it. With AbuseIPDB reporting on and CrowdSec off, Security stays in the navigation and shows only Reports.

Fixed

  • The Access Logs live tail now sits in the same kind of card as the history table, with a title, row count, status and the Pause button in its header. Long IPv6 addresses get cut short instead of running into the next column. If the server starts without its database, the card says the live feed is paused instead of showing empty column headers.
  • The missing-GeoLite2 banner and the CrowdSec setup notes on the Security page now say to run docker compose up -d after editing .env. docker compose restart keeps the old values.

What's Changed

  • feat(logs): exclude your own IP from the logs in one tap by @GilbN in #473
  • fix(filters): make phone host filters searchable by @GilbN in #476
  • feat(abuseipdb): report an IP to AbuseIPDB from its actions menu by @GilbN in #448
  • feat(abuseipdb): show an IP's AbuseIPDB score in the inspector by @GilbN in #450
  • feat(abuseipdb): mark IPs on the AbuseIPDB blacklist by @GilbN in #451
  • feat(abuseipdb): list sent reports in a new Security tab by @GilbN in #470
  • fix(abuseipdb): list CrowdSec's report picks first and show the score details on a tap by @GilbN in #480
  • fix(abuseipdb): pick the attack date from the shadcn calendar by @GilbN in #479
  • feat(themes): add Glacier, Dusk, Lyng and Storm themes by @GilbN in #481
  • fix(abuseipdb): match the inspector's badge tooltips and redraw the report's score as tiles by @GilbN in #482
  • fix(filters): give the map's phone filters the compact rows by @GilbN in #483
  • feat(map): add a Satellite view with Esri World Imagery by @GilbN in #484
  • fix(access-logs): put the live tail in the same card as the history table by @GilbN in #485
  • chore(dev): name the agents and pass AbuseIPDB settings in the agents compose stack by @GilbN in #486
  • feat(site): move the docs to Fumadocs with latest and next versions by @GilbN in #474
  • docs(site): move every docs page into the new site's next version by @GilbN in #475
  • feat(screenshots): retake every screenshot by script, desktop and phone, light and dark by @GilbN in #477
  • docs: make geometrikks.dev/docs the documentation and cut the README to a front door by @GilbN in #478
  • feat(site): lead the landing page with the product and link it to the docs by @GilbN in #487
  • feat(abuseipdb): read the blacklist from a file you already download by @GilbN in #493
  • feat(abuseipdb): mark blacklisted IPs everywhere DROP IPs are marked by @GilbN in #494
  • chore(deps): bump the frontend-minor-patch group across 1 directory with 16 updates by @dependabot[bot] in #491
  • chore: merge the duplicate changelog heading and stop the map chip test flaking by @GilbN in #495
  • chore(release): 0.25.0 by @GilbN in #496
  • Release v0.25.0 by @GilbN in #497

Full Changelog: v0.24.0...v0.25.0

Don't miss a new geometrikks release

NewReleases is sending notifications on new releases.