高度可定制应用程序仪表板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

相关文章

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

vue基于ElementUI动态设置表格高度的3种方法

《vue基于ElementUI动态设置表格高度的3种方法》ElementUI+vue动态设置表格高度的几种方法,抛砖引玉,还有其它方法动态设置表格高度,大家可以开动脑筋... 方法一、css + js的形式这个方法需要在表格外层设置一个div,原理是将表格的高度设置成外层div的高度,所以外层的div需要

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

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