feat(deploy): 一条命令链部署——双单文件 + Caddy + DATABASE_URL 单源

多阶段镜像编出 server/engine 单文件与前端静态;compose 起 pg/server/engine/caddy;
启动时自动迁移;仅用 DATABASE_URL,postgres 建库参数由 entrypoint 拆解。
This commit is contained in:
2026-10-10 16:46:54 +08:00
parent 5f76bfc9d6
commit ea4efbe1d7
12 changed files with 258 additions and 18 deletions
+9 -1
View File
@@ -1,6 +1,7 @@
import { fileURLToPath } from "node:url";
import { createApp } from "./app.ts";
import { loadEnv } from "./env.ts";
import { createDb } from "@new-api-key-usage/db";
import { createDb, runMigrations } from "@new-api-key-usage/db";
import { appLogger, setupLogging } from "@new-api-key-usage/core";
const env = loadEnv(process.env);
@@ -8,6 +9,13 @@ setupLogging(env.LOG_LEVEL);
const db = createDb(env.DATABASE_URL);
const migrationsFolder =
process.env.MIGRATIONS_FOLDER ??
fileURLToPath(new URL("../../../packages/db/drizzle", import.meta.url));
await runMigrations(db, migrationsFolder);
appLogger("server").info("数据库迁移已就绪");
const app = createApp({
db,
skKeyEncryptionSecret: env.SK_KEY_ENCRYPTION_SECRET,