简单的链接中心软件yal

在这里插入图片描述

什么是 yal ?

yal(Yet Another Landingpage) 是一个简单的链接中心,用于显示和搜索链接。允许轻松打造品牌,以最少的权限运行并且易于使用。可以设置吉祥物和徽标(目前是强制性的)。

软件特点

  • 静态生成的站点
  • 单个静态编译的 go 二进制文件
  • 默认情况下以非 root 身份运行
  • 集成任何搜索引擎
  • 简单直观的设计
  • 综合搜索
  • 启动时内联外部图像
  • 无依赖性

准备

yal 通过 json 配置文件维护链接和搜索引擎

items.json

items.json 用于配置要显示的链接

[{"title": "<章节标题>","entries": [{"text": "<显示链接文本>","link": "<链接>","description": "<搜索和悬停时的简短描述>","icon": "<url或本地路径,可以是相对的;需要容器可以访问,并在启动时内联>"}]}
]

下面是一个示例,因为使用了中文,记得使用 UTF-8 编码

[{"title": "内网","entries": [{"text": "DS3617xs","link": "http://192.168.0.197:5000","description": "DS3617xs管理入口","icon": "https://icons.iconarchive.com/icons/simpleicons-team/simple/256/synology-icon.png"},{"text": "DS918","link": "http://192.168.0.199:5000","description": "DS918管理入口","icon": "https://icons.iconarchive.com/icons/simpleicons-team/simple/256/synology-icon.png"},{"text": "路由器","link": "http://192.168.0.1","description": "主路由器管理入口","icon": "https://icons.iconarchive.com/icons/inipagi/job-seeker/256/route-icon.png"}]},{"title": "常用","entries": [{"text": "老苏的blog","link": "https://laosu.tech","description": "老苏的博客","icon": "https://icons.iconarchive.com/icons/aha-soft/3d-social/256/Blog-icon.png"},{"text": "CSDN","link": "https://blog.csdn.net/wbsu2004","description": "CSDN上的博客","icon": "https://icons.iconarchive.com/icons/chromatix/keyboard-keys/128/blog-icon.png"}]}
]

searchEngines.json

searchEngines.json 用于配置搜索引擎,使搜索框显示为最后一个元素

[{"title": "Name","urlPrefix": "https://my.search?text=<搜索词>"}
]

下面是一个示例

[{"title": "Bing","urlPrefix": "https://www.bing.com/search?q="},{"title": "baidu","urlPrefix": "https://www.baidu.com/s?wd="}
]

上面两个设置文件,需放在 config 目录中

图片

目前的版本,吉祥物和徽标是强制的,所以还需要准备 4 个图片文件

为了方便,老苏将需要的文件打包放在了这里: https://github.com/wbsu2003/synology/raw/main/yal/yal.zip,需下载解压后放入 docker 目录

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 timoreymann/yal ,版本选择 latest

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

yal.zip 解压在 docker 文件夹中,默认带了 3 个子文件夹

文件夹装载路径说明
docker/yal/config/app/config存放设置文件文件
docker/yal/icons/app/icons存放本地 icon 文件
docker/yal/images/app/images存放图片文件

端口

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

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

默认没有对外暴露端口

需要点 + 号自行添加

环境

可变
YAL_PORT监听端口
YAL_PAGE_TITLE页面标题
YAL_CONFIG_FOLDER指定设置文件目录
YAL_IMAGES_FOLDER指定图片文件目录
YAL_MASCOT吉祥物图片文件名,不需要带扩展名,目前只支持本地图片
YAL_LOGOlogo 标志图片文件名,不需要带扩展名,目前只支持本地图片
YAL_BACKGROUND背景图片文件名,不需要带扩展名,目前只支持本地图片
YAL_FAVICON图标图片文件名,不需要带扩展名,目前只支持本地图片

只需要添加 YAL_PAGE_TITLE,其他的都用默认值即可

命令行安装

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

# 新建文件夹 yal 和 子目录
mkdir -p /volume1/docker/yal/{config,icons,images}# 进入 yal 目录
cd /volume1/docker/yal# 运行容器
docker run -d \--name yal \--restart always \-p 2024:2024 \-v $(pwd)/config:/app/config \-v $(pwd)/icons:/app/icons \-v $(pwd)/images:/app/images \-e YAL_PORT=2024 \-e YAL_PAGE_TITLE="老苏的 nas 主页" \-e YAL_CONFIG_FOLDER=/app/config \-e YAL_IMAGES_FOLDER=/app/images \-e YAL_MASCOT=mascot \-e YAL_LOGO=logo \-e YAL_BACKGROUND=background \-e YAL_FAVICON=favicon \timoreymann/yal:latest

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

因为使用了中文标题,记得使用 UTF-8 编码保存

version: "3.5"services:yal:image: timoreymann/yal:latestcontainer_name: yalrestart: alwaysports:- 2024:2024volumes:- ./config:/app/config- ./icons:/app/icons- ./images:/app/imagesenvironment:YAL_PORT: 2024YAL_PAGE_TITLE: 老苏的 nas 主页YAL_CONFIG_FOLDER: /app/configYAL_IMAGES_FOLDER: /app/imagesYAL_MASCOT: mascotYAL_LOGO: logoYAL_BACKGROUND: backgroundYAL_FAVICON: favicon

然后执行下面的命令

# 新建文件夹 yal 和 子目录
mkdir -p /volume1/docker/yal/{config,icons,images}# 进入 yal 目录
cd /volume1/docker/yal# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:2024 就能看到主界面

点击搜索栏

支持动态搜索显示

每输入一个字都会过滤结果

参考文档

timo-reymann/yal: A simple link hub, to display and search links. Allows easy branding, runs with the least privileges and is simple to use.
地址:https://github.com/timo-reymann/yal

Link Hub | ACME Corp
地址:https://timo-reymann.github.io/yal/

YAL - Yet another landing page : selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1bq93ya/yal_yet_another_landing_page/

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

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

相关文章

python通过shapely 的 valid 判断aoi图形是否有效

测试aoi坐标&#xff1a; 116.527712,39.924304;116.527123,39.924353;116.52707,39.923985;116.527685,39.92397;116.527712,39.924304 如图所示是一个有效的坐标&#xff0c;使用python代码判断是否有效&#xff1a; 代码&#xff1a; from shapely.geometry import Polyg…

CAJViewer7.3 下载地址及安装教程

CAJViewer是中国学术期刊&#xff08;CAJ&#xff09;全文数据库的专用阅读软件。CAJViewer是中国知识资源总库&#xff08;CNKI&#xff09;开发的一款软件&#xff0c;旨在方便用户在线阅读和下载CAJ数据库中的学术论文、期刊和会议论文等文献资源。 CAJViewer具有直观的界面…

2024年腾讯云服务器99元一年_老用户优惠续费不涨价

腾讯云99元一年服务器配置为轻量2核2G4M、50GB SSD盘、300GB月流量、4M带宽&#xff0c;新用户和老用户都可以购买&#xff0c;续费不涨价&#xff0c;续费价格也是99元一年。以往腾讯云优惠服务器都是新用户专享的&#xff0c;这款99元服务器老用户也可以购买&#xff0c;这是…

Spring Boot 使用 Redis

1&#xff0c;Spring 是如何集成Redis的&#xff1f; 首先我们要使用jar包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><gro…

ROS中IMU惯性测量单元

一、IMU惯性测量单元消息包 IMU 是安装在机器人内部的一种传感器模块&#xff0c;用于测量机器人的空间姿态。 IMU的消息包定义在sensor_msgs包中的Imu中。头部是header&#xff0c;记录了消息发送的时间戳和坐标系ID。第二个是角速度。第三个是矢量加速度。三个数据成员都各…

从姿态估计到3D动画

在本文中&#xff0c;我们将尝试通过跟踪 2D 视频中的动作来渲染人物的 3D 动画。 在 3D 图形中制作人物动画需要大量的运动跟踪器来跟踪人物的动作&#xff0c;并且还需要时间手动制作每个肢体的动画。 我们的目标是提供一种节省时间的方法来完成同样的任务。 我们对这个问题…

C++数据类型(一):一文看懂引用的本质

一.引言 函数的参数传递方式主要有传值和传指针。 1.传值 在函数域中为参数分配内存&#xff0c;而把实参的数值传递到新分配的内存中。它的优点是有效避免函数的副作用。 例如&#xff1a; #include <iostream>void swap_val(int x,int y) {int tmp;tmp x;x y;y …

P6学习:Oracle Primavera P6 OBS/责任人解析

前言 Primavera P6 EPPM 责任人用于管理 P6 企业项目组合管理 (EPPM) 系统中的项目所有权和权限。 Primavera P6 EPPM 中的所有项目都至少围绕三个结构进行组织&#xff1a;称为企业项目结构 (EPS) 的用于组织项目的结构、称为工作分解结构 (WBS) 的用于组织项目内活动的结构…

08:HAL---通用定时器功能(输入捕获功能)

前言&#xff1a; 下面的以通用定时器为例&#xff0c;当然高级定时器具有通用定时器的全部功能 ICP1S&#xff1a;上面经过分频后的信号&#xff1b;这里的捕获指的是产生一个捕获事件。 一&#xff1a;输入捕获功能 1:简历 IC&#xff08;Input Capture&#xff09;输入…

Multi-task Lung Nodule Detection in Chest Radiographs with a Dual Head Network

全局头增强真的有用吗&#xff1f; 辅助信息 作者未提供代码

媒体偏见从何而来?--- 美国MRC(媒体评级委员会)为何而生?

每天当我们打开淘宝&#xff0c;京东&#xff0c;步入超市&#xff0c;逛街或者逛展会&#xff0c;各种广告铺天盖地而来。从原来的平面广告&#xff0c;到多媒体广告&#xff0c;到今天融合AR和VR技术的数字广告&#xff0c;还有元宇宙虚拟世界&#xff0c;还有大模型加持的智…

LangChain入门:2.OpenAPI调用ChatGPT模型

引言 在本文中&#xff0c;我们将带您深入探索如何通过OpenAPI与ChatGPT模型进行高效交互&#xff0c;实现智能文本问答功能。通过LangChain库的实践&#xff0c;您将学习构建一个能够与用户进行自然语言对话的系统的关键步骤。 准备步骤 在动手编码之前&#xff0c;请确保您…

八、大模型之Fine-Tuning(1)

1 什么时候需要Fine-Tuning 有私有部署的需求开源模型原生的能力不满足业务需求 2 训练模型利器Hugging Face 官网&#xff08;https://huggingface.co/&#xff09;相当于面向NLP模型的Github基于transformer的开源模型非常全封装了模型、数据集、训练器等&#xff0c;资源…

[Windows]修改默认远程端口3389

文章目录 注册表编辑器找到注册信息找到端口配置修改端口重启远程连接服务远程连接 因为不想使用windos默认远程3389端口&#xff0c;所以考虑换成其他的端口。保证安全&#xff08;虽然windows不是那么安全&#xff09;。 注册表编辑器 windos搜索注册表编辑器 找到注册信息…

网上国网App启动鸿蒙原生应用开发,鸿蒙开发前景怎么样?

从华为宣布全面启动鸿蒙生态原生应用一来&#xff0c;各种各样的新闻就没有停过&#xff0c;如&#xff1a;阿里、京东、小红书……等大厂的加入&#xff0c;而这次他们又与一个国企大厂进行合作&#xff1a; 作为特大型国有重点骨干企业&#xff0c;国家电网承担着保障安全、经…

HAL库 USART通讯

1、UASRT简介 串口通讯 (Serial Communication) 是一种设备间非常常用的串行通讯方式&#xff0c;因为它简单便捷&#xff0c;因此大部分电子设备都支持该通讯方式&#xff0c;电子工程师在调试设备时也经常使用该通讯方式输出调试信息。 按位发送和接收的接口。如RS-232/422/…

C语言-文件操作

&#x1f308;很高兴可以来阅读我的博客&#xff01;&#x1f31f;我热衷于分享&#x1f58a;学习经验&#xff0c;&#x1f3eb;多彩生活&#xff0c;精彩足球赛事⚽&#x1f517;我的CSDN&#xff1a; Kevin ’ s blog&#x1f4c2;专栏收录&#xff1a;C预言 1. 文件的作用 …

【核弹级软安全事件】XZ Utils库中发现秘密后门,影响主要Linux发行版,软件供应链安全大事件

Red Hat 发布了一份“紧急安全警报”&#xff0c;警告称两款流行的数据压缩库XZ Utils&#xff08;先前称为LZMA Utils&#xff09;的两个版本已被植入恶意代码后门&#xff0c;这些代码旨在允许未授权的远程访问。 此次软件供应链攻击被追踪为CVE-2024-3094&#xff0c;其CVS…

基于SSM远程同步课堂系统

基于SSM远程同步课堂系统的设计与实现 摘要 在这样一个网络数据大爆炸的时代&#xff0c;人们获取知识、获取信息的通道非常的多元化&#xff0c;通过网络来实现数据信息的获取成为了现在非常常见的一种方式&#xff0c;而通过网络进行教学&#xff0c;在网络上进行远程的课堂…

vue3 视频播放功能整体复盘梳理

回顾工作中对视频的处理&#xff0c;让工作中处理的问题的经验固化成成果&#xff0c;不仅仅是完成任务&#xff0c;还能解答任务的知识点。 遇到的问题 1、如何隐藏下载按钮&#xff1f; video 标签中的controlslist属性是可以用来控制播放器上空间的显示&#xff0c;在原来默…