Vercel自托管umami实现网站统计

技巧分享 · 24 天前 · 152 人浏览

实验室中的网站统计用的umami,目前是托管在Vercel上,数据库用的也是第三方的,除了占用了一个解析二级域名,基本上可以说的上是零成本。为什么要选择自托管?

一个原因是umami本身比较占内存,通过docker部署后也要占用300~400m内存。对于现在普遍1G2G的小鸡来说,显得有点大了,容易消化不良。当然,如果你觉得你家的小鸡是公鸡中的战斗机,那当我没说。也可以选择docker-compose进行部署,这里不多加叙述。

docker-compose.yml 安装umami

version: '3.3'
  
services:

 # umami网站监控应用(支持多服务器)
  umami:
    image: ghcr.io/umami-software/umami:mysql-latest
    restart: always
    network_mode: "host"
    environment:
      DATABASE_TYPE: mysql
      DATABASE_URL: mysql://数据库用户名:数据库密码@链接ip:端口/数据库名称
      APP_SECRET: replace-me-with-a-random-string
    container_name: umami


第二个原因是官方本身就推荐这种做法,并且提供了对应的文档。那我要是不支持一下倒显得我不知好歹了不是。

在Vercel运行umami——文档说明

第三个原因是umami支持的数据库是mysqlpostgres,并且针对mysql必须版本8以上。而mysql8也比较吃内存,相比于mysql5运行只占了几十M,mysql8至少要几百M。好家伙,这两个直接一唱一和能把我小鸡撑死。

所以,最终我选择的解决方案就是:Vercel+umami+postgres+cloudflare 

利用Vercel托管项目的流程我就不多加叙述了,老生常谈的问题。不会的按照官方文档操作就行,一路点下去后会要求一个环境变量DATABASE_URL,这里要求填的就是数据库的链接代码。

因为我用的postgres数据库,并且选择了免费的第三方supabase数据库。所以去它的官方注册申请对应的数据库就行。

tips:创建数据库后,记得在选择Mode哪里选择Session mode,也就是下图的第三步,不然在Vercel构建时就会报数据库错误!

image.png

构建出来的环境变量DATABASE_URL格式如下,走的5432端口:

postgresql://postgres.ytdkdkxrycatnqozqfwv:[YOUR-PASSWORD]@aws-0-us-west-1.pooler.supabase.com:5432/postgres

然后~说到第三方数据库,这里推荐两个免费的第三方数据库,后面,有空再做下测评:

mysql数据库,提供最新的mysql8版本:https://sqlpub.com/

postgresql数据库:https://supabase.com/

关于数据这方面,建议重要的数据还是用自己的数据库吧~

通过vercel托管的项目会随机分配一个vercel二级域名,但是国内是访问不到的,所以要用到cloudflare,这个下次再说吧





技能
验证码:
Theme: Jasmine by Kent Liao