chore(config): 更新端口配置从3001到3010

- 将 .env.example 中的 PORT 从 3001 更改为 3010
- 将 CORS_ORIGIN 从 http://localhost:5173 更改为 http://localhost:5180
- 更新 compose.yaml 中的服务端口和健康检查端口为 3010
- 修改 Dockerfile 中暴露的端口为 3010
- 更新文档中的 API 端口引用从 3001 到 3010
- 在 Vite 配置中设置开发服务器端口为 5180
- 更新 Vite 代理目标地址为 http://localhost:3010
This commit is contained in:
yuzhe
2026-07-21 17:13:08 +08:00
parent b0c498fbb6
commit b42f46c182
8 changed files with 21 additions and 21 deletions

View File

@@ -1,6 +1,6 @@
PORT=3001 PORT=3010
NODE_ENV=development NODE_ENV=development
CORS_ORIGIN=http://localhost:5173 CORS_ORIGIN=http://localhost:5180
# 正式环境必须填写;本地 SQLite 模式可暂时留空。 # 正式环境必须填写;本地 SQLite 模式可暂时留空。
DATABASE_URL=postgresql://delivery_desk:local_delivery_desk@127.0.0.1:5432/delivery_desk DATABASE_URL=postgresql://delivery_desk:local_delivery_desk@127.0.0.1:5432/delivery_desk

View File

@@ -16,5 +16,5 @@ COPY --from=build /app/api ./api
COPY --from=build /app/shared ./shared COPY --from=build /app/shared ./shared
COPY --from=build /app/db ./db COPY --from=build /app/db ./db
COPY --from=build /app/dist ./dist COPY --from=build /app/dist ./dist
EXPOSE 3001 EXPOSE 3010
CMD ["pnpm", "server:prod"] CMD ["pnpm", "server:prod"]

View File

@@ -32,9 +32,9 @@ pnpm install
pnpm dev pnpm dev
``` ```
- 前端:`http://localhost:5173` - 前端:`http://localhost:5180`
- API`http://localhost:3001` - API`http://localhost:3010`
- 健康检查:`http://localhost:3001/api/health` - 健康检查:`http://localhost:3010/api/health`
未配置 `DATABASE_URL` 时使用 `data/app.db`;本地图片保存在 `uploads/`。这两个目录包含运行数据、账号信息或用户文件,已排除在 Git 之外。 未配置 `DATABASE_URL` 时使用 `data/app.db`;本地图片保存在 `uploads/`。这两个目录包含运行数据、账号信息或用户文件,已排除在 Git 之外。
@@ -75,7 +75,7 @@ pnpm db:postgres:migrate -- --replace
docker compose up -d --build docker compose up -d --build
``` ```
应用通过 `http://服务器地址:3001` 同时提供前端与 API。公网环境应在前面配置 HTTPS 反向代理;生产 Cookie 会自动添加 `Secure` 应用通过 `http://服务器地址:3010` 同时提供前端与 API。公网环境应在前面配置 HTTPS 反向代理;生产 Cookie 会自动添加 `Secure`
## 文档与检查 ## 文档与检查

View File

@@ -7,7 +7,7 @@ import { closeDatabase } from './database.js';
/** /**
* start server with port * start server with port
*/ */
const PORT = process.env.PORT || 3001; const PORT = process.env.PORT || 3010;
const server = app.listen(PORT, () => { const server = app.listen(PORT, () => {
console.log(`Server ready on port ${PORT}`); console.log(`Server ready on port ${PORT}`);

View File

@@ -7,7 +7,7 @@ services:
condition: service_healthy condition: service_healthy
environment: environment:
NODE_ENV: production NODE_ENV: production
PORT: 3001 PORT: 3010
DATABASE_URL: postgresql://delivery_desk:${POSTGRES_PASSWORD}@postgres:5432/delivery_desk DATABASE_URL: postgresql://delivery_desk:${POSTGRES_PASSWORD}@postgres:5432/delivery_desk
PGSSL: disable PGSSL: disable
COS_CONFIG_ENCRYPTION_KEY: ${COS_CONFIG_ENCRYPTION_KEY:?COS_CONFIG_ENCRYPTION_KEY is required} COS_CONFIG_ENCRYPTION_KEY: ${COS_CONFIG_ENCRYPTION_KEY:?COS_CONFIG_ENCRYPTION_KEY is required}
@@ -15,9 +15,9 @@ services:
INITIAL_ADMIN_USERNAME: ${INITIAL_ADMIN_USERNAME:-admin} INITIAL_ADMIN_USERNAME: ${INITIAL_ADMIN_USERNAME:-admin}
INITIAL_ADMIN_DISPLAY_NAME: ${INITIAL_ADMIN_DISPLAY_NAME:-平台管理员} INITIAL_ADMIN_DISPLAY_NAME: ${INITIAL_ADMIN_DISPLAY_NAME:-平台管理员}
ports: ports:
- "3001:3001" - "3010:3010"
healthcheck: healthcheck:
test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:3001/api/health').then(r=>{if(!r.ok)process.exit(1)})"] test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:3010/api/health').then(r=>{if(!r.ok)process.exit(1)})"]
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 10 retries: 10

View File

@@ -35,7 +35,7 @@ API Key 明文只在创建时返回一次,数据库仅保存 SHA-256 哈希。
平台级 API Key 可以指定目标运营组。项目级 Key 不能创建项目。 平台级 API Key 可以指定目标运营组。项目级 Key 不能创建项目。
```bash ```bash
curl -X POST http://localhost:3001/api/projects \ curl -X POST http://localhost:3010/api/projects \
-H "Authorization: Bearer $DELIVERY_DESK_API_KEY" \ -H "Authorization: Bearer $DELIVERY_DESK_API_KEY" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{"name":"7 月内容计划","slug":"july-content","groupId":1,"client_description":"客户可见说明"}' -d '{"name":"7 月内容计划","slug":"july-content","groupId":1,"client_description":"客户可见说明"}'
@@ -46,7 +46,7 @@ curl -X POST http://localhost:3001/api/projects \
## 创建作品交付集 ## 创建作品交付集
```bash ```bash
curl -X POST http://localhost:3001/api/projects/1/collections \ curl -X POST http://localhost:3010/api/projects/1/collections \
-H "Authorization: Bearer $DELIVERY_DESK_API_KEY" \ -H "Authorization: Bearer $DELIVERY_DESK_API_KEY" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{"name":"2026 年 7 月交付","client_description":"本月交付内容"}' -d '{"name":"2026 年 7 月交付","client_description":"本月交付内容"}'
@@ -57,7 +57,7 @@ curl -X POST http://localhost:3001/api/projects/1/collections \
作品上传使用 `multipart/form-data`,至少一张、最多 30 张图片,单图最大 20 MB。图片数组顺序就是初始展示顺序第一张为封面。 作品上传使用 `multipart/form-data`,至少一张、最多 30 张图片,单图最大 20 MB。图片数组顺序就是初始展示顺序第一张为封面。
```bash ```bash
curl -X POST http://localhost:3001/api/notes \ curl -X POST http://localhost:3010/api/notes \
-H "Authorization: Bearer $DELIVERY_DESK_API_KEY" \ -H "Authorization: Bearer $DELIVERY_DESK_API_KEY" \
-F "collectionId=1" \ -F "collectionId=1" \
-F "title=作品标题" \ -F "title=作品标题" \
@@ -72,7 +72,7 @@ curl -X POST http://localhost:3001/api/notes \
## 创建新版本 ## 创建新版本
```bash ```bash
curl -X POST http://localhost:3001/api/notes/12/versions \ curl -X POST http://localhost:3010/api/notes/12/versions \
-H "Authorization: Bearer $DELIVERY_DESK_API_KEY" \ -H "Authorization: Bearer $DELIVERY_DESK_API_KEY" \
-F "title=修改后的标题" \ -F "title=修改后的标题" \
-F "description=修改后的正文" \ -F "description=修改后的正文" \
@@ -91,4 +91,3 @@ curl -X POST http://localhost:3001/api/notes/12/versions \
``` ```
常见状态码:`400` 输入无效、`401` 未认证、`403` 越权、`404` 资源不存在、`409` 唯一性或状态冲突、`500` 服务端错误。 常见状态码:`400` 输入无效、`401` 未认证、`403` 越权、`404` 资源不存在、`409` 唯一性或状态冲突、`500` 服务端错误。

View File

@@ -5,7 +5,7 @@
| 变量 | 必需 | 说明 | | 变量 | 必需 | 说明 |
|---|---|---| |---|---|---|
| `NODE_ENV` | 是 | 正式环境设为 `production` | | `NODE_ENV` | 是 | 正式环境设为 `production` |
| `PORT` | 否 | API 与生产静态站端口,默认 `3001` | | `PORT` | 否 | API 与生产静态站端口,默认 `3010` |
| `DATABASE_URL` | 正式环境 | PostgreSQL 连接串;缺省时使用 SQLite | | `DATABASE_URL` | 正式环境 | PostgreSQL 连接串;缺省时使用 SQLite |
| `PGSSL` | 否 | 内网 PostgreSQL 可设为 `disable` | | `PGSSL` | 否 | 内网 PostgreSQL 可设为 `disable` |
| `PG_POOL_MAX` | 否 | 连接池上限,默认 `10` | | `PG_POOL_MAX` | 否 | 连接池上限,默认 `10` |
@@ -31,7 +31,7 @@ docker compose up -d --build
## 冒烟检查 ## 冒烟检查
```bash ```bash
curl http://127.0.0.1:3001/api/health curl http://127.0.0.1:3010/api/health
docker compose ps docker compose ps
docker compose logs --tail=100 app docker compose logs --tail=100 app
``` ```
@@ -67,4 +67,3 @@ pnpm test:postgres-runtime
``` ```
正式切换前还应验证管理员首次改密、客户访问门禁、COS 上传、客户批注与验收、数据库备份及 HTTPS Cookie。 正式切换前还应验证管理员首次改密、客户访问门禁、COS 上传、客户批注与验收、数据库备份及 HTTPS Cookie。

View File

@@ -15,9 +15,11 @@ export default defineConfig({
tsconfigPaths(), tsconfigPaths(),
], ],
server: { server: {
port: 5180,
strictPort: true,
proxy: { proxy: {
'/api': { '/api': {
target: 'http://localhost:3001', target: 'http://localhost:3010',
changeOrigin: true, changeOrigin: true,
secure: false, secure: false,
configure: (proxy) => { configure: (proxy) => {
@@ -33,7 +35,7 @@ export default defineConfig({
}, },
}, },
'/uploads': { '/uploads': {
target: 'http://localhost:3001', target: 'http://localhost:3010',
changeOrigin: true, changeOrigin: true,
secure: false, secure: false,
} }