🤖 AI:人工智障
未读简介最近在玩儿 检索增强生成(RAG,Retrieval Augmented Generation), 本地部署了一套 dify, 应该算是 RAG 功能最全的开源项目了, 可以集成工大厂商的 AI API 以及自建的 LLM 服务. 所以就用 dify 做了一个个人知识库, 数据来源与博客内容. dify 的部署以及使用可查看官方文档, 写的非常详细, 这里只是介绍一下如何将 dify 集成到 hexo 的博客中. 根据 官方文档 的说明, 我选择使用 script 标签方式 集成 dify 到博客中, 这种方式会有一个聊天机器人按钮, 不会影响博客的整体体验: 集成首先从 dify 获取嵌入到网站中的代码, 比如下面这样: 1234567891011121314151617181920<script> window.difyChatbotConfig = { token: 'xxxxxxxxxxxx', baseUrl: 'http://192.168.1.2' }</script>< ...
安知鱼主题自带朋友圈功能, 不过需要自行部署后端, 下面说说我的部署过程. 创建朋友圈页面在 Hexo 博客根目录下打开终端,输入 1hexo new page fcircle 打开 source/fcircle/index.md,添加一行 type: 'fcircle': 12345678---title: 朋友圈date: 2022-11-21 17:06:17comments: falseaside: falsetop_img: falsetype: "fcircle"--- 主题配置配置菜单: 123menu: 友链: 朋友圈: /fcircle/ || anzhiyu-icon-artstation 开启朋友圈: 123456# 朋友圈配置friends_vue: enable: true vue_js: xxx apiurl: xxx top_background: xxx 参数 备选值/类型 解释 enable boolean 【必须】是否启用 vue_js url 【必须】朋友圈前端 ...
参考 【Hexo博客】自定义Butterfly主题 Loading 加载动画 和 Hexo的Butterfly下自定义加载动画之小汽车动画的实现 实现了在 anzhiyu 主题下的自定义加载动画。 添加 loading 模版新建目录: themes/anzhiyu/layout/includes/loading/load_style, 添加如下 pug: car.pugdefault.puggear.pugheo.pugimage.pugironheart.pugpace.pugscarecrow.pugtriangles.pugwizard.pug12345678910111213141516171819202122#loading-box .carplayscript. const preloader = { endLoading: () => { document.getElementById('loading-box').classList.add("loaded"); }, ...
自建 Hitokoto 服务Hexo 添加 RSS 订阅功能Hexo 自定义加载动画 简介同样是因为默认的 https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js 已无法打开, 所以参考 self-hosted busuanzi 在本地服务器自建一个. 部署根据 官方文档 使用 docker-compose 直接部署: 123456789101112131415161718192021services: busuanzi: image: xcsoft/busuanzi:latest ports: - 8888:8080 volumes: - ./data/config.yaml:/app/config.yaml # 如果不需要修改首页, 可以不需要挂载 - ./data/dist/index.html:/app/dist/index.html environment: WEB_LOG: true WEB_DEBUG: false ...
前言最近使用的 Hexo 主题 hexo-theme-anzhiyu 默认的随机一言接口被限流了, 根据官方文档在家里的服务器上搭建了一个, 目前用于我的博客. 部署根据 官方文档 使用 docker-compose 部署: 123456789101112131415161718services: hitokoto_api: image: hitokoto/api:release container_name: hitokoto_api hostname: hitokoto_api environment: NODE_ENV: production url: https://你的域名 api_name: blog redis.host: 你的 redis ip redis.port: 你的 redis 端口 redis.password: 你的 redis 密码 redis.database: 你的 redis 数据库 ports: - 8888:8000 resta ...
🎉 高能分享
未读Hexo 博客添加 RSS 订阅功能 插件 GitHub https://github.com/hexojs/hexo-generator-feed 安装 hexo…… 这篇文章介绍了如何在 Hexo 博客中添加 RSS 订阅功能。需要使用时光插件,并提供了 GitHub 地址。在配置 RSS 时,可以选择原子或 RSS2 的类型,设置文件路径,决定展示文章的数量,还可以选择包含文章的全部内容或摘要。同时,也可以自定义订阅图标和订阅内容的顺序。在部署后,直接在根目录中访问配置的文件即可使用 RSS 订阅功能。 插件 GitHub 地址:https://github.com/hexojs/hexo-generator-feed 安装 hexo-generator-feed 插件1npm install hexo-generator-feed --save 修改 _config.yml 配置1234feed: type: atom path: atom.xml limit: false type: RSS 的类型 (atom/rss2)path: 文件路径,默认是 a ...
🧱 后端开发与架构
未读前言在老东家花了一年的时间,基于当时最新的 Spring Boot 2.5.x 写了一套脚手架工程,经过 1 年多的迭代, 这套脚手架已在技术中心多个部分应用. 脚手架包含最底层的 maven 依赖管理, 可以说是整个工程的灵魂, 期间重构过 3 次, 这个后面再说.第二层是核心模块层, 就是我们常见的 core 包, 但是也分为至少 8 大模块.第三层是基于 Spring Boot 2.5.x 封装的 starter 层, 这个层是整个脚手架工程的精髓所在, 也是我们后续要重点介绍的.第四层是支撑层, 包括 Maven 插件和 IDEA 插件.最后当然是示例工程, 包含每个 starter 组件的使用方式. 写这套脚手架的时候正好赶上 业务中台 火热的时期, 因此比如通用的 用户中心, 支付中心等也应运而生, 但是这部分涉及到公司的业务流程, 后面将不会过多描述. 今天决定开始新一轮的重构, 基于 Spring Boot 3.3.x 来写一个企业级的脚手架工程, 主要考虑以下几点: 想体验一下最新的 Spring Boot 3.3.x 与 Spring AI; 最新的 Sp ...
简介记录一下如何将 hexo-theme-aurora 主题的博客图片居中显示 修改文件: node_modules/hexo-theme-aurora/source/static/css/a14e1a22.css: 1234567.post-html img { margin: auto; cursor: zoom-in; transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.15s;}
🏠 HomeLab:中年男人之友
未读背景作为一个智能家居爱好者,我在家里部署了多台服务器以及开发板。因为有公网 IP, 并通过 DDNS 绑定了域名, 我可以随时在外网访问家中的各种服务。 虽然我通过 Surge 的配置可以在外网通过局域网访问家中的内部服务, 当问题是我需要为同一个服务添加多个书签, 当服务数量增多时,书签管理变得异常繁琐。 解决方案为了解决这个问题,我开发了一个 Chrome 扩展 - URL Switcher Pro。这个扩展程序能够: 自动检测当前网络环境 根据配置智能切换内外网 URL 支持批量 URL 配置管理 提供 URL 可访问性检测 技术实现1. 核心功能扩展的核心功能主要包括: URL 匹配与切换:通过正则表达式进行 URL 模式匹配 网络环境检测:检测 URL 可访问性 配置同步:利用 Chrome 存储 API 实现多设备配置同步 国际化支持:内置中英文语言支持 2. 主要技术栈 Chrome Extension Manifest V3 Chrome Storage API Chrome Tabs & WebNavigation API JavaScript ...
🏠 HomeLab:中年男人之友
未读封面来源: Unsplash-Kvistholt Photography 数据备份备份是 Homelab 必不可少的一部分,按照不同的系统架构,备份大致有下列几类: 文件级别的备份:直接在应用所属宿主机上运行定时任务,增量或者全量将文件复制到其他远程位置,可以使用 Synologo Drive, Rsync, Rclone, Restic 等这类工具进行备份; 应用级别的备份:通过应用完成备份,例如 Gitlab, Portainer, 1Panle, Home Assistant 等自带的备份功能,可以将用户数据和数据库等数据一起备份到远程位置, 系统级别的备份:例如 macOS 自带的备份(Time Machine),树莓派和 OpenWrt 的全系统备份, OpenWrt, DSM 等自带的系统级备份功能, 或者其他软件实现的全盘备份(比如 rsync + dd 命名)。 虚拟化备份:在有虚拟化的时候,整个操作系统等于多个文件,所以只需要将此文件备份便能实现整个虚拟机的备份,比如 Parallels Desktop 的 *.pvm 虚拟机文件, UTM 的 *.utm 虚拟机文 ...
🏠 HomeLab:中年男人之友
未读封面来源: Unsplash-Tianyi Ma 数据同步我的数据同步需求主要涉及到工作文件, 常用的配置文件以及 docker-compose 容器编排文件, 这些文件需要在多台主机上使用, 所以直接采用 Synology Drive 在支持 Synology Drive Client 的主机上同步文件, 一些无法安装 Synology Drive Client 的开发板, 则直接使用 Syncthing 同步. 相关文章: 先导篇:我的 HomeLab 概要; 硬件篇:介绍我所拥有的硬件设备; 网络篇:包括网络环境、异地组网与网络安全; 服务篇:使用 Docker 搭建的各类服务; 数据篇:包括数据存储方案、备份方案和数据恢复方案; HomeLab数据同步:构建高效的数据同步网络 HomeLab数据备份:打造坚实的数据安全防线 HomeLab 网络续集:升级 10G 网络-再战 10 年 NAT 内网穿透详解:揭秘网络连接背后的奥秘 Synology DriveSynology Drive Server 由 3 个独立的套件组成: Synology Drive 管理控制台: ...
🏠 HomeLab:中年男人之友
未读封面来源: Unsplash-Taylor Vick 相关文章: 先导篇:我的 HomeLab 概要; 硬件篇:介绍我所拥有的硬件设备; 网络篇:包括网络环境、异地组网与网络安全; 服务篇:使用 Docker 搭建的各类服务; 数据篇:包括数据存储方案、备份方案和数据恢复方案; HomeLab数据同步:构建高效的数据同步网络 HomeLab数据备份:打造坚实的数据安全防线 HomeLab 网络续集:升级 10G 网络-再战 10 年 NAT 内网穿透详解:揭秘网络连接背后的奥秘 简介在本篇博客中,我们将深入探讨如何在 HomeLab 中实现高效的数据存储、备份和同步方案。 随着个人数据的不断增长,数据的安全性和可用性变得越来越重要。为此,我们可以采用一种被称为 3-2-1 原则 的备份策略,以确保我们的数据在发生意外时能够得到及时恢复。 3-2-1 备份原则 的核心要点如下: (另外一些细节分析可以看韦易笑在知乎的回答:《如何长时间保存重要数据?》) 3 份备份数据:我们不应依赖单一的数据备份,而应该拥有至少两份数据副本作为额外的安全保障。这样可以大大降低因单一备份故障导致数据丢 ...
🏠 HomeLab:中年男人之友
未读在这个充满无限可能的数字时代, 我们有机会通过自托管的云服务平台来构建一个属于个人的云端世界. 这不是简单地访问远程服务器, 而是亲手打造、定制并管理自己的虚拟实验室, 进行各种新奇有趣的服务部署. 这种“折腾”不仅仅是一种乐趣, 更是一种自我挑战和创造力的释放. 从这篇博客开始, 我会不时地介绍一些我在自托管环境中安装和配置的新奇有趣服务. 这些服务或许并非我当下所需, 但正是这种创造需求的精神驱动着我不断地探索新领域、学习新技术. 在这个过程中, 我也希望能够与大家分享我的经验和见解, 一起探讨如何在个人云端世界中找到乐趣和价值. 在这里, 你将会看到我如何一步步搭建属于自己的实验环境, 从选择合适的硬件到配置各种软件服务. 无论是对技术充满热情的爱好者, 还是希望拓展技能的初学者, 这里都会有一些实用的技巧和建议. 让我们一起踏上这段旅程吧!让我们在自托管的乐趣中不断学习、创造和成长. 敬请关注接下来的博客文章, 期待与你的共同探讨和分享. 相关文章: 先导篇:我的 HomeLab 概要; 硬件篇:介绍我所拥有的硬件设备; 网络篇:包括网络环境、异地组网与网络安全; 服务篇: ...
🏠 HomeLab:中年男人之友
未读前言NAT (网络地址转换, Network Address Translation) 的由来与互联网的发展历史密切相关, 主要是为了解决 IPv4 地址资源紧张问题, 同时增强网络安全性和管理灵活性. 相关文章: 先导篇:我的 HomeLab 概要; 硬件篇:介绍我所拥有的硬件设备; 网络篇:包括网络环境、异地组网与网络安全; 服务篇:使用 Docker 搭建的各类服务; 数据篇:包括数据存储方案、备份方案和数据恢复方案; HomeLab数据同步:构建高效的数据同步网络 HomeLab数据备份:打造坚实的数据安全防线 HomeLab 网络续集:升级 10G 网络-再战 10 年 NAT 内网穿透详解:揭秘网络连接背后的奥秘 背景与由来1. IPv4 地址枯竭问题IPv4 使用 32 位地址空间, 最多可以提供约 43 亿个唯一地址. 随着互联网的普及, 联网设备数量迅速增长, 特别是 1990 年代后期, 地址分配紧张的问题愈发明显. 早期解决方案如子网划分和无类别域间路由 (CIDR) 延缓了地址耗尽, 但并不能彻底解决问题. 2. 私有网络需求 很多组织和企业需要将大量内部 ...


























