-
使用 qbt_migrate 批量修改 qbitorrent 保存路径
为实现arr自动化媒体管理,本文介绍了如何重新规划NFS目录,使用qbt_migrate批量修改qBittorrent路径,并调整NFS用户映射(如all_squash)以解决硬链接权限,确保系统流畅运行
-
在 PVE 中配置基于 Docker 的 GitLab Runner
介绍如何在 Proxmox VE 的 LXC 容器中配置 GitLab Runner,使用 Docker executor 来实现 CI/CD 环境的隔离和高效构建。
-
使用 restic 备份 vaultwarden 数据
本文介绍如何使用 restic 工具备份 vaultwarden 数据,包括安装、初始化、创建备份脚本和定期执行备份任务的详细步骤。
-
如何在网络出问题时自动重启 OpenClash
本文介绍了一个自动检测网络并在必要时重启 OpenClash 的脚本,帮助维持稳定的网络连接,特别是在家庭网络环境中。
-
使用 grafana-alloy 监控盒子数据
本文详细介绍了如何使用 grafana-alloy 监测盒子数据,使你能看到盒子的上传下载速度等相关
-
存储升级记录
这是一篇关于存储升级的记录。作者详细描述了硬盘的选择、转接卡带宽问题、供电问题、硬盘的具体情况以及文件系统的选择。作者最终选择了LVM管理硬盘,并对硬盘进行了详细的规划和分配。
-
使用 Cloudflare Tunnel 访问 K3S 集群服务
本文详细介绍了如何使用 Cloudflare Tunnel 访问 K3S 集群服务。作者分享了 Cloudflare Tunnel 的工作原理、注册流程、在 K3S 集群中的配置方法,以及如何更新和管理 ingress 规则。文章还讨论了这种方法相比传统内网穿透工具的优势,包括免费、简单配置、高带宽和灵活性。对于希望从互联网安全访问家庭实验室或内网服务的用户来说,这是一个实用的解决方案。
-
使用 k3s 和 tailscale 在甲骨文云和家之间搭建 kubernetes 集群
本文详细介绍了如何使用 k3s 和 tailscale 在甲骨文云和家庭网络之间搭建 Kubernetes 集群。作者分享了在甲骨文云上部署 k3s 的挑战,以及如何通过在家里的 PVE 上搭建 k3s server 并使用 tailscale 连接所有节点来解决这些问题。文章还包括了配置步骤、验证方法、部署测试应用以及性能测试结果,为读者提供了一个完整的实践指南。
-
如何为 pve 系统新增用户
本文介绍了如何在 Proxmox VE (PVE) 中添加 PVE 用户和 PAM 用户以及如何分配权限。根据需要选择不同类型的用户,PAM 用户适用于需要 SSH 登陆的场景,而 PVE 用户仅适用于在 Web 上操作的场景。按照本文的步骤,你可以轻松地在 PVE 中管理用户及其权限。
-
2022 个人总结
这篇文章是作者对自己在 2022 年所读过的书、看过的电影、玩过的游戏以及使用的数码设备的总结。作者列出了自己读过的书和看过的电影,并对其中的一些作品进行了简短的评价。作者还提到了自己在阅读过程中遇到的一些问题,以及如何克服这些问题。此外,作者还分享了自己玩过的游戏和使用的数码设备,并对其中一些设备进行了评价。在技术方面,作者分享了自己在 GitHub 上的提交情况以及学习 DevOps 相关概念的经历。作者还介绍了自己搭建 homelab 的过程,并分享了一些自己觉得比较好用的服务。总体来说,这篇文章是作者对自己在 2022 年的生活和技术方面的总结
-
Logseq 同步方案设计
这篇文章是作者分享了自己如何在 Logseq 笔记应用中使用 iCloud 和 GitHub 进行同步的方案。作者首先介绍了自己在使用 Logseq 时遇到的问题,即无法在公司的开发机上使用 iCloud 进行同步。为了解决这个问题,作者使用了 GitHub 进行同步,但是发现这个方案会导致 git 记录冲突。作者介绍了自己如何使用 unison 工具进行双向同步,以及如何使用 cloud-ignore-files 仓库来忽略同步时的冲突。作者还分享了自己如何在 Mac mini 上设置定时任务来自动同步数据,并提供了详细的设置步骤。总体来说,这篇文章是一篇技术性的文章,适合对 Logseq 和同步方案感兴趣的读者阅读。
-
记一次树莓派磁盘占满的排查流程
这篇文章是作者分享了自己在使用树莓派时遇到的磁盘空间满的问题以及解决方案。作者介绍了自己如何使用 df 命令查看磁盘的基本占用情况,以及如何使用 ncdu 命令查看具体每个文件占用率。作者还分享了自己如何使用 tail -n 命令查看指定文件的最后几行的内容,以及如何使用 journalctl 命令方便地管理 systemd 产生的日志。最后,作者总结了自己从这次问题中学到的几个 Linux 技能,并提醒自己在编写代码时要严谨对待日志,确保日志不会疯狂输出导致占满用户的磁盘空间。总体来说,这篇文章是一篇技术性的文章,适合对树莓派和 Linux 系统感兴趣的读者阅读。
-
RxJS 和响应式编程简介
这篇博客介绍了 RxJS 库的基本概念和应用。作者首先介绍了 RxJS 的官方介绍,包括利用 observable 流为异步编程设计的一套 API,以及利用 Observables 模式方便我们编写基于异步组合或者回调的代码等。接着,作者介绍了 RxJS 的思想和响应式编程的思想,并指出掌握了 RxJS 的思想,就是掌握了响应式编程的思想。作者还介绍了 RxJS 中的流的概念,以及流的特点。最后,作者提到了 RxJS 中的一些常用操作符,如 map、filter、reduce 等,并给出了具体的使用示例。
-
electron 集成 addon 方案简介
本文介绍了作者在开发 electron 项目时,如何集成 addon 的方案。作者首先介绍了 addon 的基本概念,然后介绍了编译 addon 的两种方式:预编译和源码编译。作者还介绍了如何使用 electron-rebuild 来编译 addon,以及如何在持续集成中使用真实的 mac 或者 window 操作系统 + shell 来编译 addon。
-
如何花30分钟解决 eslint 产生的各种错误
本文主要总结如何使用 eslint , prettier, 以及 jscodeshift 快速统一一个大型的 js 项目的代码风格,并结合 lint-staged 和 husky 自动检查并且格式化未来新提交的新代码.
-
使用 git submodule 同步主从项目的依赖关系
本文主要介绍了如何使用 git submodule 同步主从项目的依赖关系.
-
eslint的正确使用方式
这篇博客介绍了如何使用 eslint 和 prettier 来保证 JavaScript 项目的代码质量和风格统一。作者提到了之前项目中没有推广 eslint 的原因是缺乏合适的工作流程,但是现在可以结合 git 钩子在提交代码时直接进行代码检查和格式化。作者给出了具体的使用步骤,包括安装依赖库、更新 package.json 文件等。最终的效果是在每次提交代码之前,都会进行代码格式化和 eslint 检查,从而保证代码风格的统一。
-
加速electron在国内的下载速度
这篇博客介绍了如何加速在中国下载 Electron 的过程。作者指出,在安装 Electron 时,会下载 electron-prebuilt 这个 zip 包,而该包默认被托管在 GitHub 上,因此在某些网络下下载会非常慢。为了解决这个问题,作者介绍了通过修改下载地址来加速下载的方法。作者提供了两种方式,一种是临时方式,通过在 npm install 命令前加入 ELECTRON_MIRROR 环境变量来指定下载地址;另一种是永久方式,通过修改环境变量文件来设置 ELECTRON_MIRROR 环境变量。最终,作者提醒读者在设置下载地址时,需要注意调试信息,以确认下载源是否替换成功。
-
从Wordpress迁移到Hexo
这篇文章介绍了作者从 Wordpress 迁移到 Hexo 的经历。作者分享了自己之前使用的博客发布流程的不便之处,以及为什么决定迁移到静态博客系统。作者介绍了自己之前尝试使用基于 Ruby 的 Octopress,但由于不熟悉 Ruby 的依赖系统而无法适应。最终,作者选择了基于 Node.js 的 Hexo,并分享了迁移过程中的一些经验和技巧。
-
Flash文本输入在移动设备上的差异
该文章主要介绍了在使用 Flash 做文本编辑器时,在移动设备上遇到的一些问题和解决方法。作者首先介绍了 Flash 中使用 TextField 的方法,并指出在 PC 上可以正常工作,但在移动设备上会出现各种问题。接着,作者列举了一些在移动设备上出现的问题,如链接事件响应问题和键盘行为差异等,并提供了一些解决方法。最后,作者总结了自己的经验,并提醒读者在使用 Flash 开发移动设备应用时需要注意的问题。
-
Nape的几何相关笔记(GeomPoly)
这篇文章主要介绍了 Nape 引擎中的 GeomPoly 类和 Polygon 类的关系。作者首先介绍了 GeomPoly 类的基本概念和用法,以及如何将其转换为 Polygon 类。接着,作者详细讲解了 Polygon 类中的 regular 算法,该算法可以用来创建一个规则的多边形。作者提供了一些示例代码来帮助读者更好地理解 Polygon 类的使用方法。最后,作者总结了自己的经验,并提醒读者在使用 Nape 引擎时需要注意的问题。
-
Nape的回调系统
这篇文章主要介绍了 Nape 引擎中的回调系统和 Flash 原生的事件系统之间的区别。作者指出,虽然它们的底层可能都是通过观察者模式来实现的,但是它们暴露给外部的 API 是不一样的。在 Nape 中,监听对象只有 space,它通过匹配特定的模式来触发回调。作者提供了一些伪代码来帮助读者更好地理解 Nape 中的回调系统。最后,作者详细讲解了在 Nape 中增加一个回调的三个步骤,并提供了一些示例代码来帮助读者更好地理解。
-
Stage3D的一些基本概念
这篇文章主要介绍了 Stage3D 的一些基本概念。作者首先介绍了 Stage3D 层的概念和层级关系,并提供了示意图来帮助读者更好地理解。接着,作者详细讲解了 Stage3D 的坐标系统,包括右手坐标系、坐标原点和齐次裁剪空间等概念。作者还介绍了如何将 Stage3D 的坐标系统转换成 Flash 默认的坐标系。