本文主要是介绍高度可定制应用程序仪表板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
,包括我们之前安装的 portainer
、watchtower
,Glances
,Netdata
、lazydocker
等。
什么是 /var/run/docker.sock
?
/var/run/docker.sock
是Docker API
的主要入口,简单地说,它是Docker
守护进程(Docker daemon
)默认监听的Unix
域套接字(Unix domain socket
),容器中的进程可以通过它与Docker
守护进程进行通信。
图片来自:https://betterprogramming.pub/about-var-run-docker-sock-3bfd276e12fd
这里只要通过 /var/run/docker.sock
与 Docker
集成
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.yaml
:Docker
实例的配置文件,在使用自动服务发现时无法定义严格的顺序,顺序将由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
显示在第二排,其中部分服务还支持服务小部件,比如常用的 Jellyfin
和 Portainer
等
---# 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/
注意事项
- 因为用到了中文,所以
yaml
文件要选择utf-8
格式保存,否则中文会乱码; 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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!