From 54d1d656428b307335d5381184032eed7c6fc63a Mon Sep 17 00:00:00 2001
From: LIlGG <1103069291@qq.com>
Date: Fri, 26 Sep 2025 16:46:52 +0800
Subject: [PATCH] docs: add upage usage instructions document
---
.env.example | 2 +-
.gitignore | 1 -
Dockerfile | 6 +++++-
README.md | 9 ++++++---
app/lib/.server/auth.ts | 2 +-
docker-compose-dev.yaml | 2 +-
docker-compose-prod.yaml | 2 +-
logto/.env | 4 +++-
logto/docker-compose.yaml | 2 ++
package.json | 11 +++++++----
10 files changed, 27 insertions(+), 14 deletions(-)
diff --git a/.env.example b/.env.example
index a0e3161..29cad77 100644
--- a/.env.example
+++ b/.env.example
@@ -140,7 +140,7 @@ LOGTO_BASE_URL=http://localhost:5173
# 随机任意的 36 位字符串,用于加密 Logto 的 cookie。
LOGTO_COOKIE_SECRET=
# 是否在开发环境中启用 Logto 认证,设置为 false 则在开发环境不强制认证
-LOGTO_ENABLE_DEV=false
+LOGTO_ENABLE=false
# 运行环境,与 NODE_ENV 有所不同, NODE_ENV 在打包时就已确定,而此变量用于某些功能在不同环境下的开放
# development | production | test
OPERATING_ENV=production
diff --git a/.gitignore b/.gitignore
index ea0db88..0f473bb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -52,5 +52,4 @@ mock
# storage
/public/uploads
-
/data/
diff --git a/Dockerfile b/Dockerfile
index 6ffff48..8b3c899 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -32,10 +32,14 @@ RUN pnpm prune --prod --ignore-scripts
FROM node:20.18.0-alpine AS runtime
WORKDIR /app
+ENV OPERATING_ENV=production
ENV NODE_ENV=production
-ENV LOGTO_ENABLE_DEV=false
+ENV LOGTO_ENABLE=false
ENV PORT=3000
ENV HOST=0.0.0.0
+ENV USAGE_LOG_FILE=true
+ENV MAX_UPLOAD_SIZE_MB=5
+ENV LOG_LEVEL=debug
# Use pnpm
RUN corepack enable && corepack prepare pnpm@9.4.0 --activate
diff --git a/README.md b/README.md
index 741ee93..a1e49af 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,16 @@
UPage
-基于人工智能的可视化网页构建平台
+基于大模型的可视化网页构建平台
+
------------------------------
-UPage 是一款基于人工智能的可视化网页构建平台,支持多种 AI 提供商集成,基于自然语言快速实现定制化网页。
+UPage 是一款基于大模型的可视化网页构建平台,支持多种 AI 提供商集成,使用自然语言快速实现定制化网页。
------------------------------
@@ -27,17 +28,19 @@ docker run -d \
--restart unless-stopped \
-p 3000:3000 \
-e LLM_DEFAULT_PROVIDER=OpenAILike \
+ -e OPENAI_LIKE_API_BASE_URL=your-openai-like-api-base-url \
-e OPENAI_LIKE_API_KEY=your-openai-like-api-key \
-e LLM_DEFAULT_MODEL=your-default-model \
-e LLM_MINOR_MODEL=your-minor-model \
-v ./data:/app/data \
-v ./logs:/app/logs \
-v ./storage:/app/storage \
- ghcr.io/halo-dev/upage
+ halohub/upage:latest
```
其中参数说明如下:
- `-e LLM_DEFAULT_PROVIDER=OpenAILike`:设置默认的 LLM 提供商为 OpenAILike,即兼容 OpenAI 的 API 接口。
+- `-e OPENAI_LIKE_API_BASE_URL=your-openai-like-api-base-url`:设置 OpenAILike 的 API 基础 URL。
- `-e OPENAI_LIKE_API_KEY=your-openai-like-api-key`:设置 OpenAILike 的 API 密钥。
- `-e LLM_DEFAULT_MODEL=your-default-model`:设置默认的 LLM 模型,用于构建页面。
- `-e LLM_MINOR_MODEL=your-minor-model`:设置次要的 LLM 模型,用于执行其他任务。
diff --git a/app/lib/.server/auth.ts b/app/lib/.server/auth.ts
index 1fc7ba5..216d1a6 100644
--- a/app/lib/.server/auth.ts
+++ b/app/lib/.server/auth.ts
@@ -93,7 +93,7 @@ const config: LogtoConfig = {
const originalLogto = makeLogtoRemix(config, { sessionStorage });
export function shouldEnforceAuth(): boolean {
- return process.env.LOGTO_ENABLE_DEV !== 'false';
+ return process.env.LOGTO_ENABLE !== 'false';
}
function getMockDevUser(): MockUser {
diff --git a/docker-compose-dev.yaml b/docker-compose-dev.yaml
index 3cfccb9..dc55e18 100644
--- a/docker-compose-dev.yaml
+++ b/docker-compose-dev.yaml
@@ -41,7 +41,7 @@ services:
- LOGTO_APP_SECRET=${LOGTO_APP_SECRET}
- LOGTO_COOKIE_SECRET=${LOGTO_COOKIE_SECRET}
- LOGTO_BASE_URL=${LOGTO_BASE_URL}
- - LOGTO_ENABLE_DEV=${LOGTO_ENABLE_DEV:-false}
+ - LOGTO_ENABLE=${LOGTO_ENABLE:-false}
- USAGE_LOG_FILE=true
- STORAGE_DIR=/app/storage
- MAX_UPLOAD_SIZE_MB=${MAX_UPLOAD_SIZE_MB:-5}
diff --git a/docker-compose-prod.yaml b/docker-compose-prod.yaml
index 890b4bd..3bcef2c 100644
--- a/docker-compose-prod.yaml
+++ b/docker-compose-prod.yaml
@@ -41,7 +41,7 @@ services:
- LOGTO_APP_SECRET=${LOGTO_APP_SECRET}
- LOGTO_COOKIE_SECRET=${LOGTO_COOKIE_SECRET}
- LOGTO_BASE_URL=${LOGTO_BASE_URL}
- - LOGTO_ENABLE_DEV=${LOGTO_ENABLE_DEV:-false}
+ - LOGTO_ENABLE=${LOGTO_ENABLE:-false}
- USAGE_LOG_FILE=${USAGE_LOG_FILE:-true}
- MAX_UPLOAD_SIZE_MB=${MAX_UPLOAD_SIZE_MB:-5}
volumes:
diff --git a/logto/.env b/logto/.env
index 9d638a9..23e39ef 100644
--- a/logto/.env
+++ b/logto/.env
@@ -1,5 +1,7 @@
+TAG=1.31.0
LOGTO_ENDPOINT=
LOGTO_ADMIN_ENDPOINT=
+LOGTO_POSTGRES_PORT=
LOGTO_POSTGRES_PASSWORD=postgres1
LOGTO_CORE_PORT=3001
-LOGTO_ADMIN_PORT=3002
\ No newline at end of file
+LOGTO_ADMIN_PORT=3002
diff --git a/logto/docker-compose.yaml b/logto/docker-compose.yaml
index 3190cfd..d3a9032 100644
--- a/logto/docker-compose.yaml
+++ b/logto/docker-compose.yaml
@@ -20,6 +20,8 @@ services:
postgres:
image: postgres:17-alpine
user: postgres
+ ports:
+ - ${LOGTO_POSTGRES_PORT:-5432}:5432
environment:
POSTGRES_USER: logto
POSTGRES_PASSWORD: ${LOGTO_POSTGRES_PASSWORD}
diff --git a/package.json b/package.json
index 18cabba..1da8636 100644
--- a/package.json
+++ b/package.json
@@ -13,14 +13,17 @@
"check": "biome check --write --no-errors-on-unmatched .",
"check:stage": "biome check --write --staged --no-errors-on-unmatched",
"clean": "node scripts/clean.js",
- "setup": "prisma generate && prisma migrate deploy",
+ "setup": "prisma migrate deploy && prisma generate",
"docker:build": "docker build -t upage-ai:production -t upage-ai:latest --target runtime .",
"docker:dev:run": "docker compose -f docker-compose-dev.yaml up",
"docker:prod:run": "docker compose -f docker-compose-prod.yaml up",
"prepare": "husky || true",
"test": "vitest --run",
"test:watch": "vitest",
- "typecheck": "tsc"
+ "typecheck": "tsc",
+ "docs:start": "pnpm --filter upage-docs run start",
+ "docs:build": "pnpm --filter upage-docs run build",
+ "docs:serve": "pnpm --filter upage-docs run serve"
},
"dependencies": {
"@agentic/ai-sdk": "^8.4.4",
@@ -105,7 +108,8 @@
"unist-util-visit": "^5.0.0",
"winston": "^3.17.0",
"winston-daily-rotate-file": "^5.0.0",
- "zod": "^4.1.11"
+ "zod": "^4.1.11",
+ "node-fetch": "^3.3.2"
},
"devDependencies": {
"@biomejs/biome": "2.2.4",
@@ -130,7 +134,6 @@
"dotenv": "^17.2.2",
"fast-glob": "^3.3.3",
"husky": "9.1.7",
- "node-fetch": "^3.3.2",
"pnpm": "^10.17.1",
"sass-embedded": "^1.93.1",
"typescript": "^5.9.2",