为什么选择Hugging Face Space来部署uptime-kuma监控面板?
问题:为什么选择Hugging Face Space?
答:因为之前尝试过使用其他服务,但要么有额度限制,要么没有数据库支持,最终选择了Hugging Face Space。
问题:Hugging Face Space有什么优势?
答:Hugging Face Space提供了免费的空间,支持Docker部署,并且拥有MIT许可证,适合部署开源项目。
部署面板步骤
问题:如何在Hugging Face Space上部署uptime-kuma监控面板?
答:按照以下步骤操作:
创建新空间
- 登录Hugging Face账号。
- 创建一个新的空间,命名为”uptime-kuma”。
- 选择MIT许可证。
- 选择空间SDK为docker(Blank)。
- 确定选择免费的空间硬件。
编辑Dockerfile
- 创建一个Dockerfile。
- 在Dockerfile中添加以下内容:
FROM alpine AS builder
RUN apk add --no-cache nodejs npm git
RUN npm install npm -g
RUN adduser -D app
USER app
WORKDIR /home/app
RUN git clone https://github.com/louislam/uptime-kuma.git
WORKDIR /home/app/uptime-kuma
RUN npm run setup
EXPOSE 3001
CMD ["node", "server/server.js"]
增加一行 : app_port: 3001
,然后提交Commit
提交修改
- 在文件中编辑README文件,添加一行
app_port: 3001
,然后提交Commit。
验证部署是否成功
观察页面上是否出现以下图标之一:
-
- 成功部署。
-
- 部署尚未完成,请稍候。
-
- Dockerfile可能未保存。
-
- 出现错误,请检查Dockerfile是否格式正确。
获取访问链接
等待部署完成后,获取访问链接,点击”Embed this Space”。
使用自定义域名访问
问题:如何使用自定义域名访问uptime-kuma监控面板?
答:按照以下步骤操作:
利用Cloudflare进行域名跳转
- 进入Cloudflare的Workers和Pages页面。
- 创建一个应用程序,编辑代码,然后保存并部署以下代码:
export default {
async fetch(request, env) {
const _url = new URL(request.url);
const hostname = _url.hostname;
_url.hostname = "xxx.hf.space";
const req = new Request(_url, request);
req.headers.set('origin', 'https://xxx.hf.space');
const res = await fetch(req);
let newres = new Response(res.body, res);
let location = newres.headers.get('location');
if (location !== null && location !== "") {
// 可选 - >
// 去除原始路径中的 /dashboard
location = location.replace('/dashboard', '');
// 添加 /status/web 路径
location = location + '/status/web';
// <- 可选
location = location.replace('://xxx.hf.space', '://'+hostname);
newres.headers.set('location', location);
}
return newres;
},
};
- 在Cloudflare网站中选择你的域名,增加一个DNS解析,设置为A记录。
- 添加一个Workers路由,点击保存。
浏览器测试
最后,在浏览器中尝试访问你的自定义域名,确保一切正常。
总结
通过Hugging Face Space和Cloudflare的配合,我们成功地部署了uptime-kuma监控面板,并且使用自定义域名进行访问。这种组合利用了免费的资源,为我们的项目提供了稳定的基础。
© 版权声明
文章版权归作者所有,未经允许请勿转载。