自大学起就想搭一个自己的博客,用来记录一些有的没的,奈何建了删,删了建。博客的内容倒是没有增添多少,各个框架的网站搭建倒是熟练起来了。一晃眼本科都毕业了,上了大半年班,马上要开始新的研究生生活,希望这是最后一次推倒重建。
在建站的过程中,一开始采用了 Google Analytics 来统计一下网站的访问数据(万一看的人多呢 www),偶然间刷到一个看着很酷、很好折腾的开源网站分析工具 Rybbit,记录一下部署的过程。
根据项目的自托管文档,部署 Rabbit 的要求如下:
服务器 | 至少具有 2GB RAM 的服务器 |
域名 | 一个指向你的 VPS IP 地址的域名或子域名(tracking.yourdomain.com ),需要使用 HTTPS 协议。 |
Git | 需要克隆 Github 仓库 |
我使用的是从 Oracle 申请的 4 核 24G 的 Arm 架构服务器,有一说一还是很够用的,很适合我这种喜欢折腾但是囊中羞涩的学生党。
1. 安装
1.1 域名配置
为你的域名添加一条 A 记录
,指向你的 IPv4 地址,
- 主机/名称: 您想要的子域名(例如,
tracking
)。 - 值: 您的 VPS 的 IPv4 地址。
- TTL: 默认值或较低值(例如 300 秒),以实现更快的更新。
- 代理状态: 使用 Cloudflare 时,可以:
- 设置为“仅 DNS”(建议大多数设置使用)
- 或者,如果保持代理启用,请在 Cloudflare 仪表板的 SSL/TLS 设置下将 SSL/TLS 加密模式设置为“完全”或“完全(严格)”
1.2 Docker 安装
# 下载并执行Docker官方安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker
1.3 Rabbit 部署
首先我们从 Github 上将代码仓库拉取到本地
git clone https://github.com/rybbit-io/rybbit.git
cd rybbit
随后我们进行安装部署,在安装之前,先给所有的脚本赋上可运行的权限
chmod +x *.sh
随后通过运行脚本文件自动化的完成对 Rabbit 的部署
./setup.sh your.domain.name
该脚本将创建一个 .env
文件,然后构建并启动容器。首次执行此操作可能需要几分钟。当服务运行成功并且域名 DNS 设置完毕后,Caddy(网络服务器)将自动为你的域名获取 SSL 证书。打开浏览器并导航至 https://your.domain.name/signup
,即可开始后续的 Rabbit 的设置。
如果你想要用自己的网络服务器(如 Nginx 或者面板自带的各种服务),你可以通过下面的命令来跳过 Caddy 容器的部署。
./setup.sh tracking.yourdomain.name --no-webserver --backend-port 8080 --client-port 8081
这条指令完成如下操作:
- 不启动 Caddy 容器
- 在主机端口 8080 上公开后端服务
- 在主机端口 8081 上公开客户端服务
当出现下图中的字样时,代表你的服务已经成功部署!
2. Rabbit 配置
打开配置好的网址后,如果一切正常的话,会出现登录界面,如果你是采用自己的 webserver 的话,当前版本(2025-06-02)可能会出现点击登录、注册没有反应的情况,打开控制台会发现出现 401/404/502错误。
此时,你可以尝试更改 Nginx或任何其他你使用的 Webserver 设置(我使用的是 1panel),添加下面的配置代码,即可恢复正常。
location /api/ {
proxy_pass http://localhost:3001; # No trailing slash, no rewrite
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;
}
根据注册流程,完成用户注册、网站配置后,Rybbit 会给你一点代码,让你插入到你的网页中,此处仅以我现在使用的 WordPress Argon 主题为例,打开 functions.php
,插入下面的代码后保存就成功啦。
function add_rybbit() {
?>
<script
src="https://tracking.pengchzn.tech/api/script.js"
data-site-id="1"
async
></script>
<?php
}
add_action("wp_head", "add_rybbit");
୧(๑•̀⌄•́๑)૭