跳到主要内容

家庭导航页:homepage

概述

随着路由器上部署的服务越来越多,记不住每个服务的页面地址,可以部署一个 homepage 并暴露 80 端口,进去后就是家里的服务导航页,可以快速跳转家里的各个服务的页面。

开源项目

目录结构

homepage
├── config
│   ├── bookmarks.yaml
│   ├── services.yaml
│   ├── settings.yaml
│   └── widgets.yaml
├── daemonset.yaml
└── kustomization.yaml

准备 homepage 配置文件

config/bookmarks.yaml
# https://gethomepage.dev/latest/configs/bookmarks/
config/settings.yaml
# https://gethomepage.dev/latest/configs/settings/

providers:
openweathermap: openweathermapapikey
weatherapi: weatherapiapikey
config/widgets.yaml
# https://gethomepage.dev/latest/widgets/

- resources:
cpu: true
memory: true
disk: /
config/services.yaml
# https://gethomepage.dev/latest/configs/services/

- 家庭主页:
- Jellyfin:
href: http://10.10.10.2:8096/
description: 家庭影院
- Grafana:
href: http://10.10.10.2:3000/
description: 监控面板
- VictoriaMetrics:
href: http://10.10.10.2:8428/
description: 监控工具
- AriaNg:
href: http://10.10.10.2:6880/
description: 离线下载
- AList:
href: http://10.10.10.2:5244/
description: 云盘
- HomeAssistant:
href: http://10.10.10.2:8123/
description: Home Assistant
- Filebrowser:
href: http://10.10.10.2:8567/
description: 文件管理
  • services.yaml 是定义导航页列表的配置文件,可以根据自己家里的情况进行 DIY。

准备 daemonset.yaml

daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
labels:
app: homepage
name: homepage
namespace: default
spec:
selector:
matchLabels:
app: homepage
template:
metadata:
labels:
app: homepage
spec:
terminationGracePeriodSeconds: 1
containers:
- image: docker.io/imroc/homepage:v0.8.8
imagePullPolicy: IfNotPresent
name: homepage
env:
- name: PORT
value: "80"
volumeMounts:
- mountPath: /app/config/services.yaml
name: config
subPath: services.yaml
- mountPath: /app/config/settings.yaml
name: config
subPath: settings.yaml
- mountPath: /app/config/widgets.yaml
name: config
subPath: widgets.yaml
- mountPath: /app/config/bookmarks.yaml
name: config
subPath: bookmarks.yaml
dnsPolicy: Default
hostNetwork: true
restartPolicy: Always
volumes:
- name: config
configMap:
name: homepage-config
updateStrategy:
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
type: RollingUpdate

准备 kustomization.yaml

kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- daemonset.yaml

namespace: default

configMapGenerator:
- name: homepage-config
files:
- config/services.yaml
- config/settings.yaml
- config/bookmarks.yaml
- config/widgets.yaml

访问 Homepage

访问入口:http://路由器内网 IP