免费 SSL 证书申请与续签

作者:nunumick 发布时间:15 Oct 2024 分类: developer

目前市面上绝大多数的免费 SSL 证书有效期都在 3 个月左右,网站原来一年一续的免费 SSL 证书不再可用,个人因此经历了一段时间的证书手动申领、更新与部署,其最大的问题是容易遗忘并导致网站证书失效。

经同事提醒可以使用脚本自动申请免费的证书并定期续签,实践经过确实比较简单和自动化,脚本配置后再也不用担心证书失效,应该是个人网站证书方案首选。

ACME 协议

证书的自动申领和续签有多种方案可选,个人所采用的是 ACME.sh 脚本,其作为在网站服务器安装运行的 SSL 证书客户端,与证书机构服务器以 ACME 协议交互实现端到端的证书自动更新、验证、签发、分发和部署。

在使用 ACME.sh 脚本之前可以先了解什么是 ACME 协议。

(Read more ...)

标签: ssl , acme , nginx
<<< EOF

巧用 FFmpeg 支持米家摄像头接入 HomeKit

作者:nunumick 发布时间:13 Apr 2024 分类: life

家里使用的小米摄像头买的时间比较早,官方不支持接入到 HomeKit,在上一篇智能家居建设所述在设置小米摄像头影像接入 Apple Home 时需要另辟蹊径,本篇将详述整体思路与实施过程。

背景补充

截止到当前时间,无论是通过 HomeAssistant 小米集成还是 HomeBridge 小米插件都没能将小米摄像头的视频流画面稳定接入到 HomeKit,个人判断后续也不太会有通用解,因为后期小米设备一般都官方支持 HomeKit,问题不存在了。另外一个因素是小米摄像头是套闭源系统,无法拿到视频流地址,不过据说可以刷破解固件,怕影响官方特性,没有进一步尝试。

总结一句话问题是:摄像头版本老旧并且不支持刷三方固件(非侵入),如何将视频流画面接入到 Apple Home?

(Read more ...)

标签: rtsp , ffmpeg , cameras , homekit
<<< EOF

使用 Google 代码和 GTM 衡量网站效果

作者:nunumick 发布时间:05 Apr 2024 分类: blog

博客网站用一套代码分别在国内站点和 Github站点进行部署,为了观测不同渠道的用户效果,需要在效果跟踪上进行区分。

关于网站效果分析,一直以来用的都是 Google Analytics,经历过早期的从 UA(Universal Analytics)到 GA4 的产品升级与迁移。埋点方法使用最新的 gtag.js,现已更名为 Google 代码(Google Tag)。

Google 代码工作原理

Google 代码 (gtag.js) 是可添加到网站中的一段代码,添加这一段代码后您即可使用各种 Google 产品和服务(例如,Google Ads、Google Analytics [分析]、Campaign Manager、Display & Video 360、Search Ads 360)。您可以在整个网站中使用该 Google 代码并将该代码关联到多个目标账号,而无需针对不同的 Google 产品账号管理多个代码。

GA4 的衡量 ID 本质上就是一个 gtag(格式:G-XXXX),每有一个需衡量的对象,就需要一个 gtag 与之匹配。

GA4 gtag 埋点部署代码片段:

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'TAG_ID');
</script>

gtag() 方法负责注册衡量 ID,并将网站信息和行为事件传递给 GA4 服务进行分析。

(Read more ...)

标签: gtag , gtm , ga4
<<< EOF

通过 Git Server Hooks 实现网站的多仓库同步与镜像部署

作者:nunumick 发布时间:21 Mar 2024 分类: developer

本网站通过 github-pages & jekyll 构建与托管,系列文章可以参看:blog
因为国内访问 github.io 速度较慢,所以萌生了为网站提速和建设国内外双镜像部署的念头,以下简单记录双镜像建设的思路和操作过程。

工作流程

可以实现一处编写多地部署的方式有很多,比如:

  1. 最原始的:代码提交 github 后再手动到国内服务器更新构建
  2. 国内服务器定时任务更新和构建
  3. webhooks 监听
  4. 服务器架设 git server,本地提交同步提交多个 remote,基于 server hooks 触发构建

由于我还有个 NAS 服务器并已经开通了公网服务,加上公共云服务器,可以做到三地同步部署,这里的想法是以 NAS 做主要的远程代码仓库,以 github 和云服务器做自动部署并提供镜像版网站服务。

如流程示意图所示,源码只 push 到 NAS Git Server,经由 git hook 自动同步至 Github 和云服务器,此举可避免本地仓库管理多个 remote 地址,也可以通过 NAS 的“代理”服务和 Github 保持比较高质量的连接。

NAS 部署 Git Server

群晖系统中可以安装 Git Server 应用。大体上按照官方指引操作即可,有几个小点需要特别注意。

(Read more ...)

标签: nas , jekyll , blog , githooks
<<< EOF

家庭基础设施篇三:构筑 HomeKit 智能家居生活服务

作者:nunumick 发布时间:03 Mar 2024 分类: life

现如今面向家庭的智能设备和智控生活体验已经得到非常普遍的应用,一些厂商如小米、涂鸦更是有非常成熟的面向全屋的整套智慧生活方案,可以从房屋装修开始布局,一体化满足各式各样的智控生活诉求。

自家的情况和现在流行新装房屋不同,智控设备和能力属于后期添加。差不多是在 2017 年就采买了许多小米智能插座、开关、传感器,基于小米生态用米家 App 集成管理就可以有良好的使用体验。不过后面又有朋友送来一些涂鸦平台设备,加上家里还有一些仅支持 HomeKit 的监控设备,家里的智能设备由单平台变成了需要在多平台之间切换,再之后购入的设备也基本都支持苹果 HomeKit 和米家双平台,于是在 2020 年基于 HomeBridge 折腾一番,全屋智能设备接入 HomeKit 通过苹果 Home App 进行管理和控制。

苹果新的“家庭”架构

苹果在 2023 年推出的 iOS 16.4 中引入了新的 HomeKit 架构,新的架构进行了多项性能和可靠性优化。全新的架构也明确了 iPad 不能作为家庭中枢使用,转而推荐使用 HomePod: https://support.apple.com/zh-cn/102287。猜测还是商业意图明显。

要在新的“家庭”架构上共享你家的控制权以及接收“家庭”通知,你需要配备一个家居中枢(如 Apple TV 或 HomePod)。在这个新的“家庭”架构中,不支持使用 iPad 作为家居中枢。

所以在新的架构下不得不添置了一个 HomePod 代替原来的 iPad 作为中枢使用,在选择上 HomePod mini 足以应付,不管怎样,应该说苹果公司的生态圈目的是实现了的。

HomeBridge vs HomeAssistant

开源社区中比较热门的两个智能家居解决方案,HomeAssistant 侧重于做独立的智能家居集成平台,定位上类似于 Apple Home、米家、涂鸦、天猫精灵等,它允许我们整合各种智能家居设备和服务,无论这些设备是否支持原生集成,它也有很强的自动化控制能力。而 HomeBridge 如其名称,主要充当桥梁作用,将非 HomeKit 兼容的智能设备桥接到 Apple HomeKit 生态系统中,从而使我们能够通过苹果的 Home 应用或 Siri 语音控制这些设备。

经过多年的迭代发展,HomeAssistant 的上手门槛已大幅降低,插件和集成生态也增强不少,通过添加 HomeKit 集成可以轻松实现与 HomeBridge 同样的能力,将 HomeAssistant 控制的设备桥接到苹果的 HomeKit 中。

HomeBridge 贵在轻量、纯粹、体验好,且 Node.js 项目对前端特别友好,二次开发也不在话下,自由度更高。

于是为了深度体验,在我本次“家庭”架构升级中同时引入了这两个项目,应该说 HomeAssistant 的功能很强大,我只用了它很少的一部分能力来搭建理想中的 Apple HomeKit 生态。

(Read more ...)

标签: homekit , raspberry , homebridge , homeassistant
<<< EOF