Homer:一个简单的静态主页

在这里插入图片描述

什么是 Homer ?

Homer 是一个完全静态的 html/js 仪表板,基于一个简单的 yaml 配置文件。它旨在由 HTTP 服务器提供服务,如果您直接通过 file:// 协议打开 index.html,它将无法工作。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 homer ,选择第一个 b4bz/homer,版本选择 latest 或者 v23.02.02

在这里插入图片描述

docker 文件夹中,创建一个新文件夹 homer,并在其中建一个子文件夹assets,需要给 assets 增加 Everyone 的读写权限

文件夹装载路径说明
docker/homer/assets/www/assets 存放设置文件

在这里插入图片描述

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
80588080

在这里插入图片描述

环境

可变
INIT_ASSETS缺省值为 1
SUBFOLDER缺省值为 null
PORT缺省值为 8080
  • INIT_ASSETS:默认为 1,会安装示例配置文件来帮助您入门。
  • SUBFOLDER:如果您想在子文件夹中托管 Homer,(例如:http://my-domain/homer),将 SUBFOLDER设置为子文件夹路径(/homer)。
  • PORT:如果您想将 Homer 的内部端口从默认的 8080更改为您选择的端口。

以上几个参数,老苏都采用的默认值

命令行安装

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

# 新建文件夹 homer 和 子目录
mkdir -p /volume2/docker/homer/assets

# 进入 homer 目录
cd /volume2/docker/homer

# 修改目录权限
chmod 777 assets

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name homer \
   -p 8058:8080 \
   -v $(pwd)/assets:/www/assets \
   b4bz/homer:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: "2"

services:
  homer:
    image: b4bz/homer
    container_name: homer
    volumes:
      - ./assets/:/www/assets
    ports:
      - 8058:8080
    user: 1000:1000 
    environment:
      - INIT_ASSETS=1 # default

然后执行下面的命令

# 新建文件夹 homer 和 子目录
mkdir -p /volume2/docker/homer/assets

# 进入 homer 目录
cd /volume2/docker/homer

# 修改目录权限
chmod 777 assets

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

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

在这里插入图片描述

因为使用了默认的环境变量,所以安装了示例,进入 assets,找到 config.yml 文件

在这里插入图片描述

其中 links 节对应于网页的导航条部分,而 services 节对应于我们要设置的书签

老苏将 links 部分改成了下面这样

记得将 config.yml 的编码改为 UTF-8,否则中文会显示成乱码

links:
  - name: "老苏的博客"
    icon: "fab fa-github"
    url: "https://laosu.cf"
    target: "_blank" # optional html a tag target attribute
  - name: "CSDN博客"
    icon: "fas fa-book"
    url: "https://blog.csdn.net/wbsu2004"

保存之后,只要刷新页面就可以了,不需要重启容器

在这里插入图片描述

接下来改改 services

logo 可以保存到 assets/icons 目录中,也可以直接用 url

services:
  - name: "Applications"
    icon: "fas fa-cloud"
    items:
      - name: "国内可用ChatGPT"
        logo: "https://www.sunboy.cf/favicon.svg"
        subtitle: "不用填API Key可直接用"
        tag: "chatgpt"
        keywords: "chatgpt"
        url: "https://www.sunboy.cf/"
        target: "_blank" # optional html a tag target attribute
      - name: "poe"
        logo: "https://poe.com/_next/image?url=%2F_next%2Fstatic%2Fmedia%2FchatGPTAvatar.04ed8443.png&w=48&q=75"
        subtitle: "需要科学上网"
        tag: "chatgpt"
        keywords: "chatgpt"
        url: "https://poe.com/ChatGPT"
        target: "_blank"
      - name: "DoGPT"
        logo: "https://pbs.twimg.com/profile_images/1604437547836248066/7RscimSD_400x400.png"
        subtitle: "自动化的GPT助手,点击试用,无需API。"
        tag: "chatgpt"
        keywords: "chatgpt"
        url: "https://www.dogpt.ai/"
        target: "_blank"

本文完成于 4 月,上面的网址,有些已不能使用;

在这里插入图片描述

如果要增加一个分组也很简单,只要增加一组

  - name: "Applications"
    icon: "fas fa-cloud"
    items:

还是举个栗子吧,这样看起来会更容易理解

services:
  - name: "人工智能"
    icon: "fas fa-cloud"
    items:
      - name: "国内可用ChatGPT"
        logo: "https://www.sunboy.cf/favicon.svg"
        subtitle: "不用填API Key可直接用"
        tag: "chatgpt"
        keywords: "chatgpt"
        url: "https://www.sunboy.cf/"
        target: "_blank" # optional html a tag target attribute
        
  - name: "老苏的博客"
    icon: "fa-solid fa-blog"
    items:
      - name: "老苏的博客"
        logo: "https://laosu.cf/images/laosu_wx.jpg"
        subtitle: "各种折腾"
        tag: "blog"
        keywords: "nas,docker"
        url: "https://laosu.cf"
        target: "_blank" 

中间的 demo 是消息,放在 message 节,不需要可以删掉,也可以设置需要提醒的内容

在这里插入图片描述

是不是挺简单的?

参考文档

bastienwirtz/homer: A very simple static homepage for your server.
地址:https://github.com/bastienwirtz/homer

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
#0 Homer::RtpSessionState::deprovisionAtDestruction (this=0x7f1fe00e7650) at ../components/mos/state/session_state/src/rtp_session_state.cpp:886 886 ../components/mos/state/session_state/src/rtp_session_state.cpp: No such file or directory. [Current thread is 1 (Thread 0x7f1ffffff700 (LWP 372))] (gdb) bt #0 Homer::RtpSessionState::deprovisionAtDestruction (this=0x7f1fe00e7650) at ../components/mos/state/session_state/src/rtp_session_state.cpp:886 #1 0x00005653759a8e33 in Homer::DeviceState::~DeviceState (this=0x7f1fe00ecf50) at ../components/mos/state/device_state/src/device_state.cpp:87 #2 0x0000565375c4229e in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x7f1fe00ecf40) at /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:155 #3 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x7f1fe00bbb08) at /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:730 #4 std::__shared_ptr<Homer::DeviceStateBase, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x7f1fe00bbb00) at /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1169 #5 Homer::Device::~Device (this=0x7f1fe00bb070) at ../components/mos/device/src/device.cpp:94 #6 0x0000565375c3c08a in Homer::WebsocketDevice::~WebsocketDevice (this=0x7f1fe00bb070) at ../components/mos/device/src/websocket_device.h:31 #7 Homer::WebsocketClientDevice::~WebsocketClientDevice (this=0x7f1fe00bb070) at ../components/mos/device/src/websocket_client_device.cpp:20
06-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨浦老苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值