Skip to content

Releases: lklbar666/geopulse

Release list

GeoPulse v0.1.0

Choose a tag to compare

@lklbar666 lklbar666 released this 26 Oct 08:59

GeoPulse v0.1.0

First deployable release. Self-hosted GEO analytics that keeps AI crawler observation and AI referral attribution on separate, evidence-backed paths.

首个可部署版本:把 AI 爬虫观测与 AI 引荐归因放在两条独立、可举证的数据链路上。

demo.mp4

Highlights · 亮点

  • Visitor overview — PV / UV / sessions / bounce / duration / conversion, deduplicated over the query window; sessions split after 30 minutes of inactivity without cookies.
    访客概览 — PV / UV / 会话 / 跳出 / 平均时长 / 转化率,按窗口去重;无 Cookie,30 分钟静默切分会话。
  • AI crawler ledger — UA declaration and IP verification are counted as separate layers (ip_match / ip_mismatch / ua_only). OpenAI's published GPTBot, OAI-SearchBot and ChatGPT-User ranges are seeded.
    AI 爬虫台账 — UA 声明与 IP 核验分层计数;种子内置 OpenAI 三个官方 IP 范围。
  • Content coverage — coverage ratio is only reported while log coverage is continuous; uncrawled pages are listed as blind spots with their last modified date.
    内容覆盖 — 覆盖率仅在日志连续覆盖时给出;盲区逐条列出并标注最后修改时间。
  • AI referrals and goals — platform, landing page and goal attribution, independent from crawler volume.
    AI 引荐与转化 — 按平台、落地页与目标归因,与爬虫抓取量无关。
  • Five metric states — known, known_zero, missing_input, insufficient, unsupported; missing input never renders as 0.
    指标五态 — 缺失输入永远不会渲染成 0。

Container image · 容器镜像

docker pull ghcr.io/lklbar666/geopulse:0.1.0
export GEOPULSE_IMAGE=ghcr.io/lklbar666/geopulse:0.1.0
docker compose up -d --no-build

Also tagged 0.1 and latest.

What's inside · 交付内容

  • Node 22 + Fastify 5 + PostgreSQL 16, append-only migrations
  • docker compose deployment; migrations and seeds run on start
  • Tracker (≤1.5 KB raw), log import (nginx / apache / CloudFront / JSON), sitemap / CSV / JSON content import
  • Dashboard with local ECharts, no external requests
  • 52 tests via node:test
  • Docs: README (English) · README 中文 · ARCHITECTURE

Known limits · 已知边界

  • Only identities with published ranges can reach ip_match; most Chinese platforms remain ua_only until ranges are added to db/seed/ip-ranges.json.
  • The dashboard has no CSV/Excel export in v1.
  • The image is built and published by CI; Docker Compose was not run locally because the development machine has no Docker daemon.