desirevolution/jump-key
GitHub: desirevolution/jump-key
一个基于 Lit 构建的极简键盘驱动型 PWA 起始页,用于集中管理和快速跳转各类 Web 服务,纯静态运行无需后端。
Stars: 2 | Forks: 0
JumpKey
#### JumpKey — 一个极简的、键盘驱动的本地优先 PDA 起始页,专为你的服务而生。
## [在线演示](https://desirevolution.github.io/jump-key/)
## 功能
- **以键盘为中心的导航**:使用连续的键盘快捷键导航分类并启动服务。
- **分类组织**:将服务分组到可配置的分类中。
- **收藏夹**:将常用的服务标记为收藏夹以便快速访问。
- **最近使用**:标记最近使用的服务以便快速访问。
- **即时搜索**:在输入时实时过滤服务。
- **搜索引擎集成**:配置多个搜索引擎以进行快速网络搜索。
- **内置配置编辑器**:直接从 Web 界面编辑配置。
- **配置导入/导出**:创建/恢复本地配置备份。
- **配置验证**:在应用更改前验证 JSON。
- **响应式用户界面**:针对桌面和移动设备进行了优化。
- **本地化支持**:支持国际化的自动语言检测。目前包含 DE、EN、FR、ES。
- **主题**:包含 6 种深色和 3 种浅色主题。
- **Docker 就绪**:使用包含的 Docker Compose 配置进行部署。
- **轻量级架构**:使用 Lit 构建,实现快速渲染和最少的资源占用。
- **静态部署**:无需后端或数据库。(Caddy + WebDav plugin)
- **简单的多用户支持**:将 Remote-User header 映射为已保存配置文件的一部分。
## 截图
## 快速开始
复制/调整 [compose.yml](compose.yml) 和 /config/[services.json](services.example.json),并将所有自定义图标图像放在 /icon 目录下。
然后运行:
```
# caddy webdav container 需要对 config 目录的写入权限
chown -R 100 config
docker compose up -d
```
## 配置
应用程序通过 `config/services.json` 文件进行配置。
### 可用选项
| 键 | 类型 | 描述 |
| :----------------------------- | :------- | :--------------------------------------------------------------------------------------------------- |
| `categories` | `Array` | 对你的 Web 服务进行分组的类别对象列表。 |
| `categories[].category` | `String` | 类别块的可见显示名称。 |
| `categories[].categoryKey` | `String` | _(可选)_ 用于激活此类别的键盘热键字符。如果省略则自动分配。 |
| `categories[].icon` | `String` | Lucide icon 标识符(例如 `layout-grid`)、图片 URL 或与 `./icons/` 中图片匹配的文件名。 |
| `categories[].services` | `Array` | 属于该分组的链接数组。 |
| `categories[].services[].name` | `String` | 特定 Web 应用程序或网站的标题。 |
| `categories[].services[].url` | `String` | 完整的目标 URL(例如 `https://github.com`)。 |
| `categories[].services[].key` | `String` | _(可选)_ 当类别打开时用于启动此项目的特定热键。 |
| `categories[].services[].icon` | `String` | Lucide icon 标识符(例如 `layout-grid`)、图片 URL 或与 `./icons/` 中图片匹配的文件名。 |
| `searchEngines` | `Array` | 可在统一搜索栏中使用 `:` 指示符访问的自定义查询快捷方式。 |
| `searchEngines[].name` | `String` | 外部搜索提供程序的显示名称。 |
| `searchEngines[].prefix` | `String` | 关键字触发文本(例如,`g` 映射到通过 `:g
` 进行搜索)。 |
| `searchEngines[].url` | `String` | 搜索引擎查询 URL 字符串,包含 `%s` 作为搜索词占位符。 |
| `searchEngines[].icon` | `String` | Lucide icon 标识符(例如 `layout-grid`)、图片 URL 或与 `./icons/` 中图片匹配的文件名。 |
### `services.json` 示例
```
{
"categories": [
{
"category": "Development",
"categoryKey": "d",
"icon": "code",
"services": [
{
"name": "GitHub",
"url": "https://github.com",
"key": "g",
"icon": "github.png"
},
{
"name": "Local Host",
"url": "http://localhost:8080",
"key": "l",
"icon": "globe"
}
]
},
{
"category": "Monitoring",
"categoryKey": "m",
"icon": "activity",
"services": [
{
"name": "Grafana",
"url": "https://grafana.example.com",
"key": "g",
"icon": "trending-up"
}
]
}
],
"searchEngines": [
{
"name": "Google",
"prefix": "g",
"url": "https://www.google.com/search?q=%s",
"icon": "search"
},
{
"name": "Wikipedia",
"prefix": "w",
"url": "https://en.wikipedia.org/wiki/Special:Search?search=%s",
"icon": "book-open"
}
]
}
```
## 多用户支持(Authelia 等)
如果检测到 Remote-User header,则会将其用作预期本地配置名称的一部分:
"Remote-User" header | 预期配置文件 | (自动)备份文件
---|---|---
未设置 | services.json | services.backup-2026-07-25T06-54-03-332Z.json
arthur | services.arthur.json | services.arthur.backup-2026-07-25T06-54-03-332Z.json
## 免责声明
#### 本项目是在 AI 支持下构建的。我是一个懒惰的开发者...标签:Docker, Lit, PWA, Web前端, 安全监控, 安全防御评估, 导航主页, 本地优先, 版权保护, 自定义脚本, 请求拦截, 键盘驱动