{"id":30884929,"url":"https://github.com/baiwumm/uptimekeeper","last_synced_at":"2026-03-17T08:02:41.084Z","repository":{"id":314051432,"uuid":"1053967527","full_name":"baiwumm/UptimeKeeper","owner":"baiwumm","description":"基于 Next.js 构建的 UptimeRobot API 站点监控平台，实时监测网站运行状态，提供可视化报表与提醒功能，帮助你快速掌握服务可用性与性能健康状况。","archived":false,"fork":false,"pushed_at":"2026-02-26T06:00:50.000Z","size":7115,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-26T10:57:09.139Z","etag":null,"topics":["motion","next-themes","nextjs16","reactjs","tailwindcss-v4"],"latest_commit_sha":null,"homepage":"https://monitor.baiwumm.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/baiwumm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-10T07:21:10.000Z","updated_at":"2026-02-26T06:00:53.000Z","dependencies_parsed_at":"2025-09-17T11:25:49.944Z","dependency_job_id":null,"html_url":"https://github.com/baiwumm/UptimeKeeper","commit_stats":null,"previous_names":["baiwumm/uptimekeeper"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/baiwumm/UptimeKeeper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baiwumm%2FUptimeKeeper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baiwumm%2FUptimeKeeper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baiwumm%2FUptimeKeeper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baiwumm%2FUptimeKeeper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/baiwumm","download_url":"https://codeload.github.com/baiwumm/UptimeKeeper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baiwumm%2FUptimeKeeper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30618074,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T04:46:40.957Z","status":"ssl_error","status_checked_at":"2026-03-17T04:46:32.538Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["motion","next-themes","nextjs16","reactjs","tailwindcss-v4"],"created_at":"2025-09-08T11:22:46.285Z","updated_at":"2026-03-17T08:02:41.080Z","avatar_url":"https://github.com/baiwumm.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg alt=\"logo\" src=\"./public/logo.svg\" width=\"80\"/\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://vercel.com\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Vercel\" src=\"https://img.shields.io/badge/deployed%20on-Vercel-black?style=flat\u0026logo=vercel\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://nextjs.org/\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Next\" src=\"https://img.shields.io/badge/Next-16.0-black?style=flat\u0026logo=Next.js\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.heroui.com/\" target=\"_blank\"\u003e\n    \u003cimg alt=\"HeroUI\" src=\"https://img.shields.io/badge/HeroUI-v3-black?style=flat\u0026logo=HeroUI\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://tailwindcss.com/\" target=\"_blank\"\u003e\n    \u003cimg alt=\"TaildwindCSS\" src=\"https://img.shields.io/badge/TailwindCSS-black?style=flat\u0026logo=tailwindcss\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"./LICENSE\" target=\"_blank\"\u003e\n    \u003cimg alt=\"LICENSE\" src=\"https://img.shields.io/badge/license-MIT-blue\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\n参考项目：[Uptime-Status](https://github.com/JLinMr/Uptime-Status)，主要做了以下改进：\n1. 使用 Next.js16.x 版本开发，解决 [UptimeRobot API](https://uptimerobot.com/) 跨域的问题\n2. 基于最新的 [UptimeRobot's v3 REST API](https://uptimerobot.com/api/v3/)\n2. 基于 [Hero UI](https://www.heroui.com) 和最新的 [TailwindCSS 4.x](https://tailwindcss.com/) 版本\n3. 基于 [Motion](https://motion.dev/) 动画库\n\n## 💻 演示预览\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch3\u003e🌞 亮色模式\u003c/h3\u003e\n  \u003cimg alt=\"亮色模式预览\" src=\"./public/light.png\" width=\"80%\"/\u003e\n  \n  \u003ch3\u003e🌙 暗色模式\u003c/h3\u003e\n  \u003cimg alt=\"暗色模式预览\" src=\"./public/dark.png\" width=\"80%\"/\u003e\n\u003c/div\u003e\n\n## 🌟 特性\n\n- 📊 实时监控网站状态（在线/离线/暂停）\n- 📈 监控健康概览（总体可用率、可视化响应时间图表）\n- 📅 最近一次故障记录查看\n- 🎨 响应式设计，支持深色/浅色主题\n- ⚡ 动画效果，流畅用户体验\n- 📱 移动端适配\n\n## 🛠 技术栈\n\n- [Next.js 16](https://nextjs.org/) - React 框架(基于 React19.x)\n- [Hero UI](https://www.heroui.com) - UI 库\n- [TypeScript](https://www.typescriptlang.org/) - 类型安全\n- [Tailwind CSS](https://tailwindcss.com/) - 样式框架\n- [Motion](https://motion.dev/) - 动画库\n- [UptimeRobot API](https://uptimerobot.com/api) - 网站监控服务\n\n## 📦 安装\n\n1. 克隆项目\n\n```bash\ngit clone https://github.com/baiwumm/UptimeKeeper.git\n```\n\n2. 安装依赖\n\n```bash\ncd UptimeKeeper\npnpm install\n```\n\n3. 配置环境变量\n\n创建 `.env` 文件并添加以下配置：\n\n```env\n# UptimeRobot API Key\nUPTIMEROBOT_API_KEY = \"xxx\"\n# API 代理地址\nUPTIMEROBOT_API_URL = \"https://api.uptimerobot.com/v3/monitors\"\n# Status Pages URL\nUPTIMEROBOT_STATUS_API_URL = \"https://stats.uptimerobot.com/api\"\nUPTIMEROBOT_STATUS_API_KEY = \"xxx\"\n\n# 网站域名\nNEXT_PUBLIC_APP_URL = 'https://monitor.baiwumm.com'\n# 网站名称\nNEXT_PUBLIC_APP_NAME = 'UptimeKeeper'\n# 网站描述\nNEXT_PUBLIC_APP_DESC = '一个优雅的站点状态监控面板'\n# 网站关键词\nNEXT_PUBLIC_APP_KEYWORDS = 'UptimeKeeper,UptimeRobot, 网站监控, API监控, 服务可用性, 站点状态, 网站宕机检测, 服务器健康监测, 实时监控, 可视化报表'\n# 网站ICP\nNEXT_PUBLIC_SITE_ICP = '粤ICP备2023007649号'\n# 网站公网备案\nNEXT_PUBLIC_SITE_GUAN_ICP = '粤公网安备44030402006402号'\n# 版权\nNEXT_PUBLIC_COPYRIGHT = '白雾茫茫丶'\n# 检测频率/分钟\nNEXT_PUBLIC_INTERVAL = '5'\n```\n\n4. 启动开发服务器\n\n```bash\npnpm dev\n```\n\n访问 http://localhost:5173 查看应用。\n\n## 🚀 部署\n\n```bash\n# 构建生产版本\npnpm build\n\n# 启动生产服务器\npnpm start\n```\n\n## 📁 项目结构\n\n```\nsrc/\n├── app/                 # Next.js 应用目录\n│   ├── api/             # API 路由\n│   └── components/      # 全局组件\n├── components/          # 页面组件\n└── lib/                 # 工具函数和类型定义\n```\n\n## 📝 使用说明\n\n1. 获取 [UptimeRobot](https://uptimerobot.com/) API 密钥\n2. 在 UptimeRobot 中配置需要监控的网站\n3. 在 [Status pages](https://dashboard.uptimerobot.com/status) 添加所有的网站，获取地址后面的 Key，填入 `.env` 文件中\n3. 将 API 密钥添加到环境变量中\n4. 启动应用即可查看网站监控状态\n\n## 🤝 贡献\n\n欢迎提交 Issue 和 Pull Request 来帮助改进这个项目。\n\n## 📄 许可证\n\n[MIT](./LICENSE) © [baiwumm](https://github.com/baiwumm)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaiwumm%2Fuptimekeeper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaiwumm%2Fuptimekeeper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaiwumm%2Fuptimekeeper/lists"}