修复 103 登录:API/5174 监听 0.0.0.0,preview 反代 /auth 到 8085。
105 nginx 需能访问 Studio 端口;5174 直连时也需把鉴权请求转发到 Admin API。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -27,6 +27,12 @@ BASE_PATH="${VITE_BASE_PATH:-/ops}"
|
||||
if [[ "${BASE_PATH}" != */ ]]; then
|
||||
BASE_PATH="${BASE_PATH}/"
|
||||
fi
|
||||
API_HOST="${ADM_API_HOST:-127.0.0.1}"
|
||||
WEB_HOST="${ADM_WEB_HOST:-${API_HOST}}"
|
||||
export ADM_API_HOST="${API_HOST}"
|
||||
export ADM_WEB_HOST="${WEB_HOST}"
|
||||
export ADM_PORT="${PORT}"
|
||||
export VITE_BASE_PATH="${BASE_PATH%/}"
|
||||
|
||||
if [[ ! -d dist ]]; then
|
||||
echo "❌ ${ROOT}/dist 不存在,请先构建或 rsync dist" >&2
|
||||
@@ -52,7 +58,7 @@ lsof -ti "TCP:${PORT}" -sTCP:LISTEN 2>/dev/null | xargs kill -9 2>/dev/null || t
|
||||
lsof -ti "TCP:${API_PORT}" -sTCP:LISTEN 2>/dev/null | xargs kill -9 2>/dev/null || true
|
||||
sleep 1
|
||||
|
||||
echo "==> 启动 Admin API @ 127.0.0.1:${API_PORT}..."
|
||||
echo "==> 启动 Admin API @ ${API_HOST}:${API_PORT}..."
|
||||
nohup node server/index.mjs >>"${API_LOG}" 2>&1 &
|
||||
echo $! >"${API_PID_FILE}"
|
||||
sleep 2
|
||||
@@ -63,15 +69,17 @@ if ! curl -sf "http://127.0.0.1:${API_PORT}/health" >/dev/null; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "==> 启动 vite preview @ 127.0.0.1:${PORT} (base=${BASE_PATH})..."
|
||||
nohup npx vite preview --host 127.0.0.1 --port "${PORT}" --base "${BASE_PATH}" --outDir dist >>"${LOG}" 2>&1 &
|
||||
echo "==> 启动 vite preview @ ${WEB_HOST}:${PORT} (base=${BASE_PATH})..."
|
||||
nohup npx vite preview --config scripts/vite-preview.config.mjs >>"${LOG}" 2>&1 &
|
||||
echo $! >"${PID_FILE}"
|
||||
sleep 2
|
||||
|
||||
preview_url="http://127.0.0.1:${PORT}${BASE_PATH}"
|
||||
if curl -sf "${preview_url}" >/dev/null; then
|
||||
login_probe="http://127.0.0.1:${PORT}/auth/status"
|
||||
if curl -sf "${preview_url}" >/dev/null && curl -sf "${login_probe}" >/dev/null; then
|
||||
echo "✅ memind_adm 已就绪: ${preview_url}"
|
||||
curl -sf "${preview_url}" >/dev/null && echo " 首页 OK"
|
||||
echo " /auth 反代 OK"
|
||||
echo " 登录请使用数据库中已初始化的 admin 账号"
|
||||
else
|
||||
echo "❌ 启动失败,最近日志:" >&2
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
import { defineConfig, loadEnv } from 'vite';
|
||||
|
||||
export default defineConfig(({ mode }) => {
|
||||
const env = loadEnv(mode, process.cwd(), '');
|
||||
const backend = env.ADM_DEV_BACKEND ?? 'http://127.0.0.1:8085';
|
||||
const basePath = env.VITE_BASE_PATH?.trim() || '/ops';
|
||||
const base = basePath.endsWith('/') ? basePath : `${basePath}/`;
|
||||
|
||||
return {
|
||||
base,
|
||||
preview: {
|
||||
host: env.ADM_WEB_HOST ?? env.ADM_API_HOST ?? '127.0.0.1',
|
||||
port: Number(env.ADM_PORT ?? 5174),
|
||||
strictPort: true,
|
||||
allowedHosts: ['gadm.tkmind.cn', 'localhost', '127.0.0.1', '10.10.0.2', '58.38.22.103'],
|
||||
proxy: {
|
||||
'/api': backend,
|
||||
'/auth': backend,
|
||||
'/admin-api': backend,
|
||||
},
|
||||
},
|
||||
};
|
||||
});
|
||||
+4
-3
@@ -131,16 +131,17 @@ ready
|
||||
resolveCookieDomainForRequest,
|
||||
});
|
||||
const app = createAdminApp(services);
|
||||
const server = app.listen(port, '127.0.0.1', () => {
|
||||
const host = process.env.ADM_API_HOST?.trim() || '127.0.0.1';
|
||||
const server = app.listen(port, host, () => {
|
||||
writePidFile();
|
||||
console.log(`TKMind Admin API @ http://127.0.0.1:${port}`);
|
||||
console.log(`TKMind Admin API @ http://${host}:${port}`);
|
||||
});
|
||||
server.on('close', removePidFile);
|
||||
server.on('error', (err) => {
|
||||
if (err?.code === 'EADDRINUSE') {
|
||||
const owner = lookupPortOwner(port);
|
||||
console.error(
|
||||
`Admin API 无法启动:127.0.0.1:${port} 已被占用${owner ? `,当前占用者是 ${owner}` : ''}。`,
|
||||
`Admin API 无法启动:${host}:${port} 已被占用${owner ? `,当前占用者是 ${owner}` : ''}。`,
|
||||
);
|
||||
console.error(`如需重启,可先停止旧进程,或修改 .env 中的 ADM_API_PORT。`);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user