【Docker项目实战】使用Docker部署Honey个人轻量级仪表盘
@TOC
一、Honey介绍
1.1 Honey简介
Honey 是一个轻量级的仪表盘解决方案,它使用纯HTML、CSS和JavaScript编写,因此不需要任何动态后端或特殊的Web服务器配置。由于所有的操作都在客户端完成,Honey能够开箱即用,非常方便部署在个人的家庭服务器上。
1.2 主要使用场景
- 家庭自动化控制中心:作为智能家居设备的中央管理界面,如灯光、温度调节器等。
- 媒体服务器监控:为Plex Media Server、Emby或其他多媒体服务创建一个友好的状态显示页面。
- 系统性能监视:展示CPU使用率、内存占用情况以及网络流量等信息。
- 个人项目展示板:对于开发者来说,可以用来追踪GitHub仓库的状态、CI/CD管道进展等。
- 数据可视化工具:集成第三方API来获取天气预报、股市行情等,并以图表形式展现。
- 日历与提醒:整合Google Calendar API等,显示即将到来的日程安排和个人事件。
- 远程访问入口:为其他自我托管的服务(如Nextcloud, OwnCloud)提供快速链接点。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。
hostname | IP地址 | 操作系统版本 | Docker版本 | 镜像版本 |
---|---|---|---|---|
jeven01 | 192.168.3.88 | Ubuntu 22.04.1 LTS | 27.1.1 | latest |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署honey个人轻量级仪表盘。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-09-09 10:43:35 CST; 3 weeks 5 days ago
Docs: https://docs.docker.com
Main PID: 695 (dockerd)
Tasks: 135 (limit: 9387)
Memory: 4.0G
CPU: 46min 46.854s
CGroup: /system.slice/docker.service
├─ 695 /usr/bin/dockerd
├─ 846 containerd --config /var/run/docker/containerd/containerd.toml
3.2 检查Docker版本
检查Docker版本
root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven01:~# docker compose version
Docker Compose version v2.19.1
四、下载Honey镜像
拉取Honey镜像,镜像名称为:
ghcr.io/dani3l0/honey:latest
。
root@jeven01:~# docker pull ghcr.io/dani3l0/honey:latest
latest: Pulling from dani3l0/honey
c926b61bad3b: Pull complete
c88699529559: Pull complete
06a2b714e326: Pull complete
af1ee6ee7eef: Pull complete
8189961be670: Pull complete
8b39061a59eb: Pull complete
ef32d35d2f3b: Pull complete
38e382e42c01: Pull complete
Digest: sha256:482197ee0f92ed010c20a9aba0eff55dc9203f5531294ee486393c60d09ab945
Status: Downloaded newer image for ghcr.io/dani3l0/honey:latest
ghcr.io/dani3l0/honey:latest
五、部署Honey应用
5.1 创建部署目录
- 创建部署目录
mkdir -p /data/honey && cd /data/honey
5.2 新建相关配置文件
- 创建conf目录
mkdir -p config
- 新建及编辑manifest.json 文件,内容如下所示:
vim config/manifest.json
{
"name": "honey",
"short_name": "honey",
"description": "Nice and sweet place for all your self-hosted services",
"start_url": "/",
"background_color": "#000",
"display": "standalone",
"icons": [
{
"src": "/img/icon.png",
"sizes": "192x192 256x256 512x512"
}
]
}
- 新建及编辑config.json 文件,Honey应用中的书签通过 config.json 文件进行配置,可修改配置文件中的书签为自己的书签内容,可参考如下所示:
vim config/config.json
{
"ui": {
"name": "honey",
"desc": "Nice and sweet place for all your self-hosted services.",
"icon": "img/icon.png",
"wallpaper": "img/background.jpg",
"wallpaper_dark": "img/background-dark.jpg",
"dark_mode": false,
"open_new_tab": false,
"blur": true,
"animations": true
},
"services": [
{
"name": "百度",
"desc": "百度主页",
"href": "https://www.baidu.com/",
"icon": "img/preview/caldav.png"
},
{
"name": "Stirling-PDF",
"desc": "PDF工具",
"href": "http://192.168.3.86:6080/",
"icon": "img/preview/files.png"
}
]
}
- 用户界面调整选项
键名 | 描述 | 是否在设置中 |
---|---|---|
name | 主屏幕上显示的名称及标签页标题 | ❌ |
desc | 主屏幕标题下方显示的简短描述 | ❌ |
icon | 主屏幕上显示的图标以及网站的favicon | ❌ |
wallpaper | 当禁用深色模式时可见的背景图片 | ❌ |
wallpaper_dark | 当启用深色模式时可见的背景图片 | ❌ |
dark_mode | 指定是否默认启用深色模式 | ✅ |
open_new_tab | 指定点击服务时是否默认在新标签页打开 | ✅ |
blur | 指定卡片背景模糊效果是否默认启用 | ✅ |
animations | 指定UI动画是否默认启用 | ✅ |
- 添加自定义服务:
services
部分是一个包含对象的数组。每个对象具有以下结构:
键名 | 描述 |
---|---|
name | 你的服务名称 |
desc | 服务名称下方显示的简短描述 |
href | 服务的URL地址。它会直接传递给<a> 标签 |
icon | 服务图标的路径 |
5.3 编辑部署文件
- 如果使用docker-cli部署,可参考以下命令:
docker run -d \
--restart always \
--name honey \
-p 5600:4173 \
-v/data/honey/config:/app/dist/config:ro \
ghcr.io/dani3l0/honey:latest
在`部署目录下,创建docker-compose.yaml文件,其中宿主机映射端口等可以自定义配置。
vim docker-compose.yaml
version: '3.9'
services:
dani3l0:
image: 'ghcr.io/dani3l0/honey:latest'
volumes:
- '/data/honey/config:/app/dist/config:ro'
ports:
- '5600:4173'
container_name: honey
restart: always
5.4 创建Honey容器
执行以下命令,创建Honey容器。
root@jeven01:/data/honey# docker compose up -d
[+] Running 2/2
✔ Network honey_default Created 0.1s
✔ Container honey Started 0.3s
5.5 查看Honey容器状态
检查Honey容器状态状态,确保Honey容器正常启动。
root@jeven01:/data/honey# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
honey ghcr.io/dani3l0/honey:latest "docker-entrypoint.s…" dani3l0 25 seconds ago Up 24 seconds (health: starting) 0.0.0.0:5600->4173/tcp, :::5600->4173/tcp
5.6 查看Honey容器日志
检查Honey容器日志,确保Honey服务正常运行。
root@jeven01:/data/honey# docker compose logs
honey |
honey |
honey | > honey@2 preview
honey | > vite preview --host
honey |
honey |
honey | ➜ Local: http://localhost:4173/
honey | ➜ Network: http://192.168.80.2:4173/
六、访问Honey服务
6.1 访问Honey主页
访问地址:http://192.168.3.88:5600,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。
6.2 切换主题
点击Theme,可切换不同主题。
6.3 打开书签
点击Services选项,可以看到所有书签列表,打开书签即可访问添加的网站。
七、总结
通过Docker部署Honey个人轻量级仪表盘,整个过程既直观又高效,仅需几个简单的步骤即可完成从容器创建到服务启动的全过程。利用Docker Compose简化了多容器应用的管理,使得配置文件与环境变量的调整变得异常便捷,极大地提升了开发和部署效率。在整个实践中,不仅能够轻松地将Honey集成到现有的家庭服务器环境中,还能够通过Docker的强大隔离性确保应用程序的安全性和稳定性。此外,得益于Docker镜像的一致性,无论是在开发、测试还是生产环境中,都能保证Honey仪表盘表现一致,减少了因环境差异导致的问题。总之,使用Docker部署Honey不仅加速了项目的上线时间,也为后续维护提供了极大的便利。
- 点赞
- 收藏
- 关注作者
评论(0)