编辑
2025-06-16
建站教程
00

前置知识

什么是Docker?

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

核心概念:

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

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

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

  1. 快速部署VanBlog
编辑
2025-06-15
建站教程
00

VanBlog自动备份

前言

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

功能概览

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

核心功能

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

技术特性

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

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

功能说明

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

编辑
2025-06-13
建站教程
00

VanBlog 标签性能优化方案

背景问题

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

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

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

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

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

编辑
2025-06-12
建站教程
00

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

数据库表结构分析

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

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

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

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

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

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
Linux运维
00

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
编辑
2025-06-09
Linux运维
00

1. 安装 Caddy

在 Ubuntu 服务器上执行以下命令:

bash
展开代码
# 安装必要的包 sudo apt update sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https # 添加 Caddy 官方 GPG 密钥 curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg # 添加 Caddy 仓库 curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list # 安装 Caddy sudo apt update sudo apt install caddy
编辑
2025-06-09
建站教程
00

ACME 证书申请方式

HTTP-01 挑战

  • 原理:CA向域名的 /.well-known/acme-challenge/ 路径发送HTTP请求验证域名控制权
  • 优点:配置简单,无需DNS API
  • 缺点:需要80端口可访问,不支持通配符证书
  • 适用场景:单域名或多个具体域名的证书申请

DNS-01 挑战

  • 原理:在域名的DNS记录中添加TXT记录来验证域名控制权
  • 优点:支持通配符证书,无需开放80端口,可在内网使用
  • 缺点:需要DNS提供商API支持,配置相对复杂
  • 适用场景:通配符证书、内网服务、防火墙限制环境
编辑
2025-06-09
Docker
00
  1. 清理无用镜像/容器/卷/网络
    使用以下命令一键清理所有未被使用的资源(包含停止的容器、悬空镜像、未使用的网络和卷):

    bash
    展开代码
    docker system prune -a --volumes
    • -a:删除所有未被容器引用的镜像(不仅仅是悬空镜像)。
    • --volumes:删除未被使用的卷(⚠️ 确保卷中无重要数据!)。
    • 注意:此操作会删除所有停止的容器和无用的资源!
  2. 单独清理不同资源

    • 停止的容器:

      bash
      展开代码
      docker container prune
    • 悬空镜像(未被任何容器引用):

      bash
      展开代码
      docker image prune
    • 未被使用的卷:

      bash
      展开代码
      docker volume prune
    • 构建缓存(Builder Cache):

      bash
      展开代码
      docker builder prune
编辑
2025-06-08
Linux运维
00

VMware 虚拟机磁盘扩容后 Linux 分区扩展完整教程

1. 前言

在 VMware 中扩容虚拟磁盘后,Linux 系统并不会自动识别新增的空间,需要手动扩展分区和文件系统。本教程以 GPT 分区表 + ext4/xfs 文件系统为例,详细介绍如何安全扩展 /dev/sda3 分区,使其占用全部可用空间。


编辑
2025-06-07
Linux运维
00

sudo

bash
展开代码
echo "nameserver 8.8.8.8" > /etc/resolv.conf

看是否可以正常解析:

bash
展开代码
nslookup github.com

确定里面没有乱指:

bash
展开代码
vim /etc/hosts
编辑
2025-06-06
Linux运维
00

VMware 连不上网络?

编辑
2025-06-06
Python
00

一个极其快速的 Python 包和项目管理工具,用 Rust 编写。

为什么需要 uv?

我们在日常开发中,经常要用到这些工具:

  • pip:安装依赖
  • pipx:安装命令行工具
  • poetryrye:管理项目和虚拟环境
  • pyenv:切换 Python 版本
  • virtualenv:创建虚拟环境
  • pip-tools:锁定依赖版本
  • twine:发布包
编辑
2025-06-05
Linux运维
00

临时有效:

展开代码
export http_proxy="http://127.0.0.1:10828" export https_proxy="http://127.0.0.1:10828" sudo -E apt update # -E 保留环境变量 sudo -E apt upgrade
编辑
2025-06-05
售卖作品
00

两头USB都插电,左上角的开关打到中间是给电,打到上面是USB,打到下面是关闭电源。

image.png

编辑
2025-06-04
单片机ban
00

该文章已加密,点击 阅读全文 并输入密码后方可查看。

编辑
2025-06-03
深度学习ban
00

该文章已加密,点击 阅读全文 并输入密码后方可查看。