轻量级自托管仪表盘Dashlet

简介

什么是 Dashlet ?

Dashlet 是一个轻量级的自托管仪表板,专为小型应用设计。它提供了一个现代、模块化的用户界面,允许用户快速访问和管理各种服务。Dashlet 使用原生 JavaScriptSCSS 开发,无需重型框架,注重代码简洁和性能。

主要特点

  1. 轻量级设计 :基于原生 JavaScriptSCSS,确保快速加载和运行。
  2. 玻璃磨砂风格 (Glassmorphism UI):现代化的界面设计,具有动态动画效果,增强用户体验。
  3. 配置驱动 :用户可以通过 public/config.json 文件加载设置和服务,方便管理。
  4. 主题定制
    • 提供多种主题选项,包括系统、暗色、亮色和自定义色彩。
    • 用户可以为背景设置自定义壁纸 URL。
  5. 动态排序:支持按名称、URL、描述或手动顺序进行排序,增强服务组织能力。
  6. 拖放功能:用户可以轻松通过拖放方式调整服务的顺序。
  7. 整洁的布局:固定的控制面板,使用户界面干净整洁。
  8. 自定义文件支持 :允许用户上传自定义 CSSJavaScript,以满足特定需求。

应用场景

  • 小型个人项目:适合开发者为自己的小型应用设置简单、有效的仪表板。
  • 家庭实验室:技术爱好者可以将其用于管理家庭服务器、应用和服务。
  • 开发和测试:开发者可以快速创建用于展示项目和服务的临时仪表板。

Dashlet 非常适合为你的家庭服务器或个人云环境创建一个统一的导航入口。你可以将所有自托管服务(如NAS、路由器、下载器、媒体服务器等)的链接都集中到 Dashlet 中,形成一个美观、便捷的启动页。

安装

在群晖上以 Docker 方式安装。

docker cli 安装

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

bash 复制代码
# 新建文件夹 dashlet 和 子目录
mkdir -p /volume1/docker/dashlet/data

# 进入 dashlet 目录
cd /volume1/docker/dashlet

# 运行容器
docker run -d \
  --name dashlet \
  --restart unless-stopped \
  -p 8989:8989 \
  -v $(pwd)/data:/app/public \
  ghcr.io/jaberio/dashlet:latest

docker-compose 安装

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

yaml 复制代码
services:
  dashlet:
    image: ghcr.io/jaberio/dashlet:latest
    container_name: dashlet
    restart: unless-stopped
    ports:
      - "8989:8989"
    volumes:
      - ./data:/app/public

然后通过 SSH 登录到您的群晖,执行下面的命令:

bash 复制代码
# 新建文件夹 dashlet 和 子目录
mkdir -p /volume1/docker/dashlet/data

# 进入 dashlet 目录
cd /volume1/docker/dashlet

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

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8989 就能看到仪表盘界面

你可以通过界面右上角的设置按钮导出 config.json 文件

修改后再导入,或者上传到 docker/dashlet/data/ 目录

config.json

示例如下:

json 复制代码
{
  "settings": {
    "theme": "system",
    "appTitle": "Dashlet",
    "greeting": "Welcome",
    "accentColor": "#3b82f6",
    "blur": true,
    "animations": true,
    "openNewTab": true,
    "layout": "list",
    "wallpaper": "",
    "searchProvider": "https://duckduckgo.com/?q=",
    "customCSS": "",
    "disableDragDrop": false,
    "dragDelay": 0,
    "searchEnabled": true,
    "footerText": "Powered by",
    "footerColor": "",
    "sortBy": "manual"
    },
  "services": [
    {
      "id": "1",
      "name": "GitHub",
      "description": "Code hosting",
      "url": "https://github.com",
      "icon": "https://github.githubassets.com/favicons/favicon.png"
    },
    {
      "id": "2",
      "name": "YouTube",
      "description": "Watch videos",
      "url": "https://youtube.com",
      "icon": "https://www.youtube.com/s/desktop/10c3d9b4/img/favicon_144x144.png"
    }
  ]
}

下面是老苏整理的 config.json 的参数说明

参数 类型 示例值 说明
settings 包含应用程序的配置信息
theme 字符串 "system" 主题模式,可以选择 "system""dark""light" 或自定义主题。
appTitle 字符串 "Dashlet" 应用程序的标题,会显示在仪表板的顶部。
greeting 字符串 "Welcome" 用户在仪表板登录后看到的欢迎信息。
accentColor 字符串 "#3b82f6" 应用程序的主色调,影响按钮和链接等元素的颜色。
blur 布尔值 true 是否启用背景模糊效果。
animations 布尔值 true 是否启用动态动画效果。
openNewTab 布尔值 true 点击服务链接时是否在新标签页中打开。
layout 字符串 "list" 服务的布局方式,可以选择 "list""grid"
wallpaper 字符串 "" 自定义壁纸的 URL,可以设置背景图像。
searchProvider 字符串 "https://duckduckgo.com/?q=" 搜索提供商的 URL,用户在搜索框中输入内容后将调用此链接。
customCSS 字符串 "" 自定义 CSS 文件的路径,允许用户添加额外样式。
disableDragDrop 布尔值 false 是否禁用拖放功能。
dragDelay 数字 0 拖动元素时的延迟,以毫秒为单位。
searchEnabled 布尔值 true 是否启用搜索功能。
footerText 字符串 "Powered by" 页脚文本。
footerColor 字符串 "" 页脚文本的颜色。
sortBy 字符串 "manual" 服务的排序方式,可以选择 "manual""name""url""description"
services 包含服务的数组,每个服务都是一个对象。
id 字符串 "1" 服务的唯一标识符。
name 字符串 "GitHub" 服务的名称,显示在仪表板中。
description 字符串 "Code hosting" 服务的简短描述。
url 字符串 "https://github.com" 服务的访问链接。
icon 字符串 "https://github.githubassets.com/favicons/favicon.png" 服务图标的 URL,用于在仪表板上显示。
  1. 其中 settings 部分可以在设置界面修改,我们一般只要改 services 部分即可;
  2. 通过 Import Config 导入的设置,不会保存到服务器;
  3. 如果想保存到服务器,可以替换 /data 目录中的文件;

参考文档

jaberio/dashlet: Lightweight dashboard for small apps

地址:https://github.com/jaberio/dashlet
Dashlet

地址:https://jaberio.github.io/dashlet/

相关推荐
Patrick_Wilson2 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy2 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭2 天前
运行你的第一个Docker容器
后端·docker·容器
宋均浩3 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
程序员老赵4 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
WangMingHua1114 天前
LM Studio Docker 部署——本地大模型一键启动
docker
曲幽5 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
武子康7 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
Alsn8610 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
程序员老赵10 天前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops