URL短链地址生成器Pckd

网友 JOJO 在找生成短链的应用,老苏之前推荐的是 Kutt ,奈何搞不定 🤦,换成了Pckd ,用着似乎也还不错

什么是 Pckd ?

Pckd 是一个完全可定制的、开源的、免费使用的、以可用设计为中心的、跟踪密集型的 URL 缩短器,具有很棒的功能。

前期准备

获取 API key

Pckd 使用 IP Registry进行地理位置查找,以跟踪命中率

免费版可以查找 100000 次,需要从 https://ipregistry.co 网站注册登录之后,在 API keys 中点击红框部分,来获取 API key

环境变量

  • postgres:14
可变
POSTGRES_DB 数据库库名,默认的就可以
POSTGRES_USER 数据库用户,默认的就可以
POSTGRES_PASSWORD 数据库密码,密码建议改掉
  • petrleocompel/pckd-server
可变
DATABASE_TYPE 数据库类型,默认的 postgres 就可以
DATABASE_URL 数据库地址,默认为 postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}
JWT_SECRET 加密因子,可以用 openssl rand -base64 长度 来生成
IPREGISTRY_API_KEY IP Registry 网站获取的 API key

  • petrleocompel/pckd-client
可变
BACKEND_URL 服务端地址,默认的就可以,不需要改

命令行安装

如果你熟悉命令行,可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
version: "3"

services:
server:
image: petrleocompel/pckd-server
container_name: pckd-server
volumes:
- ./logs:/home/node/app/logs
environment:
- DATABASE_TYPE=postgres
- DATABASE_URL=postgresql://postgres:postgres@db/pckd
- JWT_SECRET= verysecurestring
- IPREGISTRY_API_KEY=<ipregistry 获取的 API key>
depends_on:
- db

frontend:
image: petrleocompel/pckd-client
container_name: pckd-client
ports:
- 8016:80
environment:
- BACKEND_URL=http://server:4000
depends_on:
- server

db:
image: postgres:14
container_name: pckd-postgres
volumes:
- ./data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=pckd

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 pckd 和 子目录
mkdir -p /volume2/docker/pckd/{data,logs}

# 进入 pckd 目录
cd /volume2/docker/pckd

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

软件启动速度应该算比较快的,在容器 pckd-server 的日志中看到下面的信息就可以开始访问了

在浏览器中输入 http://群晖IP:8016 就能看到主界面

输入 https://laosu.ml 测试一下

生成了短地址

可以直接访问,但是 Copy 不了

当然后缀也可以在 Advanced Options 中支持自定义

反向代理

短链接应该是放在公网用的,用局域网 IP 方式显然是不合理的

虽然老苏已经尽量缩短 url,但是实际上还是有点长,毕竟是二级域名,有条件的话,最好用短的一级域名 😂

SSL 还是没问题就全选

用域名 https://st.laosu.ml:444 访问,生成的短链 Copy 时就不会显示 Unable to copy the text

实际上生成的链接是 https://st.laosu.ml:444/e0lit88,如果是 https://laosu.ml/e0lit88 就更好了

域名倒是简单,但是考虑到还有一堆工作需要完成,比如备案、解析等等,想想还是算了吧

后台管理

点右上角的 Login –> Sign up ,注册账号

有账号的话直接登录

进入 Dashboard面板

生成短链之后,可以将其分享或者用于博客等地方

最后上一张官方的图,看得出来 Pckd 还有访问跟踪的功能

结语

目前这个版本已经不再更新了,从官网看正在集中精力研发 Pckd V2

另外官方提供了 Pckd 与几款同类产品的对比,王婆卖瓜,看看就好了,起码可以了解下有哪几款类似的产品

参考文档

Just-Moh-it/Pckd: The most ⚡️ analytics-intensive 💪 self-hostable 🔗 URL shortener, with an amazing UI 😍
地址:https://github.com/Just-Moh-it/Pckd

Hello from Pckd - Docs | Pckd - Docs
地址:https://docs.pckd.me/

Prebuilt Docker image · Issue #32 · PckdHQ/Pckd
地址:https://github.com/PckdHQ/Pckd/issues/32

Pckd - The most ⚡️ analytics-intensive 💪 self-hostable 🔗 URL shortener, with an amazing UI 😍 : selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/srn4wo/pckd_the_most_analyticsintensive_selfhostable_url/