氓氓的个人博客

📝 介绍

一个专注于分享编程知识、技术趋势和开发经验的个人博客,记录学习成长的点点滴滴。

主要内容包括:

  • 💻 编程技术Go、Java、前端等
  • 🐧 Linux 系统使用与配置
  • 🛠️ 实用工具分享
  • 📱 应用部署与配置Jellyfin、RustDesk 等)
  • 📚 工作日志与技术总结

🏗️ 技术栈

🚀 快速开始

安装依赖

npm install

本地开发

npm run docs:dev

访问 http://localhost:8080 即可预览博客

构建生产版本

npm run docs:build

构建产物将生成在 src/.vuepress/dist 目录

Docker 部署

需要先安装 Docker 和 Docker Compose v2。

启动服务:

make up

访问 http://localhost:51888/ 即可查看站点。

停止服务:

make down

清除缓存开发

npm run docs:clean-dev

📂 目录结构

.
├── src/
│   ├── .vuepress/          # VuePress 配置
│   │   ├── config.ts       # 站点配置
│   │   ├── theme.ts        # 主题配置
│   │   ├── navbar.ts       # 导航栏配置
│   │   ├── sidebar.ts      # 侧边栏配置
│   │   └── styles/         # 自定义样式
│   ├── programming/        # 编程相关文章
│   │   ├── backend/        # 后端Go、Java
│   │   ├── frontend/       # 前端
│   │   ├── linux/          # Linux
│   │   └── docker/         # Docker
│   ├── apps/               # 应用部署
│   ├── tools/              # 工具分享
│   ├── work/               # 工作日志
│   └── README.md           # 首页
└── package.json

📄 License

MIT License

🔐 站点访问认证Caddy

本站部署在家用服务器,通过云服务器的 Caddy 作为公网入口;访问认证(登录)已在 Caddy 层统一开启,因此无需在 VuePress/前端实现认证逻辑。

要点:

  • 认证位置:云服务器 Caddyfile(整站 basicauth / 或按路径规则)
  • 原因:静态站前端登录无法真正保护资源;在反代入口做认证才有效
  • 参考命令(生成 bcrypt 密码哈希):
caddy hash-password --plaintext 'your-strong-password'
  • 参考配置(整站认证):
example.com {
  basicauth {
    youruser <bcrypt-hash>
  }

  reverse_proxy 127.0.0.1:<upstream>
}
Description
No description provided
Readme CC-BY-4.0 17 MiB
Languages
TypeScript 53.2%
Shell 36.7%
SCSS 8.2%
Vue 1%
Dockerfile 0.7%
Other 0.2%