惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
罗磊的独立博客
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
P
Proofpoint News Feed
J
Java Code Geeks
小众软件
小众软件
Y
Y Combinator Blog
M
MIT News - Artificial intelligence
A
About on SuperTechFans
Last Week in AI
Last Week in AI
Jina AI
Jina AI
云风的 BLOG
云风的 BLOG
阮一峰的网络日志
阮一峰的网络日志
D
DataBreaches.Net
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Project Zero
Project Zero
美团技术团队
I
Intezer
Vercel News
Vercel News
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
N
Netflix TechBlog - Medium
F
Fortinet All Blogs
T
Threatpost
P
Privacy International News Feed
Latest news
Latest news
K
Kaspersky official blog
博客园 - 聂微东
月光博客
月光博客
P
Palo Alto Networks Blog
T
The Exploit Database - CXSecurity.com
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
D
Docker
Cisco Talos Blog
Cisco Talos Blog
P
Privacy & Cybersecurity Law Blog
L
LINUX DO - 热门话题
Blog — PlanetScale
Blog — PlanetScale
Security Latest
Security Latest
Know Your Adversary
Know Your Adversary
Recent Announcements
Recent Announcements
T
Tenable Blog
B
Blog RSS Feed
Recorded Future
Recorded Future
雷峰网
雷峰网
SecWiki News
SecWiki News

方寸之間

修复 Arch Linux 的内核缺失问题 - 方寸之間 安装定制化 Vim - 方寸之間 树莓派配置旁路由过程记录 - 方寸之間 Cloudflare Tunnel 不完全上手指南 - 方寸之間 解除 New Bing 地区和浏览器限制的方法 - 方寸之間 FRP 上手教程 - 方寸之間 深入理解 Linux nohup 命令 - 方寸之間 C++智能指针是什么 - 方寸之間 PGP 工作原理详解 - 方寸之間 如何恢复 Windows EFI 分区 - 方寸之間 Scaleway IPV6 server 申请及使用攻略 - 方寸之間 Arch Linux 升级系统提示签名无效 - 方寸之間 Arch Linux 音响有杂音的解决办法 - 方寸之間 Arch Linux 如何切换内核 - 方寸之間 Django 项目时区更改错误的解决方案 - 方寸之間 超简单的 Arch Linux + Windows 双启动教程 - 方寸之間 使用 UFW 配置 Linux 防火墙 - 方寸之間 Git 中的一个特殊 hash - 方寸之間 深入理解数据库事务 - 方寸之間 CRLF 和 LF 之间的区别与联系 - 方寸之間 DNS 的更新是如何工作的? - 方寸之間 浅析 Linux 的 cron 命令 - 方寸之間 如何快速查看 github 代码库中早期 commits - 方寸之間 Build site with Franklin.jl - 方寸之間 iwd 的使用教程 - 方寸之間 超好用的 UML 工具推荐 - 方寸之間 ArchLinux 安装配置笔记 (Updated) - 方寸之間 如何将 Julia 添加到 Jupyter Notebook - 方寸之間 费曼技巧:最好的学习方式 - 方寸之間 How to Create Linux Desktop Entry - 方寸之間 Make a TODO robot with Github Actions - 方寸之間 C++继承 多态 虚函数 - 方寸之間 C++ inline 关键字详解 - 方寸之間 C++ Static 关键字详解 - 方寸之間 C++ type conversion notes - 方寸之間 Solution for _CRT_SECURE_NO_WARNINGS error - 方寸之間 IR Homework - 方寸之間 Customize Ubuntu themes, icons and Shell - 方寸之間 恢复右键菜单的新建命令 - 方寸之間 Hugo+Github 搭建个人博客 - 方寸之間
黑科技:使用 GitHub 搭建自己的短链接服务 - 方寸之間
Mercas · 2020-12-01 · via 方寸之間

使用两个 GitHub 仓库和一个域名就能拥有免费的短链接服务。

前两天偶然在 GitHub 发现一个挺有意思的项目,可以不依赖自己的服务器、数据库来构建一个短链接服务。自己尝试了一下,还挺简单的。这里记录一下自己的构建流程,感兴趣的小伙伴可以自己尝试一下。

Prerequisites#

  1. 新建两个 GitHub 仓库,一个用来做服务器存储源码、提供服务(url_shortener),一个用来做数据库存储链接(url_shortener_db)
  2. 注册一个域名(可选),如果没有的话,可以直接使用 GitHub pages 的域名(username.github.io)。不过我是用了自己注册的域名:blog.johan.zone

获取及配置源码#

首先,你需要获取这个服务的源代码,你可以直接 fork 这个源码仓库,当然也欢迎 fork 我的代码仓库

然后,克隆自己的仓库到本地(当然,你也可以直接在 GitHub 网页上操作),修改404.html文件的GITHUB_ISSUES_LINK字段,指向自己的url_shortener_db仓库,这个仓库的issues就是作为存储你的链接的数据库:

var GITHUB_ISSUES_LINK =

"https://api.github.com/repos/username/repo-name/issues/";

注意把上面的username repo-name替换为自己的用户名及仓库名。还有,最后的/不要漏掉,这是获取链接的关键

配置 GitHub Pages#

接下来就是配置 Github Pages 了,这部分也很简单。

点击仓库的Settings选项,找到其中的GitHub Pages部分,然后配置Source中的分支: image

下面的部分根据自己需要选择:

如果你不使用自己的域名#

  1. 删除仓库中的CNAME文件
  2. 404.html文件中的var PATH_SEGMENTS_TO_SKIP = 0;改为var PATH_SEGMENTS_TO_SKIP = 1;
  3. 到这里就结束了,你可以直接跳到下一部分

如果你用了自己的域名#

  1. 到你的域名服务商,添加一个 CNAME 解析,域名指向username.github.io,注意替换username为自己的 GitHub 用户名
  2. 等待几分钟(域名解析生效需要时间,所以最好提前做),再进入到 github pages 部分,键入你自己的域名,最好勾选Enforce HTTPS,然后点击Save,刷新页面,会显示下面的内容: image
  3. CNAME文件中的域名更改为你配置好的域名
  4. 到此,就配置完成了,接下来可以测试一下

测试效果#

  1. 在你开始作为数据库的 GitHub 仓库创建一个 issue,标题就是你需要缩短的链接,其他什么都不需要做,直接 Submit 就行了。

  2. 等待一会儿,然后在浏览器查询链接https://<your-domain>/<issue-no>。例如:https://tldr.plus/2,点击这个链接会跳转到我的博客。其中的tldr.plus是我的域名,1代表 issue 的楼层数。

总结#

如果大家觉得麻烦,也可以使用我搭建的服务,你可以点击这里提供链接。

有人在这里给了一个比较好的解释,大家可以参考一下。

参考#

https://github.com/nelsontky/gh-pages-url-shortener