使用worker转发跳转替换路径,现在应该差不多完美了
感谢佬:【Cloudflare教程系列】利用Worker反代github 提供的思路
uptime-kuma是一个优雅网站在线状态监控面板工具,我认为它也可以是你的域名集合站,避免在新设备上访问时还需要麻烦的寻找收藏的域名。
之前有佬分享了docker部署的教程:【好玩的 Docker 项目】搭建一个高颜值的网站和服务在线状态跟踪工具——“uptime-kuma”
但是我觉得不稳,毕竟所有服务都部署在自己的服务器上,面板都挂了还监控个锤子啊(
然后我就想着用Vercel railway worker之类的服务部署,但是要么限制额度要么没数据库,最后是选择了huggingface space构筑,感谢大佬分享的教程:自建免费的网站监控服务-在huggingface上部署uptime kuma - luckzack - 博客园
部署面板
默认你有hugging face账号,下面是我步骤:
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"]
- 提交修改:
- 不需要等待完成,去files里编辑README文件:
- 增加一行 :
app_port: 3001 ,然后提交Commit
- 验证成功OR失败
观察你的页面上有没有以下图标之一:
——祝贺你,成功了!
——等一会,稍安勿躁,还没部署完!不行的话,看看你的 readme.md 填写对了吗?
No application file——dockerfile忘记保存了吧?
Build error或 Runtime error——出错了,检查dockerfile是否多了回车!
域名跳转
然后我觉得这个域名难看又难记,想用自定义域名访问,可惜hugging face没有开通这个业务,前年就有人提了。
参考佬的思路,用worker转发,并且我把路径也做了替换,如果想直接指向面板根路径的话,就将可选区域去除,或者根据你的需求调整路径:
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; }, };
|