使用docker搭建Shlink个人向短链接服务

#本文使用了宝塔面板,如不愿使用宝塔面板请自行解决部分技术性问题(例如docker安装,nginx反代)

最近淘了个比较短的域名,没什么用处,就打算搭建一个私人用的短链接服务,然后就找到了Shlink

Shlink 是一个基于 PHP 的开源项目,官网地址:https://shlink.io/,能够提供个人向短链接服务,可通过API、CLI或者web面板进行管理;支持自定义短网址、访问统计、标签管理、访问次数和时间限制、生成短链二维码等功能。建议搭建在国外服务器且仅作为个人服务使用。

如果没注册过的话先注册并登录

点击Generate new license key

按下图所示选择,许可描述随意,点击确定

将生成的许可秘钥记录下来,然后就可以关掉网页了(密钥只会展示一次,请妥善保存)

docker run:

其中的

-p 25600:8080 \ 可以将25600替换为你想要映射的主机端口

-e DEFAULT_DOMAIN=yourshlink.com \ 将yourshlink.com替换为你的域名

-e IS_HTTPS_ENABLED=true \ 如果使用https请填 true

-e GEOLITE_LICENSE_KEY=Ojfxxxxdixxxx3X0 \ 将Ojfxxxxdixxxx3X0替换为你第一步生成的GeoLite2数据库许可证密钥

使用命令行执行修改好的命令,如果出现类似下图的提示

不要惊慌,这证明你的Shlink搭建成功了

接下来使用宝塔面板进行nginx反代(或自行设置反代)

新建一个网站,域名为刚刚docker run 里填的域名

按需决定是否申请ssl证书

设置nginx反代,目标url里的端口就是你自定义的端口,点击提交

这时候访问你的域名,如果显示404(如下图),就代表你反代成功了

如果要使用其他数据库只需要在 docker run 的代码里添加相应的环境变量就可以了,例如

-e DB_DRIVER=mysql \ 为数据库类型

-e DB_PORT=3306 \ 为数据库端口,默认为DB_DRIVER中数据库的默认端口

-e DB_NAME=shlink \ 为数据库中使用的表名

-e DB_USER=root \ 为数据库用户名

-e DB_PASSWORD=123abc \ 为数据库密码

-e DB_HOST=yourdatabase.com \ 为数据库地址

我们先获取 Shlink 的 API密钥

使用命令行运行命令,其中的 my_shlink 为 Shlink 的容器名

得到 Shlink 的 API密钥,记录下来

接下来我们要面临一个选择,是否预配置 Shlink 服务器信息

1.如果没有预配置,那你第一次从浏览器访问 Shlink Web 面板时,需要配置 shlink 服务器信息,这些信息填写后是保存在本地存储中的,那就意味着如果你使用另一台电脑或清空了浏览器cookie,你就需要重新配置 shlink 服务器信息。

2.如果预配置了 Shlink 服务器信息,那就意味着任何一个人如果知道了你的面板地址并且能访问,那他就可以管理你的 Shlink ,所以如果你选择预配置的话那你就需要隐藏你的面板地址,或者限制访问设备,或者将面板地址设置为密码访问。

这样的话搭建起来就比较简单

直接docker run,记得端口和Shlink不能一样

这样的话你可以在docker run的时候直接指定环境变量

-e SHLINK_SERVER_URL=http(s)://yourshlink.com/ \ 是你的shlink的域名

-e SHLINK_SERVER_API_KEY=e51befb9-c5c2-4b**-****-******892927 \ 是上面你获取的 Shlink API 密钥

使用命令行执行修改好的命令,如果出现类似下图的提示则代表你的 Shlink Web 面板搭建好了

接下来我们可以将 Shlink Web 面板进行nginx反代(反代域名不能和 Shlink 的反代域名一样),具体方式参考 Shlink 的 nginx 反代,或者我们不反代,直接访问 IP:端口 来管理 Shlink

访问IP : Web面板端口或反代后的域名访问面板

点击 Add a server

Name 为备注, URL 为Shlink反代后的域名, APIKey 为 Shlink 的 API密钥,点击 Create serve

直接访问即可,在首页就可以添加短链接

如果需要更详细的参数点击 Create short URL 即可,具体功能参考下图谷歌的翻译

List short URLs 里可以管理已经添加的短链接

Manage tags 里可以管理已经添加的标签

Manage domains 里可以管理 shlink 的相关设置

点击上图的Edit redirects即可设置 shlink 域名相关的重定向

腾云先锋(TDP,Tencent Cloud Developer Pioneer)是腾讯云 GTS 官方组建并运营的技术开发者群体。这里有最专业的开发者&客户,能与产品人员亲密接触,专有的问题&需求反馈渠道,有一群志同道合的兄弟姐妹。来加入属于我们开发者的社群吧 。

原文链接:https://cloud.tencent.com/developer/article/2011443

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享