ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何快速跑通 Uptime Kuma:一份完整的自托管监控入门指南

如何快速跑通 Uptime Kuma:一份完整的自托管监控入门指南 如何快速跑通 Uptime Kuma一份完整的自托管监控入门指南【免费下载链接】uptime-kumaA fancy self-hosted monitoring tool项目地址: https://gitcode.com/GitHub_Trending/up/uptime-kumaUptime Kuma 是一款开源的自托管监控工具能盯住网站、端口、API 的健康状况挂了立刻通知你。本文带你从 clone 仓库到成功启动服务一次讲清它的目录结构、启动链路和新手必动的 3 个配置。Uptime Kuma 是什么为什么值得自托管它解决一个很实际的问题你的网站或 API 挂了你希望比用户先知道。它内置 HTTP(S)、TCP 端口、Ping、DNS、数据库等二十多种监控类型故障时能推送到 Telegram、Slack、Webhook 等上百个通知渠道还能生成一个公开的状态页给访问者看。适合想在 NAS、家用服务器或一台廉价 VPS 上白嫖「云监控」的个人开发者和小团队——数据完全在自己手里不用按监控数量付费。目录全景前后端两大块项目是典型的「一个 Node 进程 一个 Vue 前端」结构前端负责界面后端负责真正发请求探测、存数据、推通知。uptime-kuma/ ├── server/ # 后端Express Socket.IO │ ├── server.js # 后端入口 │ ├── config.js # 端口/主机/SSL 解析 │ ├── model/ # 数据模型monitor、user 等 │ ├── monitor-types/ # 各监控类型实现 │ ├── notification-providers/ # 通知渠道 │ └── routers/ # API 与状态页路由 ├── src/ # 前端 Vue 3 源码 │ ├── main.js # 前端入口 │ ├── pages/ # 页面组件 │ └── lang/ # 多语言文件 ├── config/ # Vite / Playwright 构建配置 ├── db/ # 数据库迁移脚本 ├── public/ # 图标、Service Worker 等 ├── test/ # 后端与 E2E 测试 ├── compose.yaml # Docker Compose 部署 └── package.json目录 / 文件职责server/server.js后端入口加载模块、连数据库、监听端口server/config.js解析端口、监听地址、SSL 证书等配置server/model/monitor、user、heartbeat 等数据模型server/monitor-types/每种监控类型的探测逻辑http、tcp、ping、mysql…server/notification-providers/通知渠道接入Telegram、Slack、Webhook…src/前端 Vue 3 源码页面、组件、路由、多语言config/vite.config.js前端构建配置开发服务器端口 3000db/knex_migrations/数据库表结构迁移脚本启动链路从一条命令到监听 3001 端口先说结论生产模式你只需要跑npm run start-server整个系统就是一个 Node 进程。准备阶段。clone 下来装依赖注意 Node.js 要 20.4 以上低于 18 直接拒绝启动git clone https://gitcode.com/GitHub_Trending/up/uptime-kuma cd uptime-kuma npm install启动入口。package.json 里两条命令是你要记住的start-server: node server/server.js, dev: concurrently -k -r \wait-on tcp:3000 npm run start-server-dev \ \npm run start-frontend-dev\npm run start-server直接跑生产模式npm run dev是开发模式会同时拉起 Vite 前端3000 端口和后端。初始化阶段。入口 server/server.js 先校验 Node 版本、用 dotenv 读取.env然后创建服务器单例——它就是整个后端的骨架express http 服务 socket.io再连数据库const server UptimeKumaServer.getInstance(); // express socket.io 单例 await initDatabase(testMode); // 连数据库、执行迁移、生成 JWT 密钥 await server.initAfterDatabaseReady(); // 设时区、加载维护窗口数据库默认用本地 SQLite存在 data/ 目录里零配置就能跑。注意顺序数据库没就绪路由不会注册。监听与挂载。初始化完成后才注册路由并监听端口server.httpServer.listen(port, hostname, async () { await startMonitors(); // 恢复所有启用中的监控任务 });端口一起来就自动把之前活跃的监控逐个拉起来每个间隔 300~1000ms 随机延迟避免启动瞬间打爆目标服务。前端怎么进来。生产模式下你不需要单独起前端——后端用 express-static-gzip 直接把 dist/ 构建产物端出来浏览器访问的就是这同一个端口。前端的入口 src/main.js 逻辑很简单app.use(router); app.use(i18n); app.mount(#app);第一次启动时用户表是空的打开页面会先进入 Setup 流程让你创建管理员账号之后就是正常的 Dashboard。关键配置新手必动的 3 项真正要动手的只有下面几项全在 server/config.js 里统一解析配置项怎么改默认值什么时候改服务端口--port 3002或环境变量PORT/UPTIME_KUMA_PORT3001端口被占用时。优先级命令行 UPTIME_KUMA_PORT PORT 3001监听地址--host 0.0.0.0或环境变量HOST所有网卡只想要内网访问时收紧走反向代理时一般不用动数据目录data/SQLite 库、截图、上传文件./dataDocker 部署务必把该目录挂成 volume删容器前记得备份另外两个可选项了解即可--ssl-key/--ssl-cert配了就直接以 HTTPS 启动不配就放 Nginx 后面反代NODE_ENV不设时默认按production跑。小结生产启动就一条命令npm run start-server默认端口 3001前后端共用这一个入口。数据默认落在本地 SQLitedata/ 目录Docker 部署时持久化这个目录是重中之重。启动链路固定不变查版本 → 读 .env → 建服务器骨架 → 连库 → 挂路由 → 监听端口 → 恢复监控。下一步建议把第一个 HTTP 监控建好、接一条 Webhook 通知然后故意把监控指向一个失效地址看着通知发出来——你就把监控和通知两条主链路都摸透了。【免费下载链接】uptime-kumaA fancy self-hosted monitoring tool项目地址: https://gitcode.com/GitHub_Trending/up/uptime-kuma创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表