更新dockerfile

This commit is contained in:
2026-03-24 22:53:03 +08:00
parent d09a0487ae
commit a2c835049f
7 changed files with 141 additions and 23 deletions

View File

@@ -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`。
---
## 📦 技术栈