个人博客项目简介(Readme)

2026年6月23日 blogTech 4 分钟阅读 5 次阅读
📖 文章摘要

基于 Nuxt.js 3 + FastAPI + SQLite 的个人博客系统,支持文章发布、分类标签、评论审核、全文搜索、RSS 订阅、后台管理等功能。

My Blog

个人博客 — blog.vue2.xyz

文档更新:2026-06-25(碎念管理增强:搜索/筛选/排序/分页/私密 + 后台交互优化)

Features

类别 功能
📝 文章 SSR 渲染、Markdown 编辑器(专注模式/分栏/字体/互换)、分类/标签、搜索、RSS
💬 评论 审核制、author_token 游客可见、一键通过
🖼️ 图床 前台/后台管理、拖拽上传、复制 URL、文件锁定保护
💭 碎念 type 分类(mood/poem)、对话式气泡布局、分页加载、56 种表情选择器、配图、相对时间
💭 碎念管理 搜索/类型筛选/公开私密筛选、时间排序、触底自动加载、实时统计、Tab禁止跳转
📦 网盘 密码分享、限次下载、过期时间
⚙️ 后台 站点设置、签名/favicon/技能标签拖拽排序、修改账号
📊 主页 站点统计卡、服务状态徽章、火焰渐变签名
🎴 卡片样式 CSS 变量驱动、后台可视化管理(6 组 26 参数滑块+实时预览)
🎨 动画 glass-hover 毛玻璃、stagger 入场、表盘统计
🔒 安全 CORS 域名白名单、JWT 统一认证、Cookie sameSite+Lax+Secure、bcrypt 密码哈希、XSS 消毒(DOMPurify)、路径穿越防护、网盘危险文件拦截

Tech Stack

  • Frontend: Nuxt.js 3 (SSR) + Tailwind CSS + isomorphic-dompurify
  • Backend: FastAPI (Python) + Gunicorn + passlib[bcrypt]
  • Database: SQLite + SQLAlchemy
  • Proxy: Nginx (SSL termination)
  • Process: systemd (blog-api, blog-web)

Quick Start

# 后端
cd backend
source venv/Scripts/activate
pip install -r requirements.txt  # 含 passlib[bcrypt]
uvicorn main:app --reload --port 8001

# 前端(另一个终端)
cd frontend
npm install
npm run dev

或双击 start.bat 一键启动。

访问 http://localhost:3000,后台 http://localhost:3000/admin

Project Structure

frontend/          Nuxt.js 前端(pages / components / composables)
backend/           FastAPI 后端(routers / models / auth)
data/              运行时数据(blog.db + uploads + pan)
deploy/            部署脚本 + systemd 服务 + Nginx 配置
docs/              项目文档

Deploy

python deploy/deploy.py
# 1 → 完整部署(构建+推送+重启)
# 2 → 数据库同步(上传/下载)

Server

  • IP: 43.108.33.153 (韩国首尔)
  • SSH: -p 2894 (密钥登录)
  • Domain: blog.vue2.xyz

Nginx 反代到本机 FastAPI(:8001) / Nuxt SSR(:3000),HTTPS 通过 Let's Encrypt。

Docs

最后更新:2026年6月29日CC BY-NC-SA 4.0

评论

暂无评论,来写第一条吧

© 2026 My Blog. Built with Nuxt.js + FastAPI.