About this site
About 小白龙博客
记录技术与生活
- Posts
- 104
- Tags
- 50
- Modules
- 8
Features
From reading to interaction — all in one place
Roadmap
From skeleton to interaction and side apps — shipped in phases
- 01
Foundation
pnpm Monorepo with Nuxt web, NestJS API, and Admin — unified TypeScript and shared types
- 02
Content
Posts, tags, bookmarks, blogroll, and guestbook — reading and discovery as daily entry points
- 03
Launch
Docker Compose production, HTTPS, search, and RSS — a stable public site
- 04
Interaction
Sign-in, realtime chat, donations, and moderation — closer links between visitors and author
- 05
Tool matrix
Three-brand watermark mini programs, Android / iOS apps, video-parse, and Leek Assistant joined the same repo
Projects
Blog stack and side products maintained in this Monorepo
Blog frontend
apps/web
Nuxt 4 SSR — posts, bookmarks, blogroll, guestbook, chat, and donations (PC + H5)
Admin
apps/admin
Vite+ + Element Plus — content ops, RBAC, mini-program and donation logs (PC ≥1280px only)
NestJS API
apps/api
Unified REST / WebSocket / job queues for the blog, mini programs, and desktop app
Watermark-remover mini programs
apps/wx-x
uni-app x multi-brand packages — parse short-video / image share links and save watermark-free media; tools and mutual-visit included

Watermark remover app
apps/wx-x
Same uni-app x codebase, cloud-packed for Android / iOS; email login; packages via CDN manifest
Video link parse
apps/video-parse
Hosted on EdgeOne Pages, proxied by the API for mini program / App parsing
Leek Assistant
apps/fund-desktop
Electron desktop fund watchlist — download Windows / macOS builds on this page
Market data comes from public sources for reference only and is not investment advice. Investing involves risk.
Tech stack
pnpm TypeScript Monorepo — blog web, admin, NestJS API, plus mini program / App / video-parse / desktop
Blog frontend
Admin
API & data
Side apps
Engineering
Architecture
Decoupled multi-client stack on a single Docker Compose host with blue/green — Caddy for HTTPS; API / Web / MySQL / Redis / MQ / Kafka run in containers; mini program and desktop share NestJS API and @blog/shared
Clients
- Nuxt 4.5 SSRReading & interaction (PC + H5)
- Admin SPAContent ops & RBAC (PC only)
- uni-app x MPThree-brand watermark WeChat mini programs
- Android / iOS App 1.2.5Watermark Android / iOS app
- Electron 44Leek Assistant (Electron)
Edge & infrastructure
- 云服务器Production Linux host running Compose
- CaddyHTTPS reverse proxy · Admin static · vhosts
- Docker ComposeOrchestration · api/web blue-green
- OSS CDNMedia via Aliyun OSS + CDN
- EdgeOneVideo-parse edge functions (not on-host)
Compose containers
- api-blue / greenNestJS 12 container · REST / WS / queues
- web-blue / greenNuxt 4.5 container · SSR blue-green
- Admin 静态Caddy serves admin-current static
- RabbitMQ 4.3Compose network · watermark / crawl jobs
- Kafka 4.3Compose network · API request log stream
Data & shared
- MySQL 9.0Compose network · not public
- Redis 8.10Compose network · cache / tokens / online
- OSSImages & attachments
- @blog/sharedCross-app DTOs / constants
Request flows
- Browser → Caddy → web-blue/green (Nuxt SSR) → api-blue/green (NestJS)
- Browser → Caddy static Admin → api-blue/green (JWT Bearer)
- Mini program / App → Caddy → NestJS; video-parse on EdgeOne, proxied by API
- Desktop → NestJS fund-desktop API (public quotes; optional Redis / MySQL via API)