StartDeck 自托管浏览器工作台

把 NAS、内网服务、Docker 状态、AI 使用量和每天会用到的链接,整理成浏览器打开后的第一屏。稳定运行、自己部署、数据留在本地。

  • Docker 镜像 apkdv/startdeck
  • GitHub Pages 官网
  • AGPLv3 开源
入口、状态和桌面组件集中在第一屏,打开浏览器即可开始工作。
前端、Rust 主服务、独立 MetaServer 和 SQLite 组成完整自托管链路。
Docker 或 Debian/Ubuntu 脚本部署,默认 Web 入口为 9001。
StartDeck PC 端首页工作台
首页工作台 搜索、站点入口、桌面组件、网络状态和登录入口集中在同一屏。
整理入口 站点、分组、搜索引擎和组件共享同一套首页布局。
识别网络 同一服务可维护公网和内网地址,访问时自动选择入口。
看见状态 天气、日历、待办、AI 额度、系统状态都回到第一屏。
保留控制权 SQLite、上传资源和图标缓存都留在自己的服务器上。

它不是更漂亮的书签页,而是自托管入口层。

家庭服务器和 NAS 的日常问题通常不是没有服务,而是入口、地址、状态和工具被拆散在很多地方。StartDeck 把它们收进一个可维护的页面。

分散之后,每次打开都要重新找。

  • 服务入口散落在浏览器收藏夹、备忘录和群晖面板里。
  • 公网地址、内网地址、反代地址需要人工判断。
  • Docker、系统资源、AI 额度和研发状态不在同一屏。
  • 站点图标、标题和描述需要重复手动补齐。

集中之后,第一屏就能开始操作。

  • 站点、分组、搜索和组件用同一套网格组织。
  • 公网/内网地址、客户端 IP 和延迟探测一起参与入口选择。
  • 天气、日历、待办、AI 使用量、TAPD 和系统状态进入首页。
  • 独立 MetaServer 负责默认图标、站点元数据和本地缓存。

第一屏负责操作,不只负责展示。

搜索、打开服务、查看状态、切换网络入口和进入组件工作流都发生在首页,让常用动作少一次跳转。

StartDeck PC 端首页工作台
PC 端首页视图,包含搜索、站点入口、状态组件和桌面组件布局。
01

打开服务

搜索引擎、站点卡片和分组入口并列出现,减少来回跳转。

02

查看状态

天气、日历、待办、AI 额度和研发状态作为信息层常驻首页。

03

切换网络

同一个服务维护公网和内网访问方式,适配家庭、公司和公网访问。

04

补齐资产

站点标题、描述、图标、上传图标和背景色由元数据服务统一补齐。

组件负责承载信息,而不是填满页面。

组件按首页和打开态分别处理:小组件负责关键状态,打开态负责详细操作。

时间与内容 时钟、天气、日历、纪念日、今日诗词、今日英语、电影日历和壁纸。
任务与工具 待办、备忘录、番茄时钟、金额换算、今天吃什么和本机 IP。
研发工作流 AI 使用量和 TAPD 缺陷组件适合把研发状态、额度和待处理事项放进首页。
系统组件 Docker、系统状态、访客统计、版本检测和镜像更新检查服务服务器场景。
自定义组件 HTML、CSS、JS、iframe、代理请求和脚本生命周期让用户继续扩展。
多尺寸适配 组件支持不同网格尺寸和打开态面板,首页展示与深度操作分开处理。

NAS 和家庭服务器需要的是入口,也是运行面板。

StartDeck 的服务器能力不是“另一个后台页面”,而是把常看的运行状态收进首页:容器、CPU、内存、磁盘、IP、图标缓存和代理链路。

系统状态一眼可见

系统状态组件用于查看 CPU、内存、磁盘等基础资源;Docker 组件用于查看容器状态,并执行启动、停止、重启和镜像更新等动作。

CPU 38%
Memory 61%
Disk 72%
Frontend

Vue 3 工作台

负责首页、组件运行态、设置、搜索、拖拽和响应式展示。

Backend

Rust 主服务

提供认证、配置、Docker、代理、天气、IP 与站点元数据接口。

MetaServer

图标元数据

独立处理内置图标库、站点图标识别、缓存和标题描述补齐。

Storage

SQLite + Data

布局、书签、组件配置和运行资源保存在自己的服务器上。

高级用户可以继续把自己的工具接进来。

StartDeck 保留自托管项目该有的扩展入口:全局自定义 CSS、全局自定义 JS、自定义组件、iframe、后端代理和上传资源管理。

自定义组件示例 HTML / CSS / JS
<div class="service-panel">
  <h3>家庭服务器</h3>
  <p>当前在线服务:12</p>
  <button data-action="refresh">刷新状态</button>
</div>

.service-panel {
  height: 100%;
  display: grid;
  align-content: center;
  gap: 8px;
}

ctx.proxy("/api/custom/status").then(updatePanel);
自定义 HTML/CSS/JS 把内部工具、统计信息或脚本面板包装成首页组件。
iframe 与代理请求 嵌入内部服务,或通过后端代理解决跨域和网络访问问题。
外观与资源管理 壁纸、移动端壁纸、卡片背景、图标上传、图标底色和全局 CSS。
凭据边界清晰 天气、AI、TAPD 等外部服务凭据按服务端配置和本地存储边界管理。

用 Docker 或 Debian/Ubuntu 脚本部署到自己的服务器。

默认 Web 入口为 9001,元数据服务为 9002。Docker 镜像内同时启动主服务与元数据服务;Debian/Ubuntu 脚本适合非容器部署。

Docker CLI

docker run -d \
  --name startdeck \
  --restart unless-stopped \
  -p 9001:9001 \
  -v $(pwd)/Data:/app/Data \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e PORT=9001 \
  -e STARTDECK_ADMIN_PASSWORD=change-me \
  -e META_SERVER_PORT=9002 \
  -e META_SERVER_DATA_DIR=/app/Data/meta-service \
  -e META_SERVER_BASE_URL=http://127.0.0.1:9002 \
  -e META_SERVER_TIMEOUT_MS=5000 \
  apkdv/startdeck:latest

Debian / Ubuntu

wget -O deploy_debian.sh \
  https://raw.githubusercontent.com/appdev/StartDeck/main/deploy_debian.sh
chmod +x deploy_debian.sh
sudo ./deploy_debian.sh

把自托管服务的入口层,交给一个真正可维护的首页。

StartDeck 适合 NAS、家庭服务器、开发环境和长期维护个人入口的用户。开源、自托管、数据在本地,部署后访问浏览器第一屏即可开始使用。

获取 StartDeck