高度可定制应用程序仪表板homepage

2023-10-28 16:30

本文主要是介绍高度可定制应用程序仪表板homepage,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

本文软件得到网友 冷心 的推荐;

什么是 homepage ?

homepage 是现代、安全、高度可定制的应用程序仪表板,集成了超过 25 种服务和超过 15 种语言的翻译。可通过 YAML 文件轻松配置(或通过 docker 标签发现)。

安装

ghcr.io 镜像下载

官方的镜像没有发布在 docker hub,而是在 ghcr.io,所以直接用命令行来安装。

SSH 客户端中依次执行下面的命令

# 下载镜像
docker pull ghcr.io/benphelps/homepage:latest

如果没有科学上网,很可能会拉不动,可以试试 docker 代理网站:https://dockerproxy.com/,但是会多几个步骤

# 如果拉不动的话加个代理
docker pull ghcr.dockerproxy.com/benphelps/homepage:latest# 重命名镜像(如果是通过代理下载的)
docker tag ghcr.dockerproxy.com/benphelps/homepage:latest ghcr.io/benphelps/homepage:latest# 删除代理镜像(如果是通过代理下载的)
docker rmi ghcr.dockerproxy.com/benphelps/homepage:latest

当然代理网站也不是什么时候都好使,有时候也会报错,例如下面👇这样的

Error response from daemon: received unexpected HTTP status: 500 Internal Server Error

所以有一个稳定的科学上网环境还是很重要的

Docker API 说明

与容器相关的应用,都需要绑定挂载 /var/run/docker.sock ,包括我们之前安装的 portainerwatchtowerGlancesNetdatalazydocker 等。

什么是 /var/run/docker.sock ?

/var/run/docker.sockDocker API 的主要入口,简单地说,它是 Docker 守护进程(Docker daemon)默认监听的 Unix 域套接字(Unix domain socket),容器中的进程可以通过它与 Docker 守护进程进行通信。

title

图片来自:https://betterprogramming.pub/about-var-run-docker-sock-3bfd276e12fd

这里只要通过 /var/run/docker.sockDocker 集成

Docker Cli 安装

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

# 新建文件夹 homepage 和 子目录
mkdir -p /volume2/docker/homepage/{config,icons}# 进入 homepage 目录
cd /volume2/docker/homepage# 修改目录权限
chmod -R 777 config/# 运行容器
docker run -d \--name homepage \-p 3344:3000 \-v $(pwd)/config:/app/config \-v $(pwd)/icons:/app/public/icons \-v /var/run/docker.sock:/var/run/docker.sock \ghcr.io/benphelps/homepage:latest

docker-compose 安装

将下面的内容保存为 docker-compose.yml 文件

version: "3.3"services:homepage:image: ghcr.io/benphelps/homepage:latestcontainer_name: homepageports:- 3344:3000volumes:- ./config:/app/config- ./icons:/app/public/icons- /var/run/docker.sock:/var/run/docker.sock

然后执行下面的命令

# 新建文件夹 homepage 和 子目录
mkdir -p /volume2/docker/homepage/config# 进入 homepage 目录
cd /volume2/docker/homepage# 修改目录权限
chmod -R 777 config/# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

运行

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

回到 File Station,你会在 config 目录中发现一些 yaml 文件

在这里插入图片描述

  • bookmarks.yaml:书签配置文件,除了作为链接外不包含任何额外的功能。abbr 设计为 2 个字母,但没有强制要求。
  • docker.yamlDocker 实例的配置文件,在使用自动服务发现时无法定义严格的顺序,顺序将由 Docker API 返回的顺序决定。发现的服务优先于定义的服务 services.yaml ,并将显示在它们之上。
  • services.yaml:服务配置文件,您可以有任意数量的组,每个组可以有任意数量的服务。
  • settings.yaml:系统设置文件,它允许您定义应用程序级别的选项。要使对此文件所做的更改生效,您需要重新生成静态 HTML,这可以通过单击页面右下角的刷新图标来完成。
  • widgets.yaml:信息小部件配置文件,信息小部件位于第一条水平折叠线上方,可以多次配置。

yaml 文件,最好都保存为 utf-8 编码格式,避免中文出现乱码,当然纯英文的无所谓;

老苏随便试了下,先上张整体的效果图

图标

所用到的 png图标,均可在这个开源项目中找到: https://github.com/walkxcode/Dashboard-Icons

settings.yaml

settings.yaml 就一句话

language: zh-CN

其实还可以设置背景图片等等;

widgets.yaml

widgets.yaml 控制的是最上面的一排,官方称为信息小部件

- greeting:text_size: xltext: 老苏的导航- resources:label: 系统cpu: truememory: true- resources:label: 存储  expanded: truedisk:- /- datetime:text_size: xlformat:dateStyle: longtimeStyle: longhour12: false- weatherapi:label: 杨浦latitude: 31.305873longitude: 121.522311units: metric apiKey: <你的 weatherapi 的 API Key>cache: 5- search:provider: baidufocus: truetarget: _blank

关于 Weather API 的申请和使用,请参考老苏之前写的 『 个人仪表板软件Flame 』

docker.yaml

这个文件的设置,在界面上不会显示,但是 services.yaml 会引用到

my-docker:socket: /var/run/docker.sock

services.yaml

services.yaml 显示在第二排,其中部分服务还支持服务小部件,比如常用的 JellyfinPortainer

---# For configuration options and examples, please see:# https://github.com/benphelps/homepage/wiki/Services- 音影:- Jellyfin:icon: jellyfin.pnghref: "http://192.168.0.197:8096/"description: 媒体服务器server: my-dockercontainer: jellyfinwidget:type: jellyfinurl: http://192.168.0.197:8096key: <你的 token api key>     - 运维:- Portainer:icon: portainer.pnghref: "http://192.168.0.197:9000/"description: 容器管理服务器server: my-dockercontainer: portainerwidget:type: portainerurl: http://192.168.0.197:9000env: 2key: <你的 portainer 的 access key>- 开发:- Adminer:icon: adminer.pnghref: "http://192.168.0.197:8989/"description: 数据库连接服务器server: my-dockercontainer: adminer1

bookmarks.yaml

bookmarks.yaml 显示在第三排,也就是最下面

- 群晖:- 管理主页:- abbr: HPhref: http://192.168.0.197:5000/- 博客:- 老苏的博客:- abbr: LShref: https://laosu.ml/- CSDN:- abbr: CShref: https://blog.csdn.net/wbsu2004/- 网盘:- 天翼云盘:- abbr: TYhref: https://cloud.189.cn/- 阿里云盘:- abbr: ALhref: https://www.aliyundrive.com/

注意事项

  1. 因为用到了中文,所以 yaml 文件要选择 utf-8 格式保存,否则中文会乱码;
  2. yaml 文件对缩进有严格要求,建议用代码编辑器,老苏一般用 vscode,否则容易出现下面这样的报错;

其他更详细的配置和说明可以去看官方文档:https://gethomepage.dev/en/configs/services/

参考文档

benphelps/homepage: A homepage (or startpage) for my local network.
地址:https://github.com/benphelps/homepage

I’ve created a new self-hosted dashboard. : selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/wx8knv/ive_created_a_new_selfhosted_dashboard/

这篇关于高度可定制应用程序仪表板homepage的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/294464

相关文章

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

PDFQFZ高效定制:印章位置、大小随心所欲

前言 在科技编织的快节奏时代,我们不仅追求速度,更追求质量,让每一分努力都转化为生活的甜蜜果实——正是在这样的背景下,一款名为PDFQFZ-PDF的实用软件应运而生,它以其独特的功能和高效的处理能力,在PDF文档处理领域脱颖而出。 它的开发,源自于对现代办公效率提升的迫切需求。在数字化办公日益普及的今天,PDF作为一种跨平台、不易被篡改的文档格式,被广泛应用于合同签署、报告提交、证书打印等各个

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

Java Web应用程序的推荐目录结构

以前没有用过maven管理过项目的依赖,最后使用上了maven,发现通过不能方式建立出来的web应用程序目录结构基本都不一样,既然每次都要到网上搜索如何建立maven管理的Web应用程序,不如自己找百度谷歌一下。 找了半天 ,感觉比较好的maven管理的web应用程序目录结构是这个: ├── pom.xml└── src├── main│ ├── java│ │ └── myg

超越IP-Adapter!阿里提出UniPortrait,可通过文本定制生成高保真的单人或多人图像。

阿里提出UniPortrait,能根据用户提供的文本描述,快速生成既忠实于原图又能灵活调整的个性化人像,用户甚至可以通过简单的句子来描述多个不同的人物,而不需要一一指定每个人的位置。这种设计大大简化了用户的操作,提升了个性化生成的效率和效果。 UniPortrait以统一的方式定制单 ID 和多 ID 图像,提供高保真身份保存、广泛的面部可编辑性、自由格式的文本描述,并且无需预先确定的布局。

240907-Gradio插入Mermaid流程图并自适应浏览器高度

A. 最终效果 B. 示例代码 import gradio as grmermaid_code = """<iframe srcdoc='<!DOCTYPE html><html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width" /><title>My static Spa

小白装修之全屋定制和软装

装修决策方法论:三点走下来 是则是 否则否 第一步:想清楚 哪些 是 真实需求 第二步: 了解这些需求是通过何种方式实现的 第三步:考虑 实现方式的缺点 是否能接受  全屋定制  方式:1.找全屋定制的商家  2.木工现场打柜子 组成:设计 + 板材 + 加工 + 配件 +安装 设计板块:明明有成品家具可以购买 为什么要做定制呢? 自主规划 选设计师 1.更符合我们房屋和物

兔子--计算listview的高度,解决listview与scrollview控件冲突

/** * 计算ListView的高度 * * @param listView */ public void setListViewHeightBasedOnChildren(ListView listView) { // 获取ListView对应的Adapter OrderGoodsAdapter listAdapter = (OrderGoodsAdapter) listView.getAda

C++入门(02)简单了解C++应用程序的开发部署

文章目录 1. 开发C++应用程序2. 简单示例计算器程序3. 需求分析4. 设计5. 编码6. 编译7. 调试8. 测试9. 部署10. 部署示例10.1 使用Visual Studio Installer Projects创建安装程序10.2 安装VisualStudio Installer Projects扩展10.3 在calculator解决方案中创建安装项目10.3.1 添加安装

智能匹配新高度:相亲交友系统如何运用AI技术提升用户体验

在数字化时代,相亲交友系统正逐渐融入人工智能(AI)技术,以提升用户体验和匹配效率。AI的引入不仅改变了传统的交友方式,还为用户带来了更加个性化和精准的交友体验。以下是一篇关于如何运用AI技术提升相亲交友系统用户体验的文章。 智能匹配新高度:相亲交友系统如何运用AI技术提升用户体验 随着人工智能技术的飞速发展,相亲交友系统正迎来一场革命。AI的引入不仅提高了匹配的精准度,还极大地丰富了