群晖上搭建短链接服务Yourls

news2024/11/18 19:57:51

在这里插入图片描述

什么 Yourls ?

YOURLS是一组 PHP 脚本,允许您在服务器上运行您自己的 URL 缩短器。您将完全控制您的数据、详细统计数据、分析、插件等。它是免费且开源的。

安装

建数据库

老苏用了群晖自带的 MariaDB 10 数据库

在这里插入图片描述

phpMyAdmin 中创建名为 yourls 的空数据库

为便于说明,假设数据库密码为 123456

在这里插入图片描述

所以根据上面的设置,最后得到的数据库相关的参数如下:

  • 数据库主机:192.168.0.197,与群晖主机 IP 一致;
  • 数据库端口:3307,如果用 MariaDB 5 就是 3306,但老苏没测;
  • 数据库用户:yourls
  • 数据库密码:123456
  • 数据库库名:yourls,因为勾选了与用户同名;

安装镜像

在群晖上以 Docker 方式安装。

【注意】:在老苏的低内核版本的机器上,会在初始化时出现下面的错误

AH00141: Could not initialize random number generator

解决办法要么换机器,要么采用 fpm 版本 + nginx web 服务,老苏为了省事,选择了换机器,毕竟像老苏这样还在使用 DSM6.17 的应该不多了吧 😂

在注册表中搜索 yourls ,选择第一个 yourls,版本选择 latest

本文写作时, latest 版本对应为 1.9.2

在这里插入图片描述

docker 文件夹中,创建一个新文件夹 yourls,并在其中建一个子文件夹 data

文件夹装载路径说明
docker/yourls/data/var/www/html存放网页文件等

在这里插入图片描述

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
802780

在这里插入图片描述

环境

可变
YOURLS_DB_HOST数据库主机 + 端口
YOURLS_DB_USER数据库用户
YOURLS_DB_PASS数据库密码
YOURLS_DB_NAME数据库库名
YOURLS_USER管理员用户名
YOURLS_PASS管理员密码
YOURLS_SITE网站地址

在这里插入图片描述

更多环境变量的说明,可以参考官方文档:https://yourls.org/docs/guide/essentials/configuration

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 yourls 和 子目录
mkdir -p /volume1/docker/yourls/data

# 进入 yourls 目录
cd /volume1/docker/yourls

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name yourls-web \
   -p 8027:80 \
   -v $(pwd)/data:/var/www/html \
   -e YOURLS_DB_HOST=192.168.0.197:3307 \
   -e YOURLS_DB_USER=yourls \
   -e YOURLS_DB_PASS=123456 \
   -e YOURLS_DB_NAME=yourls \
   -e YOURLS_USER=admin \
   -e YOURLS_PASS=admin \
   -e YOURLS_SITE=http://192.168.0.197:8027 \
   yourls

其中 192.168.0.197 为老苏的群晖主机 IP

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: "3.5"

services:
  yourls:
    image: yourls
    container_name: yourls-web
    restart: always
    ports:
      - "8027:80"
    environment:
      YOURLS_DB_HOST: 192.168.0.197:3307
      YOURLS_DB_USER: yourls
      YOURLS_DB_PASS: 123456
      YOURLS_DB_NAME: yourls
      YOURLS_USER: admin
      YOURLS_PASS: admin
      YOURLS_SITE: http://192.168.0.197:8027
    volumes:
      - ./data/:/var/www/html

然后执行下面的命令

# 新建文件夹 yourls 和 子目录
mkdir -p /volume1/docker/yourls/data

# 进入 yourls 目录
cd /volume1/docker/yourls

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8027 会看到错误的显示

在这里插入图片描述

实际上应该是要访问 http://群晖IP:8027/admin

在这里插入图片描述

Install YOURLS 开始安装

在这里插入图片描述

YOURLS Administration Page 跳转到登录页面

在这里插入图片描述

输入前面设置的 YOURLS_USERYOURLS_PASS 的值

在这里插入图片描述

登录成功后的主界面

在这里插入图片描述

https://laosu.cf 为例

在这里插入图片描述

默认生成的 url 够短的

在这里插入图片描述

当然实际应用中,还需要内网穿透到公网,url 长度主要取决于你的域名的长短了

插件

官方在 GitHub 上总结了非常多的插件,大约有 200 多个,可以根据自己的需求找到想使用的插件。

官方插件地址:https://github.com/YOURLS/awesome

进入 Manage Plugins,默认安装了 6 个插件,但实际上并没有激活

在这里插入图片描述

老苏看了下文档,使用插件的基本流程如下:

  • 将插件拷贝到 /yourls/data/user/plugins/插件名/ 目录下;
  • 然后在管理页面激活插件;

在这里插入图片描述

所有的插件都可以使用这样的方式安装启用,有兴趣可以试试

参考文档

YOURLS/YOURLS: 🔗 Y̲our O̲wn U̲R̲L̲ S̲hortener - the 𝑑𝑒 𝑓𝑎𝑐𝑡𝑜 standard self hosted URL shortener in PHP
地址:https://github.com/YOURLS/YOURLS

YOURLS/docker: 📦 Docker Images for YOURLS
地址:https://github.com/YOURLS/docker

YOURLS: Your Own URL Shortener
地址:https://yourls.org/

YOURLS/awesome: 🎉 A curated list of awesome things related to YOURLS
地址:https://github.com/YOURLS/awesome

【好玩儿的 Docker 项目】10 分钟搭建一个自己的短链接服务 ——YOURLS | 我不是咕咕鸽
地址:https://blog.laoda.de/archives/docker-compose-install-yourls/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1313804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue 子传父 组件传参 defineEmits

defineEmits 属性:用于创建自定义事件,接收子组件传递过来的数据。 注意:如果自定义事件的名称,和原生事件的名称一样,那么只会触发自定义事件。 defineEmits 仅适用于 setup 语法糖,其它写法请见&#x…

Qt容器QMdiArea 小部件提供一个显示 MDI 窗口的区域

## QMdiArea ## 控件简介 QMdiArea 继承 QAbstractScrollArea。QMdiArea 小部件提供一个显示 MDI 窗口的区域。QMdiArea的功能本质上类似于MDI窗口的窗口管理器。大多数复杂的程序,都使用MDI框架,在 Qt designer 中可以直接将控件 MDI Area 拖入使用。 ## 用法示例 例 qm…

注意std::shared_ptr的循环引用

指针智能是RAII的思想的具体体现。利用对象生命周期来管理资源。 在C11中,引入shared_ptr、weak_ptr和unique_ptr。 share_ptr是一个能有效解决赋值和拷贝构造的引用技术。 std::shared_ptr通过引用计数的方式来管理对象的生命周期,但是如果两个对象互…

『番外篇三』Swift “乱弹”之带索引遍历异步序列(AsyncSequence)

概览 在 Swift 开发中,我们往往在遍历集合元素的同时希望获得元素对应的索引。在本课中,我们将向小伙伴们展示除 enumerated() 方法之外的几种实现思路。在玩转普通集合之后,我们将用“魔法棒”进一步搞定异步序列带索引遍历的实现。 在本篇博主中,您将学到以下内容: 概…

同时获取el-select的label和value

ui如下: 需求如下: 在点击确认的时候,将id和name都传给一个接口,但是ui只用展示name,name用v-model绑定给input框,但是id不知道怎么传给后端。 解决方法如下: vue中elementUi的el-select同时…

jmeter,csv文件参数化+断言 实现一个接口的case

1、case 及其 测试数据 注意保存文件的编码格式 id,name,limit,status,address,start_time,assert_status,assert_message 100,小米100,1000,1,某某会展中心101,2023-8-20 14:20,200,add event success ,,,,,,10021,parameter error 100,小米102,1002,1,某某会展中心103,2023-…

postman接口测试之Postman配置环境变量和全局变量

前言  我们在测试的过程中,遇到最多的问题也可以是环境的问题了吧,今天开发用了这个测试环境,明天又换了另一个测试环境,这样对于我们测试非常的麻烦,特别最接口的时候需要来回的输入环境地址比较麻烦,今天…

LVS负载均衡集群——NAT地址转换模式与DR直接路由模式

1. LVS集群基本介绍 Cluster,集群、群集。 由多台主机构成,但对外只表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机。 2. 集群的类型 2.1 负载均衡群集(Load Balanc…

安路IP核应用举例(OSC、UART)

1.OSC(内部振荡器) 按照Project->New Project顺序新建工程后,后按照Tools->IP Generator顺序,创建IP核,如下图: 安路FPGA的内置OSC振荡模块频率可选30MHz、60MHz。 可选Verilog或VHDL语言。 如图,生成的.v文件只…

外包干了4个月,测试技术退步明显

先说一下自己的情况,本科生,20年通过校招进入杭州某软件公司,干了3年的功能测试,当然有半年是被封在了家里,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我…

灾备建设中,虚拟机异构平台恢复技术原理与应用

在如今混合云环境下,实现异构虚拟化恢复与迁移面临着极大挑战。不同于市面上有代理的恢复方案,虚拟机无代理跨平台恢复解决方案利用自主研发的转换引擎(VMCE)对已备份虚拟机文件进行高效的存储格式转换和配置信息转换,…

Deep Graph Contrastive Representation Learning

摘要 如今,图表示学习已成为分析图结构数据的基础。受最近成功的对比方法的启发,在本文中,我们提出了一种新的无监督图表示学习框架,该框架利用节点级别的对比目标。具体来说,我们通过破坏生成两个图视图,…

Jmeter接口自动化测试操作流程(超详细整理)

在企业使用jmeter开展实际的接口自动化测试工具,建议按如下操作流程, 可以使整个接口测试过程更规范,更有效。 接口自动化的流程: 1、获取到接口文档:swagger、word、excel ... 2、熟悉接口文档然后设计测试用例&am…

基于人工智能算法与视频监控相结合的EasyCVR智能游乐园监控方案

随着圣诞节的到来,人们都已经在规划如何安排平安夜活动,游乐园俨然成为了人们的首选。游乐园人员流量大且密集,特别是在节假日和重大节日,人满为患,极易发生事故,为保证游乐场安全运营,减少事故…

JVM虚拟机系统性学习-JVM调优之GC日志分析

JVM 调优 首先,为什么要 JVM 调优呢? JVM 调优的目的就是为了让应用程序使用最小的硬件消耗来承载更大的吞吐量 什么情况下需要 JVM 调优呢? 系统吞吐量下降,或系统延迟较高出现 OOMFull GC 频繁GC 停顿时间过长(超…

OneLLM:对齐所有模态的框架!

深度学习自然语言处理 原创作者:wkk 今天为大家介绍香港中文大学联合上海人工智能实验室的最新研究论文,关于在LLM时代将各种模态的信息对齐的框架。 论文:OneLLM: One Framework to Align All Modalities with Language地址:http…

vue中实现使用相框点击拍照,canvas进行前端图片合并下载

拍照和相框合成,下载图片dome 一、canvas介绍 Canvas是一个HTML5元素,它提供了一个用于在网页上绘制图形、图像和动画的2D渲染上下文。Canvas可以用于创建各种图形,如线条、矩形、圆形、文本等,并且可以通过JavaScript进行编程操作。 Canvas元素本身是一个矩形框,可以通…

《Kotlin核心编程》笔记:面向对象

kotlin 中的类 // Kotlin中的一个类 class Bird {val weight: Double 500.0val color: String "blue"val age: Int 1fun fly() { } // 全局可见 }把上述代码反编译成Java的版本,然后分析它们具体的差异: public final class Bird {privat…

逆向经历回顾总结

逆向经历回顾总结 一、前言 将自己的逆向经验做个总结,希望新手对逆向大方向能快速了解。高手有啥不一样的经验也可以讨论讨论。 二、个人经历 本人入行逆向全因一部韩剧“幽灵”,里面涉及渗透、病毒分析、取证的攻防对抗,我觉得对新手来说…

S1试讲讲稿

习题题目 答案 用到的概念: 概率之和等于1 E ( x ) ∑ i 1 4 x i P i E(x)\sum_{i1}^4x_iP_i E(x)∑i14​xi​Pi​ E ( x 2 ) ∑ i 1 4 x i 2 P i E(x^2)\sum_{i1}^4x_i^2P_i E(x2)∑i14​xi2​Pi​ V a r ( X ) Var(X) Var(X) ∑ i 1 4 ( x i − x ‾ ) 2…