Skip to content
Astro-PaperMod
Go back

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

Edit page

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

最终目录结构

dir

以上是本项目完成时/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_datamysql.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插件也建议启用,否则后缀只是按照数字排序,没内味😉

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

240712153704

frontend

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

重启程序

docker compose restart

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

image-20240712154707361

其他美化和插件

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

{% 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 ?> 后重启程序即可。

240711202807

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

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

240713113450

References


Edit page
Share this post on:

Previous Post
使用proxychains4进行代理测试
Next Post
【数论】欧拉筛法-埃拉托斯特尼筛法