Rybbit是开源且注重隐私的Google Analytics 替代方案。主要特点如下(摘自项目页面):

> All key web analytics metrics including sessions, unique users, pageviews, bounce rate, session duration
>
> No cookies or user tracking – GDPR & CCPA compliant
>
> Customizable goals. retention, user journeys, and funnels dashboards
>
> Advanced filtering across 15+ dimensions
>
> Custom events with JSON properties
>
> Live sessions dashboard
>
> 3 level location tracking (country -> region -> city) + advanced map visualizations
>
> Real time dashboard
>
> Support for organizations and unlimited number of sites

我搭建了试了一下,界面挺好看的:











安装Docker和需要用到的软件包:

apt -y update
apt -y install git curl nginx python3-certbot-nginx
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh


克隆Rybbit的仓库:

git clone https://github.com/rybbit-io/rybbit.git
cd rybbit


把仓库内的脚本给可执行权限:

chmod +x *.sh


执行安装脚本(将rybbit.example.com域名替换成你自己的):

./setup.sh rybbit.example.com --no-webserver


[可选]默认情况下Rybbit的后端监听3001端口,前端监听3002端口,如需更改相应的端口可以执行下面的安装脚本:

./setup.sh rybbit.example.com --no-webserver --backend-port 5000 --client-port 5001


配置NGINX反向代理:

nano /etc/nginx/sites-available/rybbit


写入如下内容:

server {
    listen 80;
    server_name rybbit.example.com;

    location / {
        proxy_pass http://localhost:3002;  # Client port
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /api/ {
        proxy_pass http://localhost:3001/;  # Backend port
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}


启用站点:

ln -s /etc/nginx/sites-available/rybbit /etc/nginx/sites-enabled/rybbit


签发SSL证书:

certbot --nginx


访问rybbit.example.com创建你的用户账号。如果后续不打算公开给别人使用,可以编辑环境变量配置文件:

nano .env


修改如下设置关闭用户注册:

DISABLE_SIGNUP=true


需要执行这个更新脚本让修改后的配置生效:

./update.sh


日常维护可使用下面的脚本:

./start.sh
./stop.sh
./restart.sh