快速部署个人导航页:美好的一天从井然有序开始
很多人都习惯使用浏览器自带的收藏夹来管理自己的书签,然而收藏夹存在着一些问题。
- 经过长时间的累积,一些高频使用的重要网站和偶尔信手收藏的链接混在了一起,收藏夹因为内容过多而显得杂乱无章;
- 收藏夹没有什么美观可言,就是单纯文字的罗列而已;
- 收藏夹并不支持很方便的快速搜索,我们需要进入管理收藏夹的页面才能进行搜索;
- 如果到了一台新的设备,我们的收藏夹必须要想办法同步过来才能使用。
老Q也是深受这些问题困扰,于是开始尝试其他的一些导航工具。
在很长的一段时间里,老Q使用的一直是百度的导航,效果大致如下图,也能基本满足老Q的诉求,算是解决了上边提到的那些问题。并且百度首页集成了自家的王牌:搜索框,所以作为一个上网的统一入口是完全没有问题的。

但是后来慢慢就觉得百度首页的可定制程度还是不够高,再加上老Q喜新厌旧,共度多年之后对其有了一些厌倦,于是老Q又开始寻找新的方案。
老Q买了一台支持Docker的NAS,于是就从这个角度入手研究可以通过Docker快速部署的导航页。经过一段时间的初筛和了解,老Q体验了Heimdall、Flare还有Homepage三款导航页,最终发现Homepage简直就是为老Q量身打造的,实在是忍不住要分享给大家。
下面老Q就以绿联DX4600为例,为大家演示如何配置一个漂亮的Homepage导航页。
一、Docker安装Homepage
首先我们打开Docker管理器,进入镜像管理。然后我们点击本地镜像,点击添加,点击公网库,输入ghcr.io/benphelps/homepage,选择latest版本下载。

下载完成后,我们在本地镜像中找到刚刚下载的镜像,点击创建容器。起一个响亮的名字,勾选创建后启动容器,点击下一步。

在基础设置中,重启策略选择“容器退出时总是重启容器”。

在存储空间中,我们在NAS中创建一个属于Homepage的文件夹,并在该文件夹中创建config和icons两个子文件夹,并将它们与/app/config和/app/public/icons分别绑定,选择读写模式。

在端口中,选择一个没有与现有服务冲突的本地端口号如6666。

其他设置均保持默认即可。
二、配置Homepage
配置完成后自动启动容器(若没有自动启动则手动启动一下)。
这时我们就可以通过IP:6666或者域名:6666来访问我们的首页了。当然,这时我们的Homepage还没有进行配置,里边没有什么有用的信息。Homepage的配置会稍显麻烦,因为它暂时还不支持在线编辑,需要我们把配置文件下载下来,修改好以后再上传。
在我们的NAS中,找到刚才我们配置的config文件夹,比如老Q将其配置在了Docker/Homepage/config目录。我们将这个目录下的所有.yaml文件都下载下来。

1. 插件配置
首先我们用文本编辑器打开widgets.yaml,这是我们的插件配置文件。下面老Q以下边这个示例来一一讲解每个配置的作用。
greeting中的部分是打招呼的内容,每次我们打开导航页后在左上角会看到这里的文字。resources中的部分是在左上角显示当前设备的资源使用情况,包括CPU、内存和磁盘的使用情况。search中的部分是配置我们想要使用的搜索引擎,目前支持的搜索引擎有baidu/google/bing/duckduckgo/brave,如果这些你都不满意,还可以将你想要使用的搜索引擎的地址填上去,比如老Q使用的是无追搜索。weatherapi这里需要填一下你所在位置的经纬度,以及一个可以免费申请的天气接口的API KEY。API的申请非常简单,在https://www.weatherapi.com/signup.aspx这个地址填好邮箱密码,很快就可以申请到。你所在位置的经纬度,可以通过百度地图的坐标拾取器来获取。datetime这里要填的是时间显示的配置,这里老Q选择了比较详细的long版本。
---# For configuration options and examples, please see:# https://gethomepage.dev/en/configs/widgets- greeting:text_size: xltext: 奋进!- resources:cpu: truememory: truedisk: /- search:provider: customurl: https://www.wuzhuiso.com/s?src=extension_popup&q=target: _blank- weatherapi:label: 朝阳latitude: 39.979958longitude: 116.382408units: metric #imperial apiKey: YOUR API KEYcache: 5 # Time in minutes to cache API responses, to stay within limits- datetime:text_size: xlformat:dateStyle: longtimeStyle: longhour12: false
在这些配置下,老Q的顶部插件栏的效果如下:

2. 页面设置
这里主要配置页面的一些属性:
title:页面title,会显示在浏览器页签上。providers:这里把我们刚才申请的天气API KEY填上。language:显示语言,填zh-CN代表中文。base:这里填写我们的导航页的访问地址。backgroud:背景图片的URL。favicon:导航页站点图标的URL。theme:主题,主要支持日间主题和夜间主题。color:页面配色。- ……
还有很多配置的细节,老Q在这里就不细说了,大家可以自己体验一下,选择自己最喜欢的版本。
---# For configuration options and examples, please see:# https://gethomepage.dev/en/configs/settingstitle: 导航providers:weatherapi: YOUR API KEYlanguage: zh-CNbase: your_homepage_urlbackground: your_image_urlfavicon: your_favicon_urltheme: dark # or lightcolor: slate # slate, gray, zinc, neutral, stone, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose, red, white
3. 服务配置
这里可以把我们在用的一些Docker服务给配置上。大家可以直接复制以下内容,然后按这个格式结合自己的实际情况增删即可。
---
# For configuration options and examples, please see:
# https://gethomepage.dev/en/configs/services- 文字:- 书库:href: https://talebook.xxxx.fundescription: TaleBook在线书库- 小说:href: https://reader.xxxx.fundescription: Reader3.0- 笔记:href: https://siyuan.xxxx.fundescription: 思源笔记- MD:href: https://md.xxxx.fundescription: Markdown- 资源:- Jackett:href: https://jackett.xxxx.fundescription: Jackett- WebDav:href: https://webdav.xxxx.fundescription: WebDav- 网络:- DDNS:href: https://ddns.xxxx.fundescription: DDNS-GO- Nginx:href: https://nginx.xxxx.fundescription: NginxWebUI- Firefox:href: https://firefox.xxxx.fundescription: firefox- 数据库:- DBGate:href: https://dbgate.xxxx.fundescription: DBGate- PMA:href: https://pma.xxxx.fundescription: phpMyAdmin
4. 书签配置
按照如下格式配置,老Q把常用的一些网站都给贴上去了。
---# For configuration options and examples, please see:# https://gethomepage.dev/en/configs/bookmarks- 搜索:- 百度:- abbr: BDhref: https://www.baidu.com- 谷歌:- abbr: GGhref: https://www.google.com- 无追:- abbr: WZhref: https://www.wuzhuiso.com/ - 云平台:- 腾讯云:- abbr: TChref: https://console.cloud.tencent.com/- 阿里云:- abbr: AChref: https://home.console.aliyun.com/home/dashboard/ProductAndService- 七牛云:- abbr: QChref: https://portal.qiniu.com/home- Gitee:- abbr: GThref: https://gitee.com/xxxx- 自媒体:- 公众号:- abbr: GZHhref: https://mp.weixin.qq.com/- 头条号:- abbr: TTHhref: https://mp.toutiao.com/- 知乎:- abbr: ZHhref: https://www.zhihu.com/people/data-insights- CSDN:- abbr: CSDNhref: https://blog.csdn.net/- 百家号:- abbr: BJHhref: https://baijiahao.baidu.com/- 简书:- abbr: JShref: https://www.jianshu.com/u/748cd3bc831b- 学习平台:- 豆瓣阅读:- abbr: DBhref: https://read.douban.com- 网易云阅读:- abbr: YYDhref: https://yuedu.163.com/- W3Cschool:- abbr: W3Chref: https://www.w3cschool.cn/- 经管之家:- abbr: JGhref: https://bbs.pinggu.org/- 异步社区:- abbr: YBhref: https://www.epubit.com/- 图灵社区:- abbr: TLhref: https://www.ituring.com.cn/- 博文视点:- abbr: BWhref: http://www.broadview.com.cn/book?tab=ebook- 机工新阅读:- abbr: JGhref: http://www.cmpreading.com/homepage- 网易云课堂:- abbr: YKThref: https://study.163.com/- 黑苹果:- 黑苹果社区:- abbr: OSXhref: https://osx.cx/- 黑苹果乐园:- abbr: LYhref: https://mackext.com/- 黑苹果星球:- abbr: XQhref: https://heipg.cn/- MacSC:- abbr: SChref: https://mac.macsc.com/
5. Docker和K8S
这两个目前我使用绿联DX4600没有配置成功,目前绿联DX4600在这一块儿还是存在限制。如果配置成功的话,理论上是可以自动发现我们已经部署的其他Docker服务的。不过也无伤大雅,目前的效果已经让老Q很满意了。
6. 上传配置文件
把我们修改好的配置文件上传到刚才我们下载的目录,并替换掉原来的文件。这时候再打开我们的导航页,我们就会发现它已经自动更新了!
三、成品展示
给大家展示一下老Q的导航页的效果图。这种简约的风格老Q非常喜欢。


当然,如果你喜欢花里胡哨的风格,并且你的设备是群晖、威联通等自由度比较高的NAS或者是一台云主机/服务器,那么你还可以实现这样的效果。

老Q会持续为大家献上大数据、量化、爬虫和NAS相关的内容,欢迎大家关注!
相关文章:
快速部署个人导航页:美好的一天从井然有序开始
很多人都习惯使用浏览器自带的收藏夹来管理自己的书签,然而收藏夹存在着一些问题。 经过长时间的累积,一些高频使用的重要网站和偶尔信手收藏的链接混在了一起,收藏夹因为内容过多而显得杂乱无章;收藏夹没有什么美观可言…...
【Python】如何在 Python 中使用“柯里化”编写干净且可重用的代码
对于中级Python开发者来说,了解了Python的基础语法、库、方法,能够实现一些功能之后,进一步追求的就应该是写出优雅的代码了。 这里介绍一个很有趣的概念“柯里化”。 所谓柯里化(Currying)是把接受多个参数的函数变换…...
ROS笔记(4)——发布者Publisher与订阅者Subscribe的编程实现
发布者 以小海龟的话题消息为例,编程实现发布者通过/turtle1/cmd_vel 话题向 turtlesim节点发送消息,流程如图 步骤一 创建功能包(工作空间为~/catkin_ws/src) $ cd ~/catkin_ws/src $ catkin_create_pkg learning_topic roscpp rospy s…...
Linux进程概念(一)
文章目录Linux进程概念(一)1. 冯诺依曼体系结构2. 操作系统(Operator System)2.1 考虑2.2 如何理解操作系统对硬件做管理?2.3 操作系统为什么要对软硬件资源做管理呢?2.4 系统调用和库函数概念2.5 计算机体系结构3. 进程的初步理解…...
Leetcode.1124 表现良好的最长时间段
题目链接 Leetcode.1124 表现良好的最长时间段 Rating : 1908 题目描述 我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。 所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格…...
达梦数据库会话、事务阻塞排查步骤
查询阻塞的事务IDselect * from v$trxwait order by wait_time desc;--单机select * from v$dsc_trxwait order by wait_time desc;–DSC集群查询阻塞事务的会话信息select sf_get_session_sql(sess_id),* from v$sessions where trx_id69667;--单机select sf_get_session_sql(…...
sqlServer 2019 开发版(Developer)下载及安装
下载软件 官网只有2022的,2019使用百度网盘进行下载 安装下崽器 选择自定义安装 选择语言、以及安装位置 点击“安装” 安装 SQL Server 可能的故障 以上步骤安装后会弹出以上界面,如果未弹出,手动去安装目录下点击 SETUP.EXE 文件…...
使用Arthas定位问题
功能概述 首先,Arthas的常用功能大概有以下几个: 解决依赖冲突 sc命令:模糊查看当前 JVM 中是否加载了包含关键字的类,以及获取其完全名称。 sc -d 关键字 注意使用 sc -d 命令,获取 classLoaderHash命令:…...
性能测试之tomcat+nginx负载均衡
nginx tomcat 配置准备工作:两个tomcat 执行命令 cp -r apache-tomcat-8.5.56 apache-tomcat-8.5.56_2修改被复制的tomcat2下conf的server.xml 的端口号,不能与tomcat1的端口号重复,不然会启动报错 ,一台电脑上想要启动多个tomcat,…...
【手写 Vuex 源码】第十一篇 - Vuex 插件的开发
一,前言 上一篇,主要介绍了 Vuex-namespaced 命名空间的实现,主要涉及以下几个点: 命名空间的介绍和使用;命名空间的逻辑分析与代码实现;命名空间核心流程梳理; 本篇,继续介绍 Vu…...
opencv基础知识和绘图图形
大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…...
15- 决策回归树, 随机森林, 极限森林 (决策树优化) (算法)
1. 决策回归树: from sklearn.tree import DecisionTreeRegressor model DecisionTreeRegressor(criterionmse,max_depth3) model.fit(X,y) # X是40个点 y是一个圆 2. 随机森林 稳定预测: from sklearn.ensemble import RandomForestClassifier # model RandomForestC…...
Flink相关的记录
Flink源码编译首次编译的时候,去除不必要的操作,同时install会把Flink中的module安装到本地仓库,这样依赖当前module的其他组件就无需去远程仓库拉取当前module,节省了时间。mvn clean install -T 4 -DskipTests -Dfast -Dmaven.c…...
配置可视化-基于form-render的无代码配置服务(一)
背景 有些业务场景需要产品或运营去配置JSON数据提供给开发去使用(后面有实际业务场景的说明),原有的业务流程,非开发人员(后面直接以产品指代)把数据交给开发,再由开发去更新JSON数据。对于产…...
Java 代理模式详解
1、代理模式 代理模式是一种比较好理解的设计模式。简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 代理模式的主要作用是扩展目标对象…...
知识付费小程序怎么做_分享知识付费小程序的作用
在线知识付费产业的主要业务逻辑是基于用户的主动学习需求,为其提供以跨领域基础知识与技能为核心的在线知识服务,提升其达到求知目的的效率。公众号和小程序的迅速发展,又为知识付费提供了技术支持,从而促进了行业的进一步发展。…...
14- 决策树算法 (有监督学习) (算法)
决策树是属于有监督机器学习的一种决策树算法实操: from sklearn.tree import DecisionTreeClassifier # 决策树算法 model DecisionTreeClassifier(criterionentropy,max_depthd) model.fit(X_train,y_train)1、决策树概述 决策树是属于有监督机器学习的一种,起源…...
如何编译和运行C++程序?
C 和C语言类似,也要经过编译和链接后才能运行。在《C语言编译器》专题中我们讲到了 VS、Dev C、VC 6.0、Code::Blocks、C-Free、GCC、Xcode 等常见 IDE 或编译器,它们除了可以运行C语言程序,还可以运行 C 程序,步骤是一样的&#…...
Golang 给视频添加背景音乐 | Golang工具
目录 前言 环境依赖 代码 总结 前言 本文提供给视频添加背景音乐,一如既往的实用主义。 主要也是学习一下golang使用ffmpeg工具的方式。 环境依赖 ffmpeg环境安装,可以参考我的另一篇文章:windows ffmpeg安装部署_阿良的博客-CSDN博客 …...
让AI护理医疗:解决卫生系统的痛点
一、引言 1.对医疗领域中AI技术的介绍 随着人工智能的不断发展,它已经成为了各个领域中的重要组成部分。在医疗领域中,AI技术也逐渐发挥着越来越重要的作用。从诊断到治疗,从健康管理到研究,人工智能已经深刻地影响着医疗领域的…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
