首页 > web前端 > js教程 > 自托管 Umami Analytics:使用 Vercel 和 Supabase 免费部署的完整指南

自托管 Umami Analytics:使用 Vercel 和 Supabase 免费部署的完整指南

王林
发布: 2024-08-11 06:08:02
原创
491 人浏览过

什么是分析

分析 是收集和分析有关访问者如何与您的网站互动的数据的过程。这些信息至关重要,因为它可以让您做出明智的决定来改进您的网站。

Google Analytics 是一个不错的选择,但可能存在数据隐私以及 GDPR 合规性问题。

选择分析工具时,重要的是:

  • 是免费的(开源)
  • 允许自托管(无供应商锁定)
  • 符合 GDPR
  • 重量轻且速度快

Umami Analytics 检查所有这些框。

Umami Analytics:开源分析解决方案

Umami Analytics 是一款简单、快速且注重隐私的工具,可让您在不损害用户隐私的情况下跟踪网站使用情况。它是 Google Analytics 的开源替代品。一大优点是 Umami 分析符合 GDPR(通用数据保护条例)。

有两种使用 UMAMI 分析的选项

  • 使用 UMAMI 云解决方案(通过免费套餐付费)
  • 在您的服务器上自行托管

在本文中,我们将探索自托管选项。我们将使用 Supabase(免费套餐)作为数据库(postgres),使用 Vercel(免费套餐/爱好计划)来托管 Umami。

让我们深入了解如何使用 Vercel + Supabase 免费自行托管 Umami 分析

1.在Supabase中创建新项目

  • 使用 Supabase 创建一个新帐户(如果您还没有),然后按 + 新项目创建新项目
  • 提供您喜欢的项目名称(例如 your_app_name-analytics)
  • 不要忘记将密码存储在某处,稍后会需要它。
  • 选择距离托管服务器位置最近的区域。

Self-Hosting Umami Analytics: A Complete Guide to Deploying with Vercel and Supabase for Free

2. Supabase 的初始配置

  • 选择项目,导航到 SQL 编辑器
  • 复制 github 存储库中提供的 SQL 脚本

Self-Hosting Umami Analytics: A Complete Guide to Deploying with Vercel and Supabase for Free

  • 将其粘贴到SQL编辑器上,然后单击运行

Self-Hosting Umami Analytics: A Complete Guide to Deploying with Vercel and Supabase for Free

  • 您将能够在表格编辑器选项中看到新创建的表格

Self-Hosting Umami Analytics: A Complete Guide to Deploying with Vercel and Supabase for Free

  • 导航到项目设置 → 数据库 → 连接字符串 → 复制连接 URL

Self-Hosting Umami Analytics: A Complete Guide to Deploying with Vercel and Supabase for Free

3. 在 github 上分叉 UMAMI

  • 将 https://github.com/umami-software/umami 项目分叉到您的 GitHub 帐户。
  • 编辑 db/postgresql/schema.prisma 文件(添加 directUrl)

    雷雷

4. 在 Vercel 上部署

  • 转到 Vercel 上的仪表板并创建新项目
  • 在仪表板页面中单击“导入项目”,然后指定 GitHub 上项目分支的 URL。
  • 在点击部署之前添加以下环境变量
雷雷

重要的!!

? DATABASE_URL 与从 supabase 复制的连接 Url(在步骤 2 中)相同,但您必须在 Url 末尾添加 ?pgbouncer=true&connect_timeout=1

? DATABASE_URL 与从 supabase 复制的连接 URL 相同(在步骤 2 中),但您必须将端口从 6543 替换为 5432

    之后点击部署
5. 解决错误“数据库架构不为空”

    在第二步中,我们在 Supabase 中运行了一个 sql 脚本,它在数据库中创建了几个表。现在,当脚本在部署期间运行时,它会抛出错误,错误代码为 P3005,表示数据库架构不为空
  • 要解决此问题,请在本地克隆分叉存储库,并添加与上面提到的相同的环境变量(在步骤 4 中)
  • 现在运行以下命令(安装依赖项并设置数据库连接)


    雷雷

  • 然后我们将按照以下步骤创建基线迁移

  1. 如果您有 prisma/migrations 文件夹,请删除、移动、重命名或存档此文件夹。

  2. Run the following command to create a migrations directory inside with your preferred name. This example will use 01_init for the migration name:

    mkdir -p prisma/migrations/01_init
    
    登录后复制
  3. Generate a migration and save it to a file using prisma migrate diff

    npx prisma migrate diff \
    --from-empty \
    --to-schema-datamodel prisma/schema.prisma \
    --script > prisma/migrations/01_init/migration.sql
    
    登录后复制
  4. Run the prisma migrate resolve command for each migration that should be ignored:

    npx prisma migrate resolve --applied 01_init
    
    登录后复制

    This command adds the target migration to the _prisma_migrations table and marks it as applied. When you run prisma migrate deploy to apply new migrations, Prisma Migrate:

    1. Skips all migrations marked as 'applied', including the baseline migration
    2. Applies any new migrations that come after the baseline migration
  • You will be able to successfully deploy the app on Vercel server after this. The URL of your analytics app would be available under project tab of Vercel app.

6. Login to Umami

  • The default credentials for login is
username : admin
password : umami
登录后复制
  • To change the default credentials navigate to settings → users → admin → edit
  • Enter your new password and click on save.

7. Configure your website for analytics tracking

  • navigate to settings → websites → + Add website
Name : provide any name of your choice
Domain : your [website](https://www.invoizly.com) domain (eg. invoizly.com) 
登录后复制

Self-Hosting Umami Analytics: A Complete Guide to Deploying with Vercel and Supabase for Free

  • Once website is added navigate to settings → website → your website name → edit → tracking code. Copy the tracking code.

8. Add tracking code to your project

In Next.JS projects to load a third-party script for multiple routes, import next/script and include the script directly in your layout component:

import Script from 'next/script'

export default function Layout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
        <html lang="en" className="dark">
      <body className={cn(`${inter.className} antialiased`)}>
          <Navbar />
        {children}
        <Footer />
      </body>
      <Script 
          defer 
          src="https://[your-analytics-app].vercel.app/script.js" 
          data-website-id="xxxx-xxx-xxxx-xxxx-xxxxx" 
        />
    </>
  )
}
登录后复制

After adding the Sript in your root layout, deploy your app and visit your web page. you will be able to track the visits on your analytics dashboard page.

Self-Hosting Umami Analytics: A Complete Guide to Deploying with Vercel and Supabase for Free

Conclusion

Hope with help of this article you will be able to set up analytics for your application quickly and easily, without relying on third-party services. Since Vercel and Supabase both provides generous free tier, you can run your analytics for free in the initial days while being GDPR compliant.

About Invoizly

Invoizly is all about making invoicing easy and free. With Invoizly, you can quickly create high-quality, customizable invoices that look professional. It’s designed to be super user-friendly, so you can focus on your business instead of getting bogged down in paperwork.

Cover image by Marissa Grootes on Unsplash

以上是自托管 Umami Analytics:使用 Vercel 和 Supabase 免费部署的完整指南的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板