vercount 安装

之前调试网站时候,发现busuanzi加载很慢,经常掉线,所以想是用一种比较简单的方式替代。Vercount是一个轻量、自建、稳定的网站统计工具.并且可以完美替代之前busuanzi

最初尝试(docker 部署)

我最开始想用 docker-compose 一键部署,但由于网络/镜像问题无法成功。喜欢的也可以走这路线,比较常见,但是不易修改。

  • 安装docker-compose
1
2
3
4
sudo apt  install docker-compose

docker-compose up -d

修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 新建 docker-compose.yml
cat > docker-compose.yml << EOF
version: '3.8'

services:
redis:
image: redis:7-alpine
container_name: vercount-redis
restart: always
ports:
- "6379:6379"
volumes:
- redis-data:/data

api:
build: ./apps/api
container_name: vercount-api
restart: always
depends_on:
- redis
environment:
- REDIS_ADDR=redis:6379
- REDIS_PASSWORD=
- PORT=8080
ports:
EOFedis-data::3000"_API_URL=http://api:8080


# 查看
cat docker-compose.yml

本地直接部署

安装依赖:Redis

  • 安装redis
1
2
3
4
5
6
7
8
sudo apt update

sudo apt install redis-server -y
sudo systemctl enable redis-server
sudo systemctl start redis-server

npm install pnpm -g

验证是否运行:

1
redis-cli ping

返回 PONG 即成功。

安装 Go 环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 删除旧版本
sudo rm -rf /usr/local/go

cd /tmp
# 下载
wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz

# 安装
sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz

# 配置环境变量
echo "export PATH=/usr/local/go/bin:$PATH" >> ~/.bashrc
source ~/.bashrc

验证:

1
go version

克隆项目

vercount 依赖之前的goredis,需要确保前两步成功安装。

1
2
3
4
# 克隆项目
git clone https://github.com/EvanNotFound/vercount.git
# 进入项目目录
cd vercount/
  • 创建环境配置 .env
    cd /home/ubuntu/vercount/apps/api进入API 目录执行
1
2
3
4
5
cat > .env << EOF
PORT=8989
REDIS_URL=redis://127.0.0.1:6379/0
ALLOW_ORIGINS=*
EOF
  • 安装前端依赖
    有些包安装不了,需要重新构建
1
2
3
sudo apt install npm -g
npm install pnpm -g
pnpm install

a选择所有

1
2
3
4
5
6
7
8
pnpm approve-builds
[WARN] The "pnpm" field in package.json is no longer read by pnpm. The following keys were ignored: "pnpm.overrides". See https://pnpm.io/settings for the new home of each setting.
? Choose which packages to build (Press <space> to select, <a> to toggle all, <i> to invert selection) …
❯ ○ @swc/core
○ esbuild
○ sharp
○ unrs-resolver

编辑自启动服务

1
2
sudo vim /etc/systemd/system/vercount.service

写入内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Vercount Count Service
After=network.target redis-server.service

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/vercount/apps/api
ExecStart=/usr/local/go/bin/go run main.go
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

设置自启动服务

1
2
3
4
sudo systemctl daemon-reload
sudo systemctl enable vercount
sudo systemctl start vercount

Nginx 反代

Nginx 配置中加入:

1
2
3
4
5
location /vercount/ {
proxy_pass http://127.0.0.1:8989/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
1
2
sudo nginx -t
sudo systemctl restart nginx

在之前busuanzi使用:

1
https://你的域名/vercount/js

到这里就可以正常使用了