更新dockerfile
This commit is contained in:
49
README.md
49
README.md
@@ -21,6 +21,39 @@
|
||||
|
||||
---
|
||||
|
||||
## 🏛️ 架构说明
|
||||
|
||||
Docker 部署采用**双服务架构**:
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────┐
|
||||
│ Docker Container │
|
||||
│ │
|
||||
│ ┌──────────────────────────────┐ │
|
||||
│ │ Node.js (SvelteKit SSR) │ │
|
||||
│ │ 端口: 8080 (对外暴露) │ │
|
||||
│ │ - 处理页面请求 │ │
|
||||
│ │ - 代理 /api/* → Dart 后端 │ │
|
||||
│ └──────────────┬───────────────┘ │
|
||||
│ │ 内部通信 │
|
||||
│ ▼ │
|
||||
│ ┌──────────────────────────────┐ │
|
||||
│ │ Dart Server (Shelf) │ │
|
||||
│ │ 端口: 8081 (仅内部) │ │
|
||||
│ │ - 提供 RESTful API │ │
|
||||
│ │ - 图片/缩略图服务 │ │
|
||||
│ └──────────────────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**工作流程:**
|
||||
1. 用户访问 `:8080`,请求由 SvelteKit SSR 处理
|
||||
2. 前端 `/api/*` 请求被代理到 Dart 后端 `:8081`
|
||||
3. Dart 后端处理数据请求,返回 JSON 或图片流
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ 项目结构
|
||||
|
||||
```
|
||||
@@ -109,9 +142,13 @@ docker run -d \
|
||||
-p 8080:8080 \
|
||||
-v $(pwd)/data:/app/data \
|
||||
-v $(pwd)/cache:/app/cache \
|
||||
-e ORIGIN=http://localhost:8080 \
|
||||
-e BETTER_AUTH_SECRET=your-secret-key-here \
|
||||
loongyan
|
||||
```
|
||||
|
||||
> **注意**: 生产环境请务必设置 `ORIGIN` 为你的实际域名,并使用安全的随机字符串作为 `BETTER_AUTH_SECRET`。
|
||||
|
||||
### Docker Compose(推荐)
|
||||
|
||||
```yaml
|
||||
@@ -126,6 +163,8 @@ services:
|
||||
- ./cache:/app/cache
|
||||
environment:
|
||||
- PORT=8080
|
||||
- ORIGIN=http://localhost:8080
|
||||
- BETTER_AUTH_SECRET=your-secret-key-here
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
@@ -262,7 +301,9 @@ pnpm auth:schema
|
||||
|
||||
| 变量名 | 默认值 | 说明 |
|
||||
|--------|--------|------|
|
||||
| `PORT` | `8080` | 服务器监听端口 |
|
||||
| `PORT` | `8081` | Dart 后端监听端口(容器内部) |
|
||||
| `DATA_DIR` | `/app/data` | 数据目录 |
|
||||
| `CACHE_DIR` | `/app/cache` | 缓存目录 |
|
||||
|
||||
### 前端环境变量
|
||||
|
||||
@@ -270,9 +311,13 @@ pnpm auth:schema
|
||||
|
||||
```bash
|
||||
# web/.env
|
||||
PUBLIC_API_URL=http://localhost:8080/api/v1
|
||||
ORIGIN=http://localhost:8080 # 生产环境的实际域名
|
||||
BETTER_AUTH_SECRET=your-secret-key # 认证密钥(32字符随机字符串)
|
||||
BACKEND_URL=http://127.0.0.1:8081 # Dart 后端地址(内部通信)
|
||||
```
|
||||
|
||||
> **重要**: 生产环境必须设置 `ORIGIN` 和 `BETTER_AUTH_SECRET`。
|
||||
|
||||
---
|
||||
|
||||
## 📦 技术栈
|
||||
|
||||
Reference in New Issue
Block a user