Skip to content

Commit bcc9bcd

Browse files
committed
refactor(README.md): 更新项目描述和结构
- 修改项目标题为 "ExquisiteCore Blog" - 更新项目简介,详细描述技术栈和架构 - 移除旧的部署方式说明,添加本地开发步骤和前置条件 - 详细说明项目功能 - 更新项目结构图,展示前后端目录结构及关键文件 - 修改感谢部分,更新引用的优秀网站和设计 refactor(.github/workflows/backend.yml): 简化 CI 工作流 - 将 `test` job 重命名为 `check`,并更新 job 描述为 "Check & Test" - 更新 `uses` 版本为 `actions/cache@v4`,在多个步骤中 - 移除与 SQLx 相关的缓存步骤、CLI 安装和元数据准备 - 修改 `build` job 的依赖为 `check`,而不是 `test` - 更新 `Setup Rust` 步骤,移除 `toolchain` 参数 - 简化 `Build release binary` 步骤的命令格式
1 parent 8c2df29 commit bcc9bcd

File tree

2 files changed

+65
-84
lines changed

2 files changed

+65
-84
lines changed

.github/workflows/backend.yml

Lines changed: 8 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,10 @@ on:
1414
env:
1515
CARGO_TERM_COLOR: always
1616
BINARY_NAME: backend
17-
DATABASE_URL: ${{ secrets.DATABASE_URL }}
18-
SQLX_OFFLINE: true
1917

2018
jobs:
21-
test:
22-
name: Test
19+
check:
20+
name: Check & Test
2321
runs-on: ubuntu-latest
2422
steps:
2523
- uses: actions/checkout@v4
@@ -28,7 +26,7 @@ jobs:
2826
uses: dtolnay/rust-toolchain@stable
2927

3028
- name: Cache Rust dependencies
31-
uses: actions/cache@v3
29+
uses: actions/cache@v4
3230
with:
3331
path: |
3432
~/.cargo/registry
@@ -37,30 +35,15 @@ jobs:
3735
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
3836
restore-keys: ${{ runner.os }}-cargo-
3937

40-
- name: Cache SQLx metadata
41-
uses: actions/cache@v3
42-
with:
43-
path: backend/.sqlx
44-
key: ${{ runner.os }}-sqlx-${{ hashFiles('**/*.rs', '**/migrations/**') }}
45-
restore-keys: ${{ runner.os }}-sqlx-
46-
47-
- name: Install SQLx CLI
48-
run: cargo install sqlx-cli --no-default-features --features postgres
49-
50-
- name: Prepare SQLx metadata
51-
run: |
52-
cd backend
53-
cargo sqlx prepare -- --tests
54-
env:
55-
DATABASE_URL: ${{ secrets.DATABASE_URL }}
56-
SQLX_OFFLINE: true
38+
- name: Check
39+
run: cd backend && cargo check --verbose
5740

5841
- name: Run tests
5942
run: cd backend && cargo test --verbose
6043

6144
build:
6245
name: Build ${{ matrix.target.name }}
63-
needs: test
46+
needs: check
6447
runs-on: ${{ matrix.target.os }}
6548
strategy:
6649
fail-fast: false
@@ -88,15 +71,14 @@ jobs:
8871
- name: Setup Rust
8972
uses: dtolnay/rust-toolchain@stable
9073
with:
91-
toolchain: stable
9274
targets: ${{ matrix.target.target }}
9375

9476
- name: Install cross compile tools (Linux ARM64 only)
9577
if: matrix.target.target == 'aarch64-unknown-linux-gnu'
9678
run: sudo apt-get update && sudo apt-get install -y gcc-aarch64-linux-gnu
9779

9880
- name: Cache Rust dependencies
99-
uses: actions/cache@v3
81+
uses: actions/cache@v4
10082
with:
10183
path: |
10284
~/.cargo/registry
@@ -105,28 +87,8 @@ jobs:
10587
key: ${{ runner.os }}-${{ matrix.target.target }}-cargo-${{ hashFiles('**/Cargo.lock') }}
10688
restore-keys: ${{ runner.os }}-${{ matrix.target.target }}-cargo-
10789

108-
- name: Cache SQLx metadata
109-
uses: actions/cache@v3
110-
with:
111-
path: backend/.sqlx
112-
key: ${{ runner.os }}-sqlx-${{ hashFiles('**/*.rs', '**/migrations/**') }}
113-
restore-keys: ${{ runner.os }}-sqlx-
114-
115-
- name: Install SQLx CLI
116-
run: cargo install sqlx-cli --no-default-features --features postgres
117-
118-
- name: Prepare SQLx metadata
119-
run: |
120-
cd backend
121-
cargo sqlx prepare -- --tests
122-
env:
123-
DATABASE_URL: ${{ secrets.DATABASE_URL }}
124-
SQLX_OFFLINE: true
125-
12690
- name: Build release binary
127-
run: |
128-
cd backend
129-
cargo build --release --target ${{ matrix.target.target }}
91+
run: cd backend && cargo build --release --target ${{ matrix.target.target }}
13092
env:
13193
CC_aarch64_unknown_linux_gnu: aarch64-linux-gnu-gcc
13294
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc

README.md

Lines changed: 57 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,82 @@
1-
# blog
1+
# ExquisiteCore Blog
22

3-
**本项目是 EC 的个小站**
3+
EC 的个人博客,采用 Rust 网关 + Next.js 前端架构。
44

5-
# blog
6-
## 简介
5+
## 技术栈
76

8-
一个简单的个人网站采用前后端分离架构
7+
| 层级 | 技术 |
8+
|------|------|
9+
| 前端 | Next.js 16 + React 19 + TypeScript + TailwindCSS v4 + DaisyUI v5 |
10+
| 后端 | Rust + Axum + SeaORM |
11+
| 数据库 | PostgreSQL |
912

10-
前端使用 Nextjs + React + TypeScript + shadcnui + Tailwind CSS 开发
13+
## 架构
1114

12-
后端使用 Rust + Axum + Sqlx
15+
```
16+
浏览器 → Rust Gateway (:8080)
17+
├── /api/* → Axum API (Rust)
18+
└── /* → 反向代理 → Next.js (:3000)
19+
```
1320

14-
数据库使用 postgresql
21+
Rust 后端作为统一入口,同时承担 API 服务和反向代理职责,用户只需访问一个端口。
1522

16-
## 部署方式
23+
## 功能
1724

18-
### Docker 部署
25+
- 文章管理(Markdown 编辑器,多语言内容支持)
26+
- 标签系统
27+
- 点赞 / 评论(支持匿名身份追踪)
28+
- JWT 认证(access token + refresh token)
29+
- SEO(SSR、sitemap、JSON-LD 结构化数据)
30+
- 管理后台(文章 / 标签 / 用户管理)
1931

20-
本项目支持使用 Docker 进行部署,详细说明请参考 [Docker 部署指南](DOCKER.md)
32+
## 本地开发
2133

22-
```bash
23-
# 使用 Docker Compose 启动所有服务
24-
docker-compose up -d
25-
```
34+
### 前置条件
2635

27-
### 1Panel + OpenResty 集成部署
36+
- Rust (edition 2024)
37+
- Node.js 20+
38+
- PostgreSQL 16+
2839

29-
如果您使用 1Panel 面板管理服务器,本项目提供了专门的 OpenResty 集成方案:
40+
### 启动
3041

3142
```bash
32-
# 初始化环境
33-
./deploy-1panel.sh setup
34-
35-
# 构建镜像
36-
./deploy-1panel.sh build
43+
# 1. 启动后端(自动执行数据库迁移)
44+
cd backend
45+
cp config.example.toml config.toml # 编辑数据库连接等配置
46+
cargo run
3747

38-
# 启动服务
39-
./deploy-1panel.sh start
48+
# 2. 启动前端
49+
cd frontend
50+
npm install
51+
npm run dev
4052

41-
# 配置 OpenResty (替换为您的域名)
42-
./deploy-1panel.sh install yourdomain.com
53+
# 3. 访问 http://localhost:8080(通过 Rust 网关)
4354
```
4455

45-
详细的 1Panel 集成说明请参考 [1Panel 集成指南](1PANEL-INTEGRATION.md)
56+
## 项目结构
4657

47-
#### 1Panel 集成的优势
48-
49-
- **统一管理**: 通过 1Panel 面板统一管理 Web 服务器配置
50-
- **SSL 自动化**: 利用 1Panel 的 SSL 证书自动申请和更新功能
51-
- **性能优化**: OpenResty 的高性能和 Lua 脚本支持
52-
- **安全增强**: 1Panel 内置的安全防护功能
53-
- **监控便利**: 集成的监控和日志查看功能
58+
```
59+
backend/
60+
src/
61+
api/ # API 路由处理 (postapi, labelapi, userapi)
62+
entity/ # SeaORM 实体定义
63+
migration/ # 数据库迁移
64+
middleware/ # 身份认证中间件
65+
routes.rs # 路由注册 + 反向代理
66+
wrapper.rs # ApiResponse 统一响应封装
67+
state.rs # 应用状态
68+
frontend/
69+
app/
70+
(site)/ # 公开页面 (首页, 博客, 关于, 工具)
71+
(dashboard)/ # 管理后台
72+
components/ # React 组件
73+
lib/ # 工具函数 (axios, auth)
74+
types/ # TypeScript 类型定义
75+
```
5476

5577
## 感谢
5678

57-
本项目开发时,借鉴了以下这些优秀网站(排名不分先后)的很多设计
58-
59-
- [shadcn/ui](https://ui.shadcn.com/)
60-
- [shadcn-vue](https://www.shadcn-vue.com/)
79+
- [DaisyUI](https://daisyui.com/)
6180
- [付小晨](https://fuxiaochen.com/)
6281

6382
## LICENCE

0 commit comments

Comments
 (0)