【好玩儿的Docker项目】Umami替代品,又一款网站流量统计工具——Plausible

【好玩儿的Docker项目】Umami替代品,又一款网站流量统计工具——Plausible

背景与核心痛点:对于博客、独立产品与跨境站长而言,获取访客流量与转化率至关重要,但传统 Google Analytics 不仅体积庞大且在部分地区访问受限,还面临严苛的 GDPR 数据隐私审查。开源轻量级(< 1KB)统计工具 Plausible Analytics 具备极致现代的界面美感与隐私友好属性,结合 Docker Compose 与 ClickHouse 高性能列式数据库,可在个人服务器上秒级搭建全能流量统计平台。

目录

Plausible 核心特性与优势

  • 极轻量客户端脚本:JavaScript 统计脚本小于 1KB(比 GA 小 45 倍),完全不拖慢网站加载速度。
  • 隐私合规免 Cookie 弹窗:完全遵循 GDPR、CCPA 和 PECR 隐私规范,无需记录 IP 或存储 Cookie。
  • 高性能底层架构:采用 ClickHouse 专门存储海量访问时序日志,配合 PostgreSQL 管理站点元数据,吞吐能力极强。
  • 直观全景仪表盘:单页聚合 UV、PV、跳出率、访问时长、来源渠道、国家地图及跳出率分析。

服务器前置准备与目录结构

推荐基于 1GB~2GB 内存的 Linux VPS(Debian 12 / Ubuntu 22.04+):

mkdir -p /root/data/docker_data/plausible
cd /root/data/docker_data/plausible
git clone https://github.com/plausible/hosting.git
cd hosting

编写 docker-compose.yml 编排配置

在 hosting 目录下编辑 docker-compose.yml,启动核心服务:

version: "3.3"

services:
  mail:
    image: bytemark/smtp
    restart: always

  plausible_db:
    image: postgres:14-alpine
    restart: always
    volumes:
      - ./db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=postgres_strong_pwd

  plausible_events_db:
    image: clickhouse/clickhouse-server:23.3.7.5-alpine
    restart: always
    volumes:
      - ./event-data:/var/lib/clickhouse
    ulimits:
      nofile:
        soft: 262144
        hard: 262144

  plausible:
    image: plausible/analytics:v2.0
    restart: always
    command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
    depends_on:
      - plausible_db
      - plausible_events_db
      - mail
    ports:
      - "8091:8000"
    env_file:
      - plausible-conf.env

配置环境变量与安全密钥

  1. 生成 64 字节随机加密密钥:
    openssl rand -base64 64 | tr -d '
    ' ; echo
    
  2. 编辑 plausible-conf.env:
    BASE_URL=https://plausible.yourdomain.com
    SECRET_KEY_BASE=刚刚生成的随机秘钥
    DISABLE_REGISTRATION=invite_only
    
  3. 启动容器集群:
    docker compose up -d
    

Nginx Proxy Manager 反向代理与 SSL 配置

  1. 登录 NPM 控制台,新建 Proxy Host。
  2. Domain Names 输入绑定的统计域名(如 plausible.yourdomain.com)。
  3. Forward Hostname 输入本机 Docker 内部 IP 或宿主机内网 IP,Forward Port 填写 8091。
  4. 勾选 Websockets Support 与 Block Common Exploits。
  5. 在 SSL 标签页一键申请 Let's Encrypt 证书并强制开启 HTTPS。

接入网站埋点代码与数据看板

  1. 打开浏览器登录 https://plausible.yourdomain.com 完成管理员账号创建。
  2. 点击 + Add Website 填入你的博客域名(如 blog.yourdomain.com)。
  3. 复制生成的专属统计标签,插入网站主题 HTML 的 <head> 区域中:
    <script defer data-domain="blog.yourdomain.com" src="https://plausible.yourdomain.com/js/script.js"></script>
    
  4. 部署后访问博客任意页面,Plausible 仪表盘将秒级呈现访问流量。

容器备份、升级与注册限制

  • 防止公开注册:确保在 plausible-conf.env 中配置 DISABLE_REGISTRATION=invite_only 或 true,防止他人滥用你的服务器存储资源。
  • 一键平滑升级:
    docker compose down
    docker compose pull
    docker compose up -d
    docker image prune -f