利用Cloudflare Pages托管静态站点
利用Pages托管静态站点 从边栏进入计算(Workers)->Workers和Pages,创建一个Pages应用程序。如果博客代码是托管在github或gitlab中,则选择连接到git,否则直接上传public文件夹中的内容即可。 当前Pages还不支持Hexo,选择好托管的仓库后,在构建设置中按下图填写构建命令和输出目录。 最后,点击保存并部署后,等待cloudflare拉取代码并部署博客即可。部署完成后,cloudflare会自动分配一个url用于访问博客,也可以在自定义域中绑定自己的域名。 308重定向问题 当请求的URL包含html后缀时,Pages会将请求URL重定向到不含html后缀的地址去。 在GitHub上已经有人提出了这个问题,但是对于Pages当前没有配置项来修改这一行为。 🚀 Feature Request: Urgently need a way to disable redirects from foo.html to foo with Pages · Issue #1488 · cloudflare/workers-sdk 本人的解决方...
解决heimdall无法刷新app列表的问题
参考:Heimdall - no applications, updating list does not work : selfhosted (reddit.com) 最近通过docker安装heimdall后,发现无法更新app列表。查看docker日志如下: [2022-03-08 07:11:57][35] Processing: App\Jobs\ProcessApps[2022-03-08 07:12:00][35] Failed: App\Jobs\ProcessApps[2022-03-08 07:12:00][36] Processing: App\Jobs\ProcessApps[2022-03-08 07:12:02][36] Failed: App\Jobs\ProcessApps 排除网络原因后,直接访问文件下载地址返回404,猜测是文件下载服务器关闭或出现故障。后发现作者在github上维护了app列表的项目,直接克隆到本地即可。 参考作者的wiki和reddit上的帖子,步骤如下(基于docker环境): 将https://github.com/l...
在VMware中安装unraid系统
起因 家里的nas的第一个系统就是unraid,整体体验不错,系统蛮符合我的需求的。只是由于它自带的app商店经常需要科学的方法才能连上,体验不太好,才换成现在的truenas。而现在的truenas社区app的docker镜像地址都换成了tccr.io,不能用dockerhub的镜像加速以后连接速度感人。最近在犹豫是否换回unraid,就准备在虚拟机中尝试下unraid现在的app商店情况如何。 由于unraid没有提供系统镜像,只能从U盘启动系统,在虚拟机中使用unraid就比较麻烦,百度搜索只搜到一篇安装失败的博客,参考价值不大,只能自己想办法。 不想看折腾过程的直接看结论即可。 过程 U盘直通 既然unraid需要从U盘启动,就尝试在vm虚拟机的bios中设置U盘启动。然而无效,似乎vmware的bios不能识别unraid的启动U盘。 可以看到由于前三项的启动都失败了,bios转到了最后的网络启动,说明此方法无效。 后经过搜索,发现需要将U盘转化为vm的硬盘,才可以通过它启动。方法如下: 打开虚拟机设置界面,选择添加->硬盘->SATA类型->使...
简述几种经典的网络攻击方式
最近在查看Django安全性方面的文档:Django 的安全性 ,发现针对过去经典的四大攻击方式都有相应的防护策略,结合之前学习的郭老师(知乎@ustcsse308)的信息安全实践课程,本文对这几个攻击方式做个总结。 CSRF:跨站请求伪造 原理 CSRF全称是Cross-Site Request Forgery,根据字面意思来理解,就是攻击者伪造了用户的请求,这种攻击方式主要依靠的是cookie。 由于HTTP协议是一种无状态协议,服务器无法直接依据用户的请求来识别用户,因此需要在本次存储一段可以识别用户信息的文本,当用户向服务器发送请求时,同时携带该段文本信息,服务器即可据此识别出用户身份,这就是cookie的主要用途。 因此,只要拿到用户的cookie,任何人都可以利用它与服务器通信。对此,浏览器有一个功能,即在用户发起请求时,仅会携带与请求站点相关的cookie,保证用户访问的站点无法获得用户本地存储的其他站点的cookie。 那么,这种保护措施是否足够安全了呢?显然答案是否定的,攻击者可以构造出一个页面,在页面内发起对被攻击页面的请求,这样浏览器在发送请求时仍然会携带对...
git常用操作
推荐一个学习git的网站:Learn Git Branching。 本文记录学习git时总结的一些常用操作,如有错误欢迎在评论区指正。下文图中的c0,c1,…cn实际使用中为提交记录的hash值。 分支操作 新建分支:branch和checkout # 新建分支git branch <bname># 切换分支git checkout <bname># 新建并切换分支,实际上是上面两条命令的组合git checkout -b <bname> 此外,自2.23版本开始,git添加了switch命令,用于切换分支: # 切换分支git switch <bname># 新建并切换分支git switch -c <bname> 合并分支:merge和rebase # 将bname分支的内容合并到当前分支git merge <bname># 将当前分支以onto为起点,形成新的提交树git rebase <onto># 将bname分支以onto为起点,形成新的提交树git rebase <onto&g...
TrueNAS SCALE创建app提示waiting for a volume to be created...
先说结论,问题原因是系统默认拉取的是k8s.gcr.io的镜像,而该网址国内无法访问,所以最简单的方式是科学上网,没有条件的可以继续看下去。 错误介绍 官方默认禁用了docker的iptables和bridge,虽然可以通过指定配置文件的方式来避免这些限制,但是升级系统的时候还是会恢复到原先的配置,每次都要重新指定,也比较麻烦。故萌生了使用官方提供的k8s的方式来创建应用。 官方提供的app非常少,好在有第三方提供的模板可供使用,地址:02 - Adding TrueCharts to SCALE - TrueCharts 但是在尝试创建应用时,却一直卡在DEPLOYING状态,点击后点开Application Events,提示waiting for a volume to be created, either by external provisioner "zfs.csi.openebs.io" or manually created by system administrator。由于没接触过k8s,只能网上搜索该错误提示。 有人说是因为权限问题,选...
简述Django建站步骤
官方文档地址:Django 文档 | Django 文档 | Django (djangoproject.com) 创建项目 使用如下命令创建一个Django项目: django-admin startproject mysite 此命令会在当前目录下创建一个 mysite 目录,其内容如下: mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.py 其中,需要重点关注的是urls.py和settings.py文件,他们分别用于管理站点的路由和配置。 使用如下名命令创建一个应用: python manage.py startapp app_name 此命令会创建一个app_name目录,内容大致如下: app_name/ __init__.py admin.py apps.py migrations/ __init__.py models.py test...
利用commitizen+commitlint+husky规范代码提交注释
最近在研究腾讯的自动化部署功能时,发现有篇文档介绍了如何规范代码提交:Git commit message 规范,然而在按照文档进行操作时,却无法正确运行。通过搜索发现,主要是husky已经升级到了7版本,与之前的版本无法兼容。下文记录了该方案的安装过程,备后续部署时参考。 安装commitizen commitizen在提交代码的时候提供了一个交互式的选择界面,方便用户自动生成符合规范的代码提交注释。 使用如下命令即可安装commitizen: npm install -g commitizen cz-conventional-changelogecho '{ "path": "cz-conventional-changelog" }' > ~/.czrc 在powershell中,生成的.czrc文件是utf-16格式的,需要修改成utf-8格式。 之后,使用git cz或cz代替原来的git commit -m命令进行代码提交。 如上图所示,使用上下方向按键即可选择提交类别,之后的内容按...
利用frp实现内外网https访问
自建的nextcloud在使用docker部署时,没有选择映射80端口,而且其默认的nginx配置也是把80端口的访问重定向到了443端口,因此只能使用https协议访问。搜索网上资料时发现,大部分的frp(fatedier/frp)教程是把外网的https访问转换成http协议来访问内网客户端,这显然不符合我的需求。 查看frp的发行日志,发现其在0.36版本开始新增了https2https插件,实现了内外网的https转换,下面就做一个简单记录。 服务器端的配置 # filename: frps.ini[common]bind_port = 7000token = xxxxxxx# https访问时使用的端口vhost_https_port = 8000 HTTP 和 HTTPS 协议的一个特点是发送的请求都具有 Host 字段,通过该字段描述要访问的服务。基于这个特点,frp 服务端只需要监听在一个端口(通过 vhost_http_port 和 vhost_https_port 指定)。就可以根据请求的 Host 来决定需要路由给哪一个代理,而不需要像 TCP 类型那样...
安装nextcloud和onlyoffice遇到的坑
本文记录使用docker安装nextcloud和onlyoffice时,遇到的问题及解决方法。 本机的操作系统为TrueNAS-SCALE-21.06-BETA.1,docker版本20.10.6。 安装nextcloud 推荐使用linuxserver发布的镜像,配置参数少,默认使用nginx。linuxserver/nextcloud - Docker Image | Docker Hub 下文所说的config目录均为映射的container内部的/config目录,例如使用 -v /path/to/appdata:/config,则下文的的config/目录即为/path/to/appdata/。 安装完成后,由于映射的443端口,因此需要配置证书。考虑到仅在局域网内使用,因此还是使用上篇文章生成的web证书。 查看config/nginx/site-confs/default配置文件,截取部分内容如下: server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name ...
