2025-07-02
Linux运维
000

由 conda-forge 社区维护,默认使用 conda-forge 源,避免 Anaconda 的商业许可风险,且预装 Mamba 加速依赖解析。

2025-06-16
建站教程
000

前置知识

什么是Docker?

Docker是一个容器化平台,它允许你将应用程序及其依赖项打包到轻量级、可移植的容器中。容器类似于虚拟机,但更加高效。

核心概念:

  • 镜像(Image):应用程序的只读模板
  • 容器(Container):镜像的运行实例
  • 仓库(Registry):存储镜像的地方,如Docker Hub
2025-06-16
建站教程
000

我针对VanBlog进行了二次开发,以下是一些关键文档,有助于你理解VanBlog的设计。

项目地址:https://github.com/xxddccaa/vanblog

  1. 快速部署VanBlog
2025-06-15
建站教程
000

VanBlog自动备份

前言

在博客系统的运维中,数据备份是至关重要的环节。VanBlog作为一个现代化的博客系统,提供了完善的自动备份功能,不仅支持本地JSON数据备份,还集成了阿里云盘云端备份。本文将深入分析这个功能的实现原理、架构设计和优化过程。

功能概览

VanBlog的自动备份功能位于 /admin/site/setting?tab=autoBackup,主要包含以下特性:

核心功能

  • JSON数据备份:完整导出博客所有数据(文章、草稿、分类、标签、用户设置等)
  • 定时自动执行:用户可自定义备份时间,系统精确执行
  • 文件管理:自动清理过期备份,保留指定数量的最新备份
  • 阿里云盘集成:支持将静态文件自动同步到阿里云盘备份盘

技术特性

  • 零轮询设计:直接在指定时间执行,无需周期性检查
  • 动态任务调度:设置变更立即生效,无需重启服务
  • 增量上传:阿里云盘备份使用--skip参数避免重复传输
  • 容错机制:备份失败不影响系统正常运行
2025-06-13
建站教程
000

文章操作自动同步标签数据功能实现

功能说明

在文章的增删改操作后,系统现在会自动触发标签同步功能,无需手动点击"同步标签数据"按钮。这个功能通过异步方式实现,不会影响用户体验。

2025-06-13
建站教程
000

VanBlog 标签性能优化方案

背景问题

原系统存在以下性能瓶颈:

  • 博客数量:2k篇
  • 标签数量:4w个
  • 前端获取标签时一次性加载所有数据,导致卡顿
  • 标签查询通过遍历所有文章实现,复杂度O(n*m)
  • 后台标签管理页面性能差
2025-06-12
建站教程
000

🎯 什么是渲染?为什么很重要?

渲染 = 把动态数据转换成静态HTML文件的过程

VanBlog使用Next.js的 ISR(Incremental Static Regeneration 增量静态再生成) 技术:

2025-06-12
建站教程
000

这个博客的方法是我看数据库数据的,不懂的不要轻易使用,直接用博客系统带的备份方案,直接导出json 和 图片。

数据库表结构分析

VanBlog的数据主要存储在MongoDB中,包含以下重要数据:

需要保留的数据(文章数据):

  • articles - 文章内容
  • drafts - 草稿
  • categories - 分类
  • tags - 标签(如果有的话)
  • customPages - 自定义页面
  • moments - 动态
  • viewers - 浏览量统计
  • visits - 访问记录

需要重新配置的数据(系统配置):

  • metas - 站点信息(包含域名配置)
  • users - 用户信息
  • settings - 系统设置
  • tokens - API令牌
2025-06-10
工具使用
000

UV 是一个由 Astral 团队开发的高性能 Python 环境管理工具,它集成了包管理、虚拟环境管理和 Python 版本管理等功能。以下是使用 UV 管理 Python 环境的主要步骤和方法:

1. 安装 UV

UV 可以通过多种方式安装:

  • 通过 pip 安装(不推荐,功能可能不全):
    bash
    展开代码
    pip install uv
  • 通过脚本安装(推荐):
    • Linux/macOS
      bash
      展开代码
      curl -LsSf https://astral.sh/uv/install.sh | sh
    • Windows(PowerShell):
      powershell
      展开代码
      irm https://astral.sh/uv/install.ps1 | iex
    安装完成后,可以通过 uv --version 验证安装。
2025-06-09
Git
000

vmware 的 dns 问题 导致 git pull失败:

  1. nslookup github.com

    • 检查 github.com 的 DNS 解析是否正确,确认是否返回 GitHub 的真实 IP(如 20.205.243.166)。
  2. echo "nameserver 8.8.8.8" > /etc/resolv.conf

    • 强制使用 Google 的公共 DNS(8.8.8.8),避免本地 DNS 解析错误导致 github.com 指向 127.0.0.1
  3. ssh-keygen -f "/root/.ssh/known_hosts" -R "github.com"

    • 删除本地记录的旧 GitHub SSH 主机密钥,防止因密钥不匹配导致连接失败。
  4. ssh -T git@github.com

    • 测试 SSH 连接,首次会提示确认 GitHub 的新主机密钥,输入 yes 后即可正常认证。

更离谱的是,有时候这个文件只是软连接,可以看看这样:

bash
展开代码
ls -l /etc/resolv.conf sudo rm /etc/resolv.conf echo "nameserver 8.8.8.8" > /etc/resolv.conf sudo chattr +i /etc/resolv.conf # 锁定文件(防止被覆盖) sudo systemctl stop systemd-resolved # 禁用 systemd-resolved(可选) sudo systemctl disable systemd-resolved