Spring Boot 项目 Dockerfile 调整优化备忘 —— Could not find or load main class PropertiesLauncher

文章说明了 Spring Boot 3.2 版本将 PropertiesLauncher 和 JarLauncher 类移至org.springframework.boot.loader.launch 包。这影响了使用解压 fat JAR 方式构建 Docker 镜像的 Dockerfile,需更新 ENTRYPOINT 命令中的类路径。java -jar 启动方式不受影响。建议利用 Spring Boot 分层 JAR 特性和 Docker 多阶段构建优化镜像,并记得关注 Release Notes 以便跟进相应变更。

服务器容器化部署 Next.js 应用的 Dockerfile 示例

文章讨论了如何将 Next.js 应用容器化部署,文章说明了通过配置 next.config.js 中的 output: "standalone",可以在构建时生成一个仅包含生产所需文件的文件夹,从而简化 Docker 镜像的大小。提供了一个示例 Dockerfile,详细描述了如何构建和运行 Next.js 应用的 Docker 镜像,并介绍了使用 Docker Buildx 构建多平台镜像的步骤。最后,文章提到除了使用 Docker 进行容器化,还可以考虑开源替代方案,如 Coolify 和 Dokploy,以便更灵活地部署 Next.js 应用。

[AI 翻译] How I write HTTP services in Go after 13 years

文章是一篇翻译,主要介绍了原作者在多年 Golang 开发的经验,主要以 HTTP 标准库来讲解服务的实践经验,文中提到了更推荐阅读原文:https://grafana.com/blog/2024/02/09/how-i-write-http-services-in-go-after-13-years/

PVE 上 Debian 12 虚拟机部署 Kubernetes 1.31 简要记录

文章记录了在 PVE 虚拟机上部署 Kubernetes 1.31 集群的操作过程,包括环境准备,安装并配置 containerd 作为容器运行时,使用 kubeadm 初始化 Kubernetes 集群,并部署 Cilium 。最后,文章验证了集群功能并展示了如何删除集群。

Git 多账户配置及按项目路径使用不同 Git 配置

文章介绍了在 macOS 上配置多个 Git 账户的方法,主要包括生成 SSH 密钥、将公钥添加到 Git 服务端、配置 SSH Agent 以及在 .gitconfig 文件中使用条件包含(Conditional Includes)来按项目路径使用不同的 Git 配置。通过这些步骤,用户可以在同一台电脑上方便地管理多个 Git 账户。

OpenWrt 无线中继上级路由时配置 IPv6 地址

文章梳理了在 OpenWrt 路由器配置无线中继时如何设置 IPv6 地址,并详细介绍了如何通过添加 WWAN6 接口和配置 LAN 接口,实现 IPv6 地址的自动分配和管理,同时解释了 SLAAC 和 DHCPv6 两种地址配置方法的应用和区别。

小米 AX3000T 路由器使用 hanwckf 版本的 ImmortalWrt 和 U-Boot

文章介绍了如何为小米 AX3000T 路由器使用 hanwckf 版本的 ImmortalWrt 和 U-Boot 固件进行刷入。此外可以通过 GitHub Action 编译固件为特定设备定制固件。

小米 AX3000T 路由器刷入使用官方原版 OpenWrt / ImmortalWrt 固件

文章介绍了如何将小米 AX3000T 路由器刷入官方原版 OpenWrt 或 ImmortalWrt 固件,包括降级系统、获取 stok 值、开启 SSH、备份原始分区、刷入 initramfs system 以及最终升级固件的全过程。

基于 BroadcastChannel 项目将 Telegram Channel 转为微博客网站

文章介绍了如何将 Telegram 频道转为网站,以微博客形式展示频道内容。利用 GitHub 项目 BroadcastChannel 实现。该项目基于 Telegram 公开 API ,具有 SEO 友好、浏览器端无 JS 、提供 RSS 等特点。部署步骤清晰,推荐使用 Cloudflare 等平台。文中还列举了基于该项目的其他网站示例。

Chrome 版本内置 Gemini Nano LLM 配置使用

Chrome 127 版本内置了名为 Gemini Nano 的 AI 大语言模型,用户需通过启用特定的 Chrome flags、下载模型并测试其功能。配置步骤包括在地址栏输入特定链接以启用 Prompt API 和优化指南,下载模型后可通过控制台测试其功能。若遇到问题,建议检查语言设置或参考 Google 文档以获取详细指导。此外,推荐使用 Elmo 和 Chrome Built-In AI Gemini Nano 测试页面作为扩展工具。

一加 7Pro 更新 magisk 27 后重启卡 fastboot 模式

一加 7 Pro 在更新 Magisk 后,手机重启卡在 fastboot 模式,无法正常启动。由于未刷入 TWRP Recovery,尝试进入安全模式失败,最终通过切换系统 A/B 槽位的方法成功解决了问题。

个人小规模使用的免费 AI LLM API

文章提供了一系列适合个人小规模使用的免费大型语言模型(LLM)API 列表,包括海外和大陆地区的服务提供商信息,以及相关的开源项目和 API 网关项目。

无法直连 DockerHub 下载镜像的代理方案整理

由于 Docker Hub 的镜像服务受到限制,用户可以通过配置 Docker 镜像仓库加速来解决下载问题。主要步骤包括修改/etc/docker/daemon.json中的registry-mirrors地址,使用提供的多个镜像加速地址,并提供了相关的命令示例。还提到使用 Cloudflare 进行自建镜像加速的注意事项,以及一些开源项目的链接供参考。此外,文中还介绍了 Docker 镜像的离线导出与导入方法。

在 Docker 中运行 acme.sh 为 Nginx 容器部署免费 SSL 证书

本文介绍了如何在 Docker 环境中使用 acme.sh 脚本为 Nginx 容器自动化部署免费的 SSL 证书,并且详细说明了配置记录、安装 acme.sh、签发证书以及部署证书的步骤。

Warp 终端中配置使用 trzsz 实现 sz/rz Zmodem 协议命令传输文件

本文介绍了如何在Warp终端中配置使用trzsz工具实现Zmodem协议的文件传输。Zmodem协议通过sz和rz命令支持快速、可靠的文件发送和接收,增强了文件传输的效率。作者还推荐了trzsz-ssh工具,作为openssh的替代品,进一步简化了通过SSH进行文件传输的流程。

免费 us.kg 域名注册过程记录,可接入 Cloudflare

本文记录了免费 us.kg 域名的注册过程,强调了其与 Cloudflare 的接入功能。作者分享了成功注册的步骤,包括填写注册信息、邮箱验证以及 KYC 验证等。此外,文章还指出该域名需每年续期,并建议使用 Cloudflare 进行后续管理。

自建书签管理应用 Hoarder App

Hoarder App 是一款自建书签管理应用,支持快速保存链接、笔记和图片,并利用AI自动打标签。其特点包括全文搜索、分类管理、批量操作和深色模式,用户可通过 Docker 自部署以控制隐私。应用正在快速迭代开发中,尚未稳定。

搭建 Vaultwarden 服务端使用 Bitwarden 开源密码管理器

本文介绍了如何搭建 Vaultwarden 服务端,该服务端能够兼容使用开源密码管理器 Bitwarden。Vaultwarden 是一款轻量级的非官方 Bitwarden 服务器实现,适合个人或小型组织自托管使用,与官方 Bitwarden 客户端兼容,提供安全稳定的密码管理方案。文章还提供了通过 Docker Compose 快速启动 Vaultwarden 的方法,确保用户可以高效、安全地管理密码。

Docker 部署微信公众号RSS生成工具 WeWe RSS

WeWe RSS 是一个自部署的微信公众号 RSS 生成工具,旨在为不喜欢在微信 App 内阅读公众号文章的用户提供更优雅的订阅方式。其特点包括: - 支持微信公众号订阅(基于微信读书) - 后台自动更新 - 支持生成 .atom、.rss、.json 格式的 RSS - 全文内容输出 - 所有订阅源可以导出 OPML - 可一键部署到 Zeabur、Railway、Hugging Face 等平台 - 支持 Docker 和本地私有化部署 用户可以通过 Docker 部署,使用 SQLite 作为数据库,配置后即可访问和管理订阅。

搭建开源的个人订阅服务追踪工具 Wallos

随着各种订阅制付费服务的普及,管理多个订阅变得愈加重要。Wallos 是一款开源的自托管工具,它可以简化订阅管理,保护用户隐私,并支持多种货币的使用。用户可以通过 Wallos 记录和追踪到期的订阅,确保不会错过续费日期。

通过 Cloudflare Workers 实现 301 重定向

通过使用 Cloudflare Workers 实现 301 重定向,将域名 https://home.okhk.net 重定向到 https://i.okhk.net。创建 Workers 并编写代码以处理请求,设置重定向目标和状态码,最后配置自定义域名以完成重定向。

利用 GitHub Action 自定义构建 Padavan 路由固件

本文介绍了如何利用 GitHub Action 自定义构建红米 AC2100 路由器的 Padavan 固件。首先,在 GitHub 上新建一个仓库,并下载 Padavan 固件的源代码。然后,根据自己的需求修改配置文件和自定义脚本。接着,在 GitHub Action 的配置文件中设置编译环境和编译参数,并将编译生成的固件上传到 GitHub Release。最后,使用自定义脚本对固件进行进一步的配置和修改。通过这种方法,可以快速自定义构建适合自己需求的 Padavan 固件。

自部署开源网站评论系统 Twikoo

Twikoo 是一个简洁、安全、免费的静态网站评论系统,可以轻松部署在自己的网站上。使用 Docker 进行部署非常方便,只需要简单的配置即可。在 memos 中使用 Twikoo 评论系统也很简单,只需要添加自定义脚本和样式即可。最终效果清晰明了,让网站评论更加方便和美观。

PVE LXC 容器中安装 CasaOS 及硬盘直通

在 PVE 中安装体验开源私有云软件 CasaOS。通过创建 LXC 容器并安装 CasaOS,可以在 PVE 上体验这个简单易用的开源私有云系统。安装过程中可能会遇到报错,可以安装旧版本后通过 Web 更新到最新版本。安装完成后,可以进入 CasaOS Web 页面进行配置和使用。另外,还可以通过修改 LXC 容器配置实现硬盘直通,将宿主机的硬盘挂载到容器中使用。

PVE LXC 容器运行 OpenWRT 软路由

在 PVE 的 LXC 容器中安装 OpenWRT 作为软路由,可以利用 PVE 的虚拟化技术运行 x86 架构的软路由系统。选择 LXC 容器是因为它具有更高的性能和效率,并且资源开销较少。安装 OpenWRT 的镜像可以选择第三方编译的镜像,也可以自行选择官方镜像。创建容器时需要指定一些参数,如容器 ID、根文件系统模板、主机名等。创建完成后,可以通过 Web 页面配置 OpenWRT,包括网络设置、插件安装等。通过将设备的 Wi-Fi 设置指向 OpenWRT 的 IP 地址,可以实现按需使用,方便维护和故障排除。另外,如果 PVE 运行在老旧电脑上,可以设置功耗墙来限制功耗。

使用 Terraform 来管理创建 PVE 中的虚拟机

使用 Terraform 在 PVE 中管理虚拟机,实现基础设施即代码(IaaS)。通过配置 Terraform 的 provider,使用 PVE 的 REST API 进行权限校验。可以通过用户名密码或 API Token 来鉴权。配置虚拟机资源的核心参数,包括基础信息、物理节点、cloud-init 模板、CPU、内存、磁盘、网络等。执行 terraform apply 即可创建虚拟机。如果需要销毁虚拟机,执行 terraform destroy 即可。

安装 PVE 驱动的个人虚拟化实验环境

PVE 是一款个人虚拟化环境软件,可以在小型主机或老旧笔记本上安装,提供虚拟化环境来构建自己的 HomeLab。安装 PVE 的步骤包括准备引导工具、下载安装 PVE 镜像、配置软件源、创建模板等。通过 PVE,可以方便地管理和部署虚拟机,进行基础设施即代码的实践。

使用 Google Gemini 免费 API

谷歌在 12 月 14 日起免费开放 Gemini Pro 和 Gemini Pro Vision 的 API。Gemini Pro 的个人使用体验类似于 ChatGPT-3.5,但是它的 API 是免费的。通过 Gemini SDK,我们可以编码调用 API 来获取图片之间的区别。具体的调用方式和参数请参考谷歌 Gemini 官方文档。同时,还可以通过其他开源项目将 Telegram Bot 接入 Gemini API,并在 Vercel 等平台快速部署项目。

VPS 上 Docker 部署哪吒监控

在 VPS 上使用 Docker 部署哪吒监控,需要进行预备配置,包括创建 GitHub 应用、私有仓库和个人访问凭证,还需要获取 Argo 隧道信息。然后使用 compose.yaml 文件来部署监控服务端,配置相关环境变量,并选择是否使用 gRPCwebProxy。客户端接入可以通过 gRPC 传输,无需额外配置。最后,在监控后台管理添加服务器,并通过一键安装命令将客户端与监控服务端连接。

快速上手新项目不完全指北

如何快速上手一个新项目的一些步骤: 1. 配置本地环境:根据项目要求安装必要的开发工具、数据库等。 2. 启动项目:按照项目文档的说明启动项目,体验并熟悉项目。 3. 理解项目设计:了解项目的业务架构设计和技术架构设计。 4. 数据库设计:了解项目的数据库结构和数据关系。 5. 接口设计:理解项目中各个模块的接口定义和接口文档编写方式。 6. 核心功能实现:学习项目的核心业务逻辑,如用户管理、登录认证、异常处理等。 7. 开发流程:了解代码管理工具(如 Git)、项目文件结构和开发规范。 8. 模块开发:根据需求分析进行模块开发,并进行测试和验证。 9. 图像示例:可使用相关图片辅助理解,如数据库表结构图、接口文档截图、代码片段截图等。


2024 © HK