dub - 具有内置分析 + 免费自定义域的开源短链接解决方案

Created at: 2022-08-28 06:15:11
开发语言: TypeScript
授权协议: AGPL-3.0
配音 - 一个开源链接缩短器SaaS,内置分析+免费自定义域。

配音

一个开源链接缩短器SaaS,具有内置分析+免费自定义域。

简介 ·部署你自己的 ·技术堆栈 ·实施 ·贡献


介绍

Dub是一个开源链接缩短器,具有内置分析+免费自定义域。使用 Vercel 边缘函数升级版 Redis 构建

以下是 Dub 提供的一些开箱即用功能:

内置分析

Dub 为你的链接提供了强大的分析 dashboard ,包括地理位置、设备和浏览器信息。

分析 dashboard

自定义域

你可以轻松地在 Dub 上配置自定义域 – 只需将 A/CNAME 记录添加到你的 DNS 提供商,即可开始使用。这是基于维塞尔域 API 构建的

分析 dashboard

部署你自己的

你可以部署自己的托管版本的 Dub,以获得更好的隐私和控制。只需单击下面的链接,即可将现成的 Dub 版本部署到 Vercel。

使用维塞尔进行部署

技术堆栈

实现

Dub 是作为标准的 Next.js 应用程序构建的,具有中间件来处理多租户,其灵感来自 Vercel 平台初学者工具包

Redis 用作存储链接和分析数据的数据库,适用于键值数据类型。Redis 还具有“排序集”数据类型,非常适合存储/检索时序分析数据。以下是完整的架构:

  • {hostname}:links
    – 给定主机名的所有链接的哈希图(例如
    dub.sh:links
    )
  • {hostname}:links:timestamps
    – 给定主机名的所有链接时间戳的排序集(例如
    dub.sh:links:timestamps
    )
  • {hostname}:clicks:{linkId}
    – 对给定链接的所有点击进行排序(例如
    dub.sh:clicks:github
    )
  • {hostname}:root:clicks
    – 给定主机名的所有根链接点击的排序集(例如
    dub.sh:root:clicks
    )

贡献

  • 如果你认为自己遇到了 Bug,请提出问题
  • 提出拉取请求以添加新功能/提高生活质量/修复错误。

作者

许可证

似是而非的启发,Dub 是 GNU 阿费罗通用公共许可证版本 3 (AGPLv3) 或任何更高版本下的开源版本。你可以在这里找到它