使用YOURLS Docker版,搭建短链接服务
最终目录结构

以上是本项目完成时/root/yourls目录的结构,由于本项目部分组件的教程文档过于简陋,所以很容易放错位置,请务必注意目录的结构。
基础环境安装
首先,创建工作目录,比如/root/yourls,在其中新建docker-compose.yml,加入以下内容:
version: "3.1"
services:
yourls:
image: yourls
restart: always
ports:
- 34324:80
environment:
YOURLS_DB_NAME: yourls
YOURLS_DB_USER: yourls
YOURLS_DB_PASS: yourls
YOURLS_SITE: https://url.xxxx.xxx
YOURLS_USER: admin
YOURLS_PASS: admin
volumes:
- ./yourls_data/:/var/www/html
mysql:
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: yourls
MYSQL_USER: yourls
MYSQL_PASSWORD: yourls
volumes:
- ./mysql/db/:/var/lib/mysql
- ./mysql/conf/:/etc/mysql/conf.d
- “34324”端口为外部暴露端口,根据需要修改
- YOURLS_DB_NAME -> MYSQL_DATABASE,YOURLS_DB_USER -> MYSQL_USER,YOURLS_DB_PASS -> MYSQL_PASSWORD,三组变量一一对应,根据自己需要填写
- YOURLS_SITE为网站地址,填写自己即将使用的域名
- YOURLS_USER/PASS是管理员登录账号密码,根据需要填写
- 为便于修改内部文件,我们使用挂载卷的形式,
yourls.volumes挂载在本地的/root/yourls/yourls_data,mysql.volumes挂载在本地的/root/yourls/mysql中的两个文件夹
运行
docker compose up -d
反向代理
若要使用域名访问,请设置反向代理,具体方式可以查看之前文章,不再赘述。
完成反向代理配置之后,打开url.xxxx.xxx/admin点击install进行安装,输入YOURLS_USER/PASS中设置的管理员账号密码,现在你就可以看到一个简陋的后台页面了。
但是请注意,默认的yourls是只有后台管理员界面的,当你尝试访问url.xxxx.xxx只能得到大大的Forbidden
如果你没有更多需求,那么通过这个url.xxxx.xxx/admin页面的管理员后台也是勉强可以使用的,但是这并不是我们印象中的所谓“短链接”平台,所以我们要安装前台页面,顺便给管理员后台美化一下。
Sleeky美化包的安装
访问下方仓库下载主题包并查看简单教程
原作者长期未维护,下方仓库中的代码是本文作者根据各issue中提到的解决方法优化之后的版本,使用此代码不会出现FAQ中的问题
{% note primary %}
MegaSuite/Sleeky-Docker: Based on Flynntes/Sleeky, optimised for docker deployment.
{% endnote %}
backend
下载之后解压,将其中的sleeky-backend移动至yourls/yourls_data/user/plugins,刷新后在管理员后台manage plugins选项中激活sleeky backend插件(点击action列的activate),顺道提一句,自带的random shorturls插件也建议启用,否则后缀只是按照数字排序,没内味😉
插件启用后记得刷新,否则浏览器缓存会导致看不到生效后的效果
frontend
打开下载的主题包中的sleeky-frontend文件夹,将其中的frontend文件夹和index.php文件复制到/root/yourls/yourls_data目录中,注意看文章开头给出的目录结构,这一步开发者文档中的说明有些模糊,容易造成误解。
重启程序
docker compose restart
打开url.xxxx.xxx就可以查看前台页面
其他美化和插件
可以进入以下仓库查看更多皮肤与插件
{% note success %}
YOURLS/awesome: 🎉 A curated list of awesome things related to YOURLS
{% endnote %}
FAQ
页面显示不正常
在上述方法安装前台页面之后,可能会出现显示页面显示不正常的情况,对/root/yourls/yourls_data/frontend/header.php进行修改,删除下图第15行中的<?php echo $YOURLS_SITE ?> 后重启程序即可。
更换主题后,管理员无法登录
对/root/yourls/yourls_data/user/plugins/sleeky-backend/plugin.php进行修改,if (yourls_is_valid_user() != 1) {修改为if( defined( 'YOURLS_USER' ) ) {,如下图所示: