Unraid community application 插件镜像
忙于毕业,本项目暂停。
Unraid的Community Applications插件(下文简称CA)应该是必装插件了,然而由于托管于github,对国内用户不太友好。偶然间在B站看到了加速商店的方法(unraid保姆级修改APP商店加速_哔哩哔哩_bilibili),了解到可以通过修改paths.php中的url来加速商店的访问速度。稍微看了下插件代码,花了一点点时间写了个python脚本自动修改插件的相关url地址。
项目地址:maxiaowei/community.applications (gitee.com)
主要改动
对于官方的CA仓库(Squidly271/community.applications (github.com)),主要做了如下修改:
修改plugins/community.applications.plg(即插件安装脚本)中的pluginURL 和其他相关url为gitee的链接
修改paths.php中的github链接为gitee对应的链接,amazon备用链接未修改
重新计算文件MD5值,打包并替换archive中的插件安装文件
此外,对插件中 ...
解决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/linu ...
在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。
那么,这种保护措施是否足够安全了呢?显然答案是否定的,攻击者可以构造出一个页面,在页面内发起对被攻击页面的请求,这样浏览器在发送请求时仍然会携带对应的c ...
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> ...
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,只能网上搜索该错误提示。
有人说是因为权限问题,选择给i ...
简述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 tests.p ...
利用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 _; ...