一、获取GeoLite2数据库许可证密钥
Shlink利用MaxMind的GeoLite2数据库来定位访客,所以我们需要先生成许可证密钥
进入https://www.maxmind.com/en/accounts/current/license-key
如果没注册过的话先注册并登录
点击Generate new license key
按下图所示选择,许可描述随意,点击确定
将生成的许可秘钥记录下来,然后就可以关掉网页了(密钥只会展示一次,请妥善保存)
二、使用 docker 镜像安装 Shlink 并使用 nginx 反代
1.使用默认sqlite数据库
docker run:
docker run \ --name my_shlink \ -p 25600:8080 \ -e DEFAULT_DOMAIN=yourshlink.com \ -e IS_HTTPS_ENABLED=true \ -e GEOLITE_LICENSE_KEY=Ojf****di****3X0 \ shlinkio/shlink:stable
其中的
-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(如下图),就代表你反代成功了
2.使用其他数据库(支持mysql、maria、postgres、mssql)
如果要使用其他数据库只需要在 docker run 的代码里添加相应的环境变量就可以了,例如
docker run \ --name my_shlink \ -p 25600:8080 \ -e DEFAULT_DOMAIN=shlink.io \ -e IS_HTTPS_ENABLED=true \ -e GEOLITE_LICENSE_KEY=Ojf****di****3X0 \ -e DB_DRIVER=mysql \ -e DB_PORT=3306 \ -e DB_NAME=shlink \ -e DB_USER=root \ -e DB_PASSWORD=123abc \ -e DB_HOST=yourdatabase.com \ shlinkio/shlink:stable
其中
-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 \ 为数据库地址
三、使用 docker 镜像安装 Shlink 的 web面板【并使用 nginx 反代(可选)】
我们先获取 Shlink 的 API密钥
使用命令行运行命令,其中的 my\_shlink 为 Shlink 的容器名
docker exec -it my_shlink shlink api-key:generate
得到 Shlink 的 API密钥,记录下来
接下来我们要面临一个选择,是否预配置 Shlink 服务器信息
1.如果没有预配置,那你第一次从浏览器访问 Shlink Web 面板时,需要配置 shlink 服务器信息,这些信息填写后是保存在本地存储中的,那就意味着如果你使用另一台电脑或清空了浏览器cookie,你就需要重新配置 shlink 服务器信息。
2.如果预配置了 Shlink 服务器信息,那就意味着任何一个人如果知道了你的面板地址并且能访问,那他就可以管理你的 Shlink ,所以如果你选择预配置的话那你就需要隐藏你的面板地址,或者限制访问设备,或者将面板地址设置为密码访问。
1.选择不预配置 Shlink 服务器信息
这样的话搭建起来就比较简单
直接docker run,记得端口和Shlink不能一样
docker run \ --name shlink-web-client \ -p 25601:80 \ shlinkio/shlink-web-client
2.选择预配置 Shlink 服务器信息
这样的话你可以在docker run的时候直接指定环境变量
docker run \ --name shlink-web-client \ -p 25601:80 \ -e SHLINK_SERVER_URL=http(s)://yourshlink.com/ \ -e SHLINK_SERVER_API_KEY=e51befb9-c5c2-4b**-****-******892927 \ shlinkio/shlink-web-client
-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
四、使用 Web 面板管理 Shlink
访问IP : Web面板端口或反代后的域名访问面板
1.选择不预配置 Shlink 服务器信息
点击 Add a server
Name 为备注, URL 为Shlink反代后的域名, APIKey 为 Shlink 的 API密钥,点击 Create serve
2.选择预配置 Shlink 服务器信息
直接访问即可,在首页就可以添加短链接
如果需要更详细的参数点击 Create short URL 即可,具体功能参考下图谷歌的翻译
List short URLs 里可以管理已经添加的短链接
Manage tags 里可以管理已经添加的标签
Manage domains 里可以管理 shlink 的相关设置
点击上图的Edit redirects即可设置 shlink 域名相关的重定向
原文链接:https://developer.aliyun.com/article/1153398