# homepage **Repository Path**: aiy/homepage ## Basic Information - **Project Name**: homepage - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-23 - **Last Updated**: 2026-08-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # homepage — 极简个人导航站 一个单二进制、零依赖的个人导航页,类似 Sun-Panel / Homepage / Homer。 ## 特性 - 🚀 **单二进制部署** — 无需 Node.js、无需 Nginx、无需 Docker、无需数据库 - 🎨 **响应式设计** — 桌面端和移动端均可优雅展示 - 🔍 **实时搜索** — 按标题、描述、URL 搜索站点 - 📋 **侧边栏导航** — 左侧滑入式分组导航,点击滚动到对应分组 - 🔝 **回到顶部** — 右下角一键回到顶部 - 🔧 **可视化管理** — 拖拽排序、CRUD 操作,所见即所得 - 🔐 **Session 认证** — HttpOnly Cookie,内存 Session 存储 - 📦 **全静态嵌入** — 所有前端资源嵌入二进制,一个文件即可运行 ## 快速开始 ### 1. 下载或编译 ```bash # 编译 go build -o homepage # 或直接使用预编译二进制 ``` ### 2. 运行 ```bash ./homepage ``` 默认监听 `:8080`。首次运行会自动生成 `conf/config.json` 和 `conf/data.json`。 ### 3. 访问 - **首页**:http://localhost:8080 - **管理**:http://localhost:8080/admin - **登录**:http://localhost:8080/login 默认管理员:`admin` / `123456` ## 配置文件 ```json { "username": "admin", "password": "123456", "port": 8080 } ``` ## 数据格式 ```json { "groups": [ { "name": "开发", "sites": [ { "title": "GitHub", "url": "https://github.com", "description": "代码托管平台", "icon": "", "bgColor": "" } ] } ] } ``` `icon` 字段可选,留空则自动从 Google Favicon 服务获取。 ## API | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/sites | 获取站点数据 | | POST | /api/login | 管理员登录 | | POST | /api/logout | 退出登录 | | GET | /api/check-auth | 检查认证状态 | | POST | /api/save | 保存站点数据(需认证) | | POST | /api/upload | 上传图标文件(需认证,支持 svg/png/jpg/gif/webp/ico,最大 5MB) | | POST | /api/fetch-icon | 从网站自动获取图标并保存到本地(需认证) | ## 技术栈 - **后端**:Go 标准库(net/http、embed) - **前端**:原生 HTML/CSS/JS + Alpine.js + SortableJS(本地嵌入,无需 CDN) - **认证**:内存 Session(crypto/rand token) - **存储**:JSON 文件 ## 项目结构 ``` ├── main.go # 后端入口 ├── go.mod # Go 模块 ├── conf/ # 数据目录 │ ├── config.json # 配置文件 │ └── data.json # 站点数据 ├── uploads/ # 上传的图标文件(按日期分目录) └── web/ ├── index.html # 首页 ├── login.html # 登录页 ├── admin.html # 管理页 ├── app.js # 首页逻辑 ├── login.js # 登录逻辑 ├── admin.js # 管理逻辑 └── style.css # 样式 ``` ## 编译安装 - linux ```bash $env:CGO_ENABLED="0" $env:GOOS="linux" $env:GOARCH="amd64" go build -o homepage main.go ```