Compare commits
2 Commits
cb4c4eece9
...
ce2d8a2907
| Author | SHA1 | Date | |
|---|---|---|---|
| ce2d8a2907 | |||
| 541161774e |
+1
-1
@@ -21,7 +21,7 @@ COPY packages/ ./packages/
|
||||
COPY apps/admin-web/ ./apps/admin-web/
|
||||
|
||||
# Build
|
||||
ARG VITE_API_BASE_URL=/api
|
||||
ARG VITE_API_BASE_URL=
|
||||
RUN pnpm --filter admin-web build
|
||||
|
||||
# ─── Stage 2: Serve with nginx ─────────────────────────────────────────────────
|
||||
|
||||
@@ -130,13 +130,22 @@ import {
|
||||
markImageUploadRequestStarted,
|
||||
} from "./image-webp";
|
||||
|
||||
const baseURL = import.meta.env.VITE_API_BASE_URL ?? "";
|
||||
const rawBaseURL = import.meta.env.VITE_API_BASE_URL ?? "";
|
||||
const baseURL = normalizeApiBaseURL(rawBaseURL);
|
||||
const generationStreamEnabled = import.meta.env.VITE_GENERATION_STREAM_ENABLED === "true";
|
||||
const accessRefreshSkewMs = 2 * 60 * 1000;
|
||||
|
||||
const publicClient = createApiClient({ baseURL });
|
||||
let storedRefreshPromise: Promise<AuthTokens> | null = null;
|
||||
|
||||
function normalizeApiBaseURL(value: string): string {
|
||||
const trimmed = value.trim().replace(/\/+$/, "");
|
||||
if (!trimmed) {
|
||||
return "";
|
||||
}
|
||||
return trimmed.replace(/\/api$/i, "");
|
||||
}
|
||||
|
||||
export function getApiBaseURL(): string {
|
||||
if (baseURL) {
|
||||
return baseURL;
|
||||
|
||||
+6
-7
@@ -10,21 +10,20 @@ IMAGE_TAG=latest
|
||||
# ─── Required: API Keys ────────────────────────────────────────────────────────
|
||||
# LLM provider API key (Ark / Doubao / OpenAI-compatible)
|
||||
LLM_API_KEY=your-llm-api-key-here
|
||||
|
||||
# Embedding + reranker API key (SiliconFlow)
|
||||
SILICONFLOW_API_KEY=your-siliconflow-api-key-here
|
||||
|
||||
# ─── Required: Security ───────────────────────────────────────────────────────
|
||||
# JWT signing secret — use a strong random string in production
|
||||
# Generate: openssl rand -hex 32
|
||||
JWT_SECRET=change-me-in-production
|
||||
OPS_JWT_SECRET=change-me-in-production
|
||||
OPS_DEFAULT_ADMIN_PASSWORD=change-me-before-first-start
|
||||
SCHEDULER_INTERNAL_METRICS_TOKEN=change-me-scheduler-metrics-token
|
||||
JWT_SECRET=geo-web-Aa123456-change-me-in-production
|
||||
OPS_JWT_SECRET=geo-ops-Aa123456-change-me-in-production
|
||||
OPS_DEFAULT_ADMIN_PASSWORD=Aa123456
|
||||
SCHEDULER_INTERNAL_METRICS_TOKEN=geo-scheduler-Aa123456-change-me-in-production
|
||||
|
||||
# ─── Optional: MinIO credentials ─────────────────────────────────────────────
|
||||
MINIO_ROOT_USER=minioadmin
|
||||
MINIO_ROOT_PASSWORD=minioadmin
|
||||
MINIO_ROOT_USER=admin
|
||||
MINIO_ROOT_PASSWORD=Aa123456
|
||||
|
||||
# ─── Optional: Exposed ports ─────────────────────────────────────────────────
|
||||
# Defaults avoid common NAS ports such as 80, 8080, and 8090.
|
||||
|
||||
@@ -23,7 +23,7 @@ monitoring_database:
|
||||
max_idle_conns: 2
|
||||
|
||||
redis:
|
||||
addr: localhost:6379
|
||||
addr: redis:6379
|
||||
db: 0
|
||||
|
||||
cache:
|
||||
|
||||
Reference in New Issue
Block a user