Skip to content

clxstart/weblog

Repository files navigation

Weblog

Weblog 是一个 Spring Boot + Astro/Svelte 的前后端分离个人博客系统。当前代码包含前台博客、后台管理、JWT 登录、MinIO 上传、Lucene 搜索、评论审核、知识库、聊天室和 AI 工作台。

项目结构

  • weblog-springboot: 后端多模块工程,入口模块是 weblog-web
  • weblog-fuwari: Astro + Svelte 前端。
  • deploy-config: 服务器 Podman 部署脚本与容器配置。

安全配置

仓库不再保存真实密钥。后端启动必须通过环境变量指定运行环境和敏感配置。

必填或强烈建议配置:

SPRING_PROFILES_ACTIVE=dev
JWT_SECRET=<base64-encoded-hs512-secret>
SPRING_DATASOURCE_URL=jdbc:p6spy:mysql://127.0.0.1:3307/weblog?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull
SPRING_DATASOURCE_USERNAME=root
SPRING_DATASOURCE_PASSWORD=123456
MINIO_ENDPOINT=http://127.0.0.1:9000
MINIO_PUBLIC_ENDPOINT=http://127.0.0.1:9000
MINIO_ACCESS_KEY=quanxiaoha
MINIO_SECRET_KEY=quanxiaoha
MINIO_BUCKET_NAME=weblog
WEBLOG_CORS_ALLOWED_ORIGIN_PATTERNS=http://localhost:4321,http://127.0.0.1:4321

可选配置:

MAIL_HOST=smtp.qq.com
MAIL_USERNAME=
MAIL_PASSWORD=
QQ_API_KEY=
AI_BASE_URL=https://maas-coding-api.cn-huabei-1.xf-yun.com/anthropic/v1
AI_API_KEY=
AI_MODEL_NAME=xopkimik26
AI_UNSPLASH_ACCESS_KEY=

生成本地 JWT 密钥示例:

openssl rand -base64 64

Windows PowerShell 可用:

[Convert]::ToBase64String((1..64 | ForEach-Object { Get-Random -Minimum 0 -Maximum 256 }))

本地运行

  1. 启动 MySQL 和 MinIO,确认数据库 weblog 已初始化。
  2. 设置后端环境变量,至少包含 SPRING_PROFILES_ACTIVE=devJWT_SECRET
  3. 启动后端:
cd weblog-springboot
mvn -pl weblog-web -am package -DskipTests
java -jar weblog-web/target/weblog-web-0.0.1-SNAPSHOT.jar
  1. 启动前端:
cd weblog-fuwari
pnpm install
pnpm dev

访问地址:

  • 前台首页:http://localhost:4321/
  • 后台管理:http://localhost:4321/admin/
  • 后端接口:http://localhost:8081/

部署

复制 deploy-config/.env.example 为服务器上的 deploy-config/.env 并填写真实值。run-on-server.sh 会在首次部署时自动生成 JWT_SECRET 并写回 .env,也可以提前手动配置。

生产环境必须修改:

  • MYSQL_ROOT_PASSWORD
  • MINIO_ROOT_PASSWORD
  • JWT_SECRET
  • WEBLOG_CORS_ALLOWED_ORIGIN_PATTERNS
  • 管理员初始密码

演示账号:

  • 用户名:admin
  • 默认密码:123456

生产环境上线后必须立即修改默认密码。

常用验证命令

cd weblog-fuwari
pnpm vitest run src/lib/weblog-api.test.ts --pool=threads --maxWorkers=1
pnpm astro check
pnpm build
cd weblog-springboot
mvn -pl weblog-web -am -DskipTests package

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors