前言
因为之前经常要分享自己的博客链接,但原生的博客链接往往又长又复杂,不仅影响美观,还不便于记忆和传播。今年年初,当我第 N 次面对一个长达50多个字符的博客链接时,终于决定要解决这个问题。
起初,我尝试了市面上各种免费的短链接服务,但很快就发现了几个问题:
- 服务不稳定,经常无法访问
- 部分服务会插入广告或跳转页面
- 隐私问题令人担忧
在尝试了多个服务都不满意后,我决定自己动手搭建一个私有化的短链接服务。没想到这个最初只为自用的工具,在知乎分享后竟意外收获了不少用户。今天,我就把这个简单实用的解决方案完整分享给大家。
技术选型
在技术方案的选择上,我主要考虑了以下几个因素:
- 完全免费:个人项目预算有限
- 无需服务器运维:避免维护成本
- 快速部署:简单易上手
- 稳定可靠:保证服务可用性
最终确定的方案是:
- 前端部署:Vercel(提供免费的Serverless服务)
- 数据存储:Supabase(免费的PostgreSQL数据库)
- 界面:简洁的HTML页面
详细部署指南
准备工作
在开始之前,请确保完成以下准备工作:
- 注册GitHub账号:github.com
- 注册Vercel账号:vercel.com
- Fork项目仓库:访问 github.com/Alessandro-…,点击右上角的”Fork”按钮
![图片[1] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/a619f0cdd57de290eddf607542c0a7fa.webp)
第一步:部署到Vercel
- 登录Vercel后,点击左上角菜单,选择”Import Project”
![图片[2] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/43c64a1ad898e0bbff2576cbdc067e5f.webp)
点击”Continue with GitHub”并授权Vercel访问你的GitHub账号
![图片[3] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/5e48e47785d5d0047d1de870fb69a103.webp)
如果是首次使用,需要安装Vercel的GitHub应用。点击”Install”完成安装
![图片[4] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/d4eac926d20b59eb112afd95f2a70821.webp)
安装完成后,在项目列表中找到你fork的”short-link”项目,点击”Import”
![图片[5] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/ef80859185556822fed29143d21927cf.webp)
保持默认配置,直接点击”Deploy”开始部署
![图片[6] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/24a8e88bfc28ee2ef6e61936778184e2.webp)
等待部署完成,看到如下界面表示前端部署成功
![图片[7] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/5fa878c5855b26b9ba8ce6ce34b31d39.webp)
第二步:配置Supabase数据库
虽然前端已经部署完成,但我们的服务还需要数据库支持。按照以下步骤配置:
- 在Vercel项目页面,点击”Storage”选项卡
- 选择Supabase,点击”Create”
![图片[8] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/72596cc4da350459c3156c2acba54048.webp)
阅读并接受条款,点击”Accept and Create”
![图片[9] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/e78c7dd9510152b0a06daed5b423d1a7.webp)
选择”Free Plan”免费计划,点击”Continue”
![图片[10] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/ace4b60c11f40a28510a6f0c4587c77c.webp)
保持默认数据库名称,点击”Create”创建数据库
![图片[11] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/8654dcaf82db1987ce72975cd5b5d563.webp)
创建完成后点击”Connect”连接数据库
![图片[12] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/2d4f88f4e3be80fbcfa1444f9aa9cf68.webp)
点击”Open in Supabase”进入数据库管理界面
![图片[13] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/c0bc3f301a860bdccb8f37ca083107ba.webp)
第三步:初始化数据库表结构
- 在项目代码的 config 目录中找到 pg.sql 文件,复制全部内容
![图片[14] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/75ff6dab38414cf791f9664df604bbca.webp)
create table public.links (
link text not null,
short text not null,
id bigint generated by default as identity not null,
created_at timestamp with time zone not null default now(),
constraint links_pkey primary key (id)
) TABLESPACE pg_default;
- 在 Supabase 控制台中,选择”SQL Editor”
- 点击”+”号,选择”Create a new Snippet”
- 粘贴复制的 SQL 代码,点击”Run”执行
![图片[15] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/834c675f02ff60b67636994a903b0b96.webp)
第四步:测试使用
现在,你的短链接服务已经准备就绪:
- 回到Vercel项目页面,找到项目访问链接
![图片[16] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/c5505519a23032dd44556e3dab7f625d.webp)
打开链接,输入任意URL测试生成功能
![图片[17] - 从零搭建一个免费稳定的私有短链接服务 - 狐狸资源网](https://yk2.fenx.top/e/6d0eb5eced274de57364910472deceb0.webp)












![[API]今日诗词 – 每日一句,一款优质的一言API - 狐狸资源网](https://yk2.fenx.top/e/6109dc5c8749b81f2f69a1264e3c38a4.png)
















暂无评论内容