# KKIndex **Repository Path**: keysking/kkindex ## Basic Information - **Project Name**: KKIndex - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-30 - **Last Updated**: 2026-10-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # KKIndex KKIndex 是 keysking 自用的浏览器 Home 导航页,用来集中管理常用网站、创建任务,并把任务安排到日历中。 项目以桌面浏览器为主要使用场景,将网站导航、任务清单和连续周日历整合在一个简洁轻盈的页面里;数据部署在自己的服务器上,可以在不同电脑和浏览器之间同步。手机端可以查看近期日程和任务、勾选完成状态以及打开相关链接。 ## 功能 ### 网站导航 - 创建多个导航分组,整理不同用途的网站。 - 自动获取网站标题和图标,也可以手动修改或上传图标。 - 单击网站打开页面,双击编辑,直接拖动调整顺序。 - 导航分组支持单击切换、双击编辑和拖动排序。 - 网站可以在不同导航分组之间移动。 ### 任务清单 - 使用“父任务 + 子任务”两层结构组织待办事项。 - 父任务和子任务分别记录完成状态,不会自动互相完成。 - 支持备注、颜色和多个相关链接。 - 父任务以瀑布流卡片展示,可以拖动排布并调整卡片高度。 - 支持筛选、搜索、排序、归档、回收站和 `Ctrl+Z` 撤销。 ### 日历排期 - 日历只显示子任务,任务清单和日历引用同一条任务数据。 - 默认以当前周为中心显示约五周,并可连续上下滚动。 - 可以把子任务从任务区拖到某一天完成排期。 - 支持单日和多日任务,并通过任务条头尾调整日期范围。 - 同一天的任务可以上下拖动调整显示顺序。 - 已完成任务会在日历中淡化并显示完成标记。 - 跨天、跨周任务保持连续和对齐。 ### 日历事项与节假日 - 添加独立于任务的日历事项,例如生日、纪念日或其他安排。 - 支持公历和农历日期,也可以设置为每年重复。 - 显示农历日期、中国节假日和调休信息。 - 节假日数据支持自动获取、管理员确认和人工修正。 ### 账号与同步 - 使用独立账号密码登录,账号由管理员创建。 - 任务、日历、导航、链接和图标资源均按账号隔离。 - 通过服务器在不同电脑和浏览器之间同步数据。 - 多端发生修改时会重新获取最新内容并提示冲突。 - 断网时保留已经加载的内容,不提供离线修改队列。 ### 自托管 - React、TypeScript、Fastify 和 SQLite 构建。 - 使用单个 Docker 应用容器提供前端、API 和实时同步。 - 支持 Ubuntu、Docker Compose 和现有 Nginx HTTPS 入口。 - 提供数据库迁移、部署前备份、每日备份、恢复和失败回滚。 - 支持 Gitee 流水线登录服务器、更新代码并执行 `deploy.sh`。 ## 本地启动 需要 Node.js 26.x 和 pnpm 11.3.0。 ```sh pnpm install --frozen-lockfile pnpm db:migrate pnpm init-admin pnpm dev ``` 打开 `http://127.0.0.1:5173`。 ## 部署 复制 `.env.example` 为 `.env`,填写访问域名、监听端口和数据目录,然后执行: ```sh chmod +x deploy.sh ./deploy.sh ./deploy.sh init-admin ``` 完整的 Nginx、Gitee 流水线、备份、恢复和回滚说明见[部署与运维](docs/04-部署与运维.md)。 ## 文档 - [首页产品方案](docs/01-首页产品方案.md) - [技术架构](docs/02-技术架构.md) - [实施说明](docs/03-实施说明.md) - [部署与运维](docs/04-部署与运维.md) - [验收记录](docs/05-验收记录.md)