使用YOURLS Docker版,搭建短链接服务

本文最后更新于:2024年7月13日 中午

使用YOURLS Docker版,搭建短链接服务

最终目录结构

dir

以上是本项目完成时/root/yourls目录的结构,由于本项目部分组件的教程文档过于简陋,所以很容易放错位置,请务必注意目录的结构。

基础环境安装

首先,创建工作目录,比如/root/yourls,在其中新建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
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_datamysql.volumes挂载在本地的/root/yourls/mysql中的两个文件夹

运行

1
docker compose up -d

反向代理

若要使用域名访问,请设置反向代理,具体方式可以查看之前文章,不再赘述。

完成反向代理配置之后,打开url.xxxx.xxx/admin点击install进行安装,输入YOURLS_USER/PASS中设置的管理员账号密码,现在你就可以看到一个简陋的后台页面了。

但是请注意,默认的yourls是只有后台管理员界面的,当你尝试访问url.xxxx.xxx只能得到大大的Forbidden

如果你没有更多需求,那么通过这个url.xxxx.xxx/admin页面的管理员后台也是勉强可以使用的,但是这并不是我们印象中的所谓“短链接”平台,所以我们要安装前台页面,顺便给管理员后台美化一下。

Sleeky美化包的安装

访问下方仓库下载主题包并查看简单教程

原作者长期未维护,下方仓库中的代码是本文作者根据各issue中提到的解决方法优化之后的版本,使用此代码不会出现FAQ中的问题

backend

下载之后解压,将其中的sleeky-backend移动至yourls/yourls_data/user/plugins,刷新后在管理员后台manage plugins选项中激活sleeky backend插件(点击action列的activate),顺道提一句,自带的random shorturls插件也建议启用,否则后缀只是按照数字排序,没内味😉

插件启用后记得刷新,否则浏览器缓存会导致看不到生效后的效果

240712153704

frontend

打开下载的主题包中的sleeky-frontend文件夹,将其中的frontend文件夹和index.php文件复制到/root/yourls/yourls_data目录中,注意看文章开头给出的目录结构,这一步开发者文档中的说明有些模糊,容易造成误解。

重启程序

1
docker compose restart

打开url.xxxx.xxx就可以查看前台页面

image-20240712154707361

其他美化和插件

可以进入以下仓库查看更多皮肤与插件

FAQ

页面显示不正常[1]

在上述方法安装前台页面之后,可能会出现显示页面显示不正常的情况,对/root/yourls/yourls_data/frontend/header.php进行修改,删除下图第15行中的<?php echo $YOURLS_SITE ?> 后重启程序即可。

240711202807

更换主题后,管理员无法登录

/root/yourls/yourls_data/user/plugins/sleeky-backend/plugin.php进行修改,if (yourls_is_valid_user() != 1) {修改为if( defined( 'YOURLS_USER' ) ) {,如下图所示:

240713113450

References


使用YOURLS Docker版,搭建短链接服务
https://www.0co.dev/yourls-docker/
作者
Konrad Gerrens
发布于
2024年7月12日
许可协议