Umami + Next.js Next.js+ Bun Bun + PostgreSQL+ MaxMind GeoLite2

基于 Umami 自建网站统计分析服务并接入 GeoLite2 地理数据

Umami 提供分析核心,MaxMind license key 用于解锁地理定位数据

✓ 自托管统计✓ 地理定位数据 ✕ 需注册 MaxMind license

方案简介

ouorz-mono 的 Analytics App 是一个基于开源统计工具 Umami 的自建网站分析服务,属于 monorepo 中的一个应用。它需要接入 MaxMind GeoLite2 免费地理定位数据以获得地理位置分析能力,使用 PostgreSQL 作为数据库。适合希望在自有服务器上掌控访问统计数据的个人站点作者。

亮点与能力

  • 基于 Umami 的网站访问统计
  • 通过 MaxMind GeoLite2 获取地理定位数据
  • 使用 PostgreSQL 存储
  • 集成于 monorepo,使用 Bun 工作区管理

组成与分工

  • Umami:分析应用的基础
  • MaxMind GeoLite2:地理定位数据源,需注册获取 license key
  • PostgreSQL:数据库(DATABASE_URL)
  • Bun:包管理器与脚本运行

前置要求

注册 MaxMind GeoLite2 并获取 license key;准备 PostgreSQL 数据库连接。

bash
git clone git@github.com:ttttonyhe/ouorz-mono.git
bun install
cd apps/analytics

创建 .env 文件,包含 DATABASE_URL、HASH_SALT、MAXMIND_LICENSE_KEY。

实施步骤

1. 克隆并安装

bash
git clone git@github.com:ttttonyhe/ouorz-mono.git
bun install
cd apps/analytics

2. 获取地理定位数据权限

按照 MaxMind 官方指引注册 GeoLite2 并获取 license key。

3. 配置环境变量

创建 .env,填入 DATABASE_URL、HASH_SALT、MAXMIND_LICENSE_KEY。

4. 构建 PostgreSQL 客户端并启动

bash
bun run --filter '@ouorz/analytics' build-postgresql-client
bun run dev:analytics

使用与配置要点

启动后通过 bun run dev:analytics 运行分析应用日常开发;验证配置正确可观察统计功能是否正常记录访问并展示地理数据。

优缺点

  • ✓ 自托管统计
  • ✓ 地理定位数据
  • ✕ 需注册 MaxMind license

出处

本方案挖掘自开源项目 ttttonyhe/ouorz-mono,方案内容与实施命令均来自其 README 原文。

方案出处
ttttonyhe/ouorz-mono:A Monorepo for My ( :earth_asia: Personal Website / :microscope: Academic Profil
1076 star A Monorepo for My ( :earth_asia: Personal Website / :microscope: Academic Profile ) and { Other Related Projects }

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。