Skip to content

Matomo

以私有化部署为例:

后端

以下以部署到 8082 端口,MySQL 服务所在的网络为trial-mysql_backend为例。

bash
docker run \
  -d \
  --restart=unless-stopped \
  -p 8082:80 \
  --network=trial-mysql_backend \
  --link=mysql:db \
  -v matomo_data:/data \
  --name=matomo \
  matomo

【可选】安装地理位置数据库

为了精确解析访问者的地理位置数据,需要额外安装 IP 数据库,Matomo 推荐使用 db-ip.com 的免费数据库

首先,需要将数据库文件下载到容器内:

bash
# 进入容器命令行界面
docker exec -it matomo bash

# 进入 misc 目录
cd misc

# 待下载数据所属月份
year_month=$(date +%Y-%m)

# 下载免费版数据库 MMDB 格式压缩文件
curl -O https://download.db-ip.com/free/dbip-city-lite-${year_month}.mmdb.gz

# 解压缩并重命名
gzip -d dbip-city-lite-${year_month}.mmdb.gz
mv dbip-city-lite-${year_month}.mmdb DBIP-City.mmdb
exit # 退出命令行

然后,在“设置 → 系统 → 地理位置”页面的“位置信息提供商”部分,点选“DBIP / GeoIP(Php)”项,并点击该部分底部的“保存”按钮,刷新一下页面即可。

控制台页面

  • 安装并初始化 Matomo
  • 新建并配置站点信息
  • 获取站点 URL 及站点 ID

应用前端

以 Next.js (App router) 为例: 命令行

bash
# https://github.com/SocialGouv/matomo-next
pnpm add @socialgouv/matomo-next

matomo.js

javascript
"use client";

import { init } from "@socialgouv/matomo-next";
import { useEffect } from "react";

export default function Main() {
  const MATOMO_URL = "https://nobelpress.matomo.cloud/"; // 站点MatomoURL
  const MATOMO_SITE_ID = "1"; // 站点ID

  useEffect(() => {
    init({ url: MATOMO_URL, siteId: MATOMO_SITE_ID });
  }, []);
}

layout.js

javascript
import Matomo from "@/components/common/matomo";

// ...
return (
  // ...
  <Matomo /> // ...
);

参考资料