标签: 自建统计

  • 无服务器在 Vercel 上免费部署 Umami : 一个简洁开源的网站统计工具

    无服务器在 Vercel 上免费部署 Umami : 一个简洁开源的网站统计工具

    无服务器在 Vercel 上免费部署 Umami : 一个简洁开源的网站统计工具

    前言

    最近逛木木佬的博客看到前端调用 Umami API 这篇文章,看封面图像是网站访问统计啥的,一搜发现是类似 51la 统计的玩意,还开源,支持 Serverless 自部署,有东西折腾,搞!

    准备工作

    1. Github 账号
    2. Vercel 账号
    3. 数据库
    4. 自己的域名(可选)
      部署完成之后默认会给你的项目分配一个 vercel.app 的三级域名,但是在 2021 年 vercel.app 域名被墙,大陆地区无法访问,因此强烈建议自己准备域名

    一、开搞

    (一)Fork 官方 GitHub 仓库Fork

    (二)打开 Vercel 然后通过 GitHub 快捷登录通过 GitHub 快捷登录

    (三)打开 Storage 选项卡创建 Postgre出现以下界面表示创建成功sql

    (四)打开 Dashboard,点击 Add new – ProjectAdd new – Project

    (五)Import Git Repository 选择 Continue With GitHub


    (六)此时会跳转到 GitHub 批准 Vercel 访问,建议选择允许访问全部仓库,当然你也可以设置仅可访问部分仓库。

    选择你复刻的仓库

    (七)设置部署参数和环境变量

    变量名:HASH_SALT 值:自定义字符串
    变量名:DATABASE_URL 值:数据库链接
    例:
    postgresql://username:mypassword@localhost:5432/mydb mysql://username:mypassword@localhost:3306/mydb 
    变量名:TRACKER_SCRIPT_NAME 值:自定义统计脚本名

    最后点击 Deploy 部署

    部署成功后会显示 Congratulation 页面(部署时长两分钟左右)success

    (八)添加自定义域名

    如果你有域名,直接从此界面右边 “Add Domain” 进入添加域名,Vercel 会自动生成 SSL 证书(开启 https)。没有的话直接右上角 “Go to Dashboard” 就可以看到 Vercel 为你准备的域名

    (九)登录Umami

    打开 Umami,初次登录输入默认用户名 admin 与默认密码 umamilogin

    (十)Enjoy~

    二、报错及注意事项

    新版本界面有所变化,请注意DATABASE_URL ,大部分部署失败都是这里没有填写正确。以下解决办法来自 Tony’s Blog

    你需要准备一台 Linux x86 VPS(不能是 arm64)。如果没有,建议使用 GitHub Codespaces 来操作。

    以下是详细步骤:

    数据库连接失败(Unable to connect to the database)

    请检查 Vercel 环境变量中 DATABASE_URL 的值是否填写正确,有没有多加 DATABASE_URL。修改后重新部署即可。

    数据库连接失败(A migration failed to apply.)

    1. 将你 fork 的 umami 仓库 clone 到本地,并进入仓库目录。git clone https://github.com/[你的 GitHub 用户名]/umami && cd umami
    2. 在本地 umami 目录中创建一个 .env 文件,填入 DATABASE_URL= ,后面粘贴数据库连接地址(与 Vercel 环境变量中 DATABASE_URL 的值相同,可以直接复制过来)。
    3. 在本地 umami 目录中执行以下命令:yarn install
      yarn build
    4. 检查详细d报错信息,并根据不同的报错执行不同的修复命令
      如果是 02_add_event_data 错误则执行以下命令yarn prisma migrate resolve –applied “02_add_event_data”
      如果是 03_remove_casade_delete 错误则执行以下命令yarn prisma migrate resolve –applied “03_remove_casade_delete”
      等待命令执行完成,提示 Success! 则表示成功。