@syedar/seedar-cli 1.2.0-test.9 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -19
- package/dist/cli.d.ts +21 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +124 -42
- package/dist/cli.js.map +1 -1
- package/dist/commands/lifecycle.d.ts.map +1 -1
- package/dist/commands/lifecycle.js +7 -5
- package/dist/commands/lifecycle.js.map +1 -1
- package/dist/commands/logs.d.ts +1 -0
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +9 -5
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +17 -4
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +4 -1
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/install/config.d.ts.map +1 -1
- package/dist/install/config.js +1 -0
- package/dist/install/config.js.map +1 -1
- package/dist/install/flow.d.ts +2 -0
- package/dist/install/flow.d.ts.map +1 -1
- package/dist/install/flow.js +19 -7
- package/dist/install/flow.js.map +1 -1
- package/dist/install/output.d.ts +1 -0
- package/dist/install/output.d.ts.map +1 -1
- package/dist/install/output.js +20 -3
- package/dist/install/output.js.map +1 -1
- package/dist/install/prompts.d.ts.map +1 -1
- package/dist/install/prompts.js +53 -4
- package/dist/install/prompts.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +67 -10
- package/dist/runtime/index.js.map +1 -1
- package/dist/shared/constants.d.ts +13 -7
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +44 -4
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/types.d.ts +4 -1
- package/dist/shared/types.d.ts.map +1 -1
- package/package.json +3 -1
- package/dist/commands/help.d.ts +0 -2
- package/dist/commands/help.d.ts.map +0 -1
- package/dist/commands/help.js +0 -17
- package/dist/commands/help.js.map +0 -1
- package/dist/shared/args.d.ts +0 -8
- package/dist/shared/args.d.ts.map +0 -1
- package/dist/shared/args.js +0 -40
- package/dist/shared/args.js.map +0 -1
package/dist/install/flow.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { EnvConfig, RuntimeLayout } from "../shared/types.js";
|
|
2
|
+
export declare function runMigrations(layout: RuntimeLayout): Promise<void>;
|
|
2
3
|
export declare function runInstallFlow(layout: RuntimeLayout, env: EnvConfig): Promise<void>;
|
|
3
4
|
export declare function pullInstallImages(layout: RuntimeLayout): Promise<void>;
|
|
4
5
|
export declare function startMysqlWithRetry(layout: RuntimeLayout, env: EnvConfig): Promise<void>;
|
|
6
|
+
export declare function startPostgres(layout: RuntimeLayout): Promise<void>;
|
|
5
7
|
export declare function startServerAndWebWithRetry(layout: RuntimeLayout, env: EnvConfig): Promise<void>;
|
|
6
8
|
export declare function runInstallFlowWithValidatedConfig(layout: RuntimeLayout, env: EnvConfig): Promise<void>;
|
|
7
9
|
export declare function startRuntimeServices(layout: RuntimeLayout, env: EnvConfig): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/install/flow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQnE,wBAAsB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/install/flow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQnE,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAMxE;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAQzF;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5E;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC9F;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CASxE;AAED,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCrG;AAED,wBAAsB,iCAAiC,CACrD,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,SAAS,GACb,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAK/F;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAW9E"}
|
package/dist/install/flow.js
CHANGED
|
@@ -5,16 +5,22 @@ import { runDockerCompose, runDockerComposeOrThrow } from "../docker/process.js"
|
|
|
5
5
|
import { writeRuntimeFiles } from "../runtime/index.js";
|
|
6
6
|
import { autoShiftConflictPort, findPortKeyByPort, getPortLabel, parseComposePortConflict } from "./ports.js";
|
|
7
7
|
import { printInstallDetail, printInstallStage, printInstallSuccess } from "./output.js";
|
|
8
|
+
export async function runMigrations(layout) {
|
|
9
|
+
const result = await runDockerCompose(layout, ["run", "--rm", "migrate"]);
|
|
10
|
+
if (result.code !== 0) {
|
|
11
|
+
const detail = [result.stdout.trim(), result.stderr.trim()].filter(Boolean).join("\n");
|
|
12
|
+
throw new Error(detail || "docker compose run --rm migrate 执行失败");
|
|
13
|
+
}
|
|
14
|
+
}
|
|
8
15
|
export async function runInstallFlow(layout, env) {
|
|
9
16
|
await startMysqlWithRetry(layout, env);
|
|
17
|
+
await startPostgres(layout);
|
|
10
18
|
printInstallStage("执行数据库迁移");
|
|
11
|
-
await
|
|
12
|
-
stdio: "inherit",
|
|
13
|
-
});
|
|
19
|
+
await runMigrations(layout);
|
|
14
20
|
await startServerAndWebWithRetry(layout, env);
|
|
15
21
|
}
|
|
16
22
|
export async function pullInstallImages(layout) {
|
|
17
|
-
await runDockerComposeOrThrow(layout, ["pull", "mysql", "server", "web"], {
|
|
23
|
+
await runDockerComposeOrThrow(layout, ["pull", "mysql", "postgres", "server", "web"], {
|
|
18
24
|
stdio: "inherit",
|
|
19
25
|
});
|
|
20
26
|
}
|
|
@@ -44,6 +50,12 @@ export async function startMysqlWithRetry(layout, env) {
|
|
|
44
50
|
}
|
|
45
51
|
}
|
|
46
52
|
}
|
|
53
|
+
export async function startPostgres(layout) {
|
|
54
|
+
printInstallStage("启动 PostgreSQL");
|
|
55
|
+
await runComposeCommandWithCapturedOutput(layout, ["up", "-d", "postgres"], "docker compose up -d postgres 执行失败");
|
|
56
|
+
await waitForServiceHealthy(layout, "postgres");
|
|
57
|
+
printInstallSuccess("PostgreSQL 容器已启动");
|
|
58
|
+
}
|
|
47
59
|
export async function startServerAndWebWithRetry(layout, env) {
|
|
48
60
|
while (true) {
|
|
49
61
|
printInstallStage("启动 Server 和 Web");
|
|
@@ -76,7 +88,7 @@ export async function runInstallFlowWithValidatedConfig(layout, env) {
|
|
|
76
88
|
printInstallDetail(`目标版本:${env.SEEDAR_VERSION}`);
|
|
77
89
|
printInstallDetail(`安装目录:${layout.installRoot}`);
|
|
78
90
|
printInstallStage("拉取镜像");
|
|
79
|
-
printInstallDetail("开始拉取 mysql、server、web 镜像");
|
|
91
|
+
printInstallDetail("开始拉取 mysql、postgres、server、web 镜像");
|
|
80
92
|
await pullInstallImages(layout);
|
|
81
93
|
printInstallSuccess("镜像拉取完成");
|
|
82
94
|
await runInstallFlow(layout, env);
|
|
@@ -90,7 +102,7 @@ export async function startRuntimeServices(layout, env) {
|
|
|
90
102
|
}
|
|
91
103
|
export async function stopRuntimeServices(layout) {
|
|
92
104
|
printInstallStage("停止服务");
|
|
93
|
-
const result = await runDockerCompose(layout, ["stop", "mysql", "server", "web"]);
|
|
105
|
+
const result = await runDockerCompose(layout, ["stop", "mysql", "postgres", "server", "web"]);
|
|
94
106
|
const detail = [result.stdout.trim(), result.stderr.trim()].filter(Boolean).join("\n");
|
|
95
107
|
if (detail) {
|
|
96
108
|
console.log(detail);
|
|
@@ -98,6 +110,6 @@ export async function stopRuntimeServices(layout) {
|
|
|
98
110
|
if (result.code !== 0) {
|
|
99
111
|
throw new Error(detail || "停止服务失败");
|
|
100
112
|
}
|
|
101
|
-
printInstallSuccess("mysql、server、web 已停止");
|
|
113
|
+
printInstallSuccess("mysql、postgres、server、web 已停止");
|
|
102
114
|
}
|
|
103
115
|
//# sourceMappingURL=flow.js.map
|
package/dist/install/flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/install/flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,mCAAmC,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEzF,MAAM,CAAC,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/install/flow.ts"],"names":[],"mappings":"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"}
|
package/dist/install/output.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { EnvConfig, RuntimeLayout } from "../shared/types.js";
|
|
2
|
+
export declare function printServiceEndpoints(env: EnvConfig): void;
|
|
2
3
|
export declare function printInstallSummary(layout: RuntimeLayout, env: EnvConfig): void;
|
|
3
4
|
export declare function printInstallStage(title: string): void;
|
|
4
5
|
export declare function printInstallDetail(message: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/install/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/install/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAenE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAM1D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAK/E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAErD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAExD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEtD"}
|
package/dist/install/output.js
CHANGED
|
@@ -1,10 +1,27 @@
|
|
|
1
1
|
import { renderInfo, renderStage, renderSuccess, renderWarn } from "../shared/ui.js";
|
|
2
|
+
function formatCheckpointTarget(connectionString) {
|
|
3
|
+
try {
|
|
4
|
+
const url = new URL(connectionString);
|
|
5
|
+
const host = url.hostname || "postgres";
|
|
6
|
+
const port = url.port || "5432";
|
|
7
|
+
const database = url.pathname.replace(/^\/+/, "") || "postgres";
|
|
8
|
+
return `${host}:${port}/${database}`;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return "unknown";
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function printServiceEndpoints(env) {
|
|
15
|
+
console.log("服务端口:");
|
|
16
|
+
console.log(`- Web: http://localhost:${env.WEB_PORT}`);
|
|
17
|
+
console.log(`- Server: http://localhost:${env.SERVER_PORT}`);
|
|
18
|
+
console.log(`- MySQL: localhost:${env.MYSQL_PORT}`);
|
|
19
|
+
console.log(`- Checkpoint PG: ${formatCheckpointTarget(env.AI_CHECKPOINT_PG_URL)}`);
|
|
20
|
+
}
|
|
2
21
|
export function printInstallSummary(layout, env) {
|
|
3
22
|
console.log("Seedar 安装完成。");
|
|
4
23
|
console.log(`安装目录: ${layout.installRoot}`);
|
|
5
|
-
|
|
6
|
-
console.log(`Server: http://localhost:${env.SERVER_PORT}`);
|
|
7
|
-
console.log(`MySQL: localhost:${env.MYSQL_PORT}`);
|
|
24
|
+
printServiceEndpoints(env);
|
|
8
25
|
console.log(`版本: ${env.SEEDAR_VERSION}`);
|
|
9
26
|
}
|
|
10
27
|
export function printInstallStage(title) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/install/output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAErF,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/install/output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAErF,SAAS,sBAAsB,CAAC,gBAAwB;IACtD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,IAAI,UAAU,CAAC;QACxC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC;QAChE,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAc;IAClD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,oBAAoB,sBAAsB,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAqB,EAAE,GAAc;IACvE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3C,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/install/prompts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/install/prompts.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAkKjG,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,SAAS,CAAC,CAgEpB;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,kBAAkB,EAAE,EAC5B,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,SAAS,CAAC,CAYpB"}
|
package/dist/install/prompts.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { randomBytes } from "node:crypto";
|
|
2
2
|
import { readFile } from "node:fs/promises";
|
|
3
3
|
import { input } from "@inquirer/prompts";
|
|
4
|
-
import { DEFAULT_DB_NAME, DEFAULT_DB_USER, DEFAULT_PORTS, DEFAULT_VERSION, REQUIRED_ENV_KEYS, } from "../shared/constants.js";
|
|
4
|
+
import { DEFAULT_DB_NAME, DEFAULT_DB_USER, DEFAULT_PORTS, DEFAULT_VERSION, buildCheckpointPgUrl, REQUIRED_ENV_KEYS, } from "../shared/constants.js";
|
|
5
5
|
import { getAvailablePort } from "../docker/ports.js";
|
|
6
|
-
import { buildDefaultEnv, parseEnvFile, pathExists } from "../runtime/index.js";
|
|
6
|
+
import { buildDefaultEnv, extractCheckpointPgPassword, parseEnvFile, pathExists, } from "../runtime/index.js";
|
|
7
7
|
const PROMPTABLE_INSTALL_FIELDS = [
|
|
8
8
|
"MYSQL_PORT",
|
|
9
9
|
"SERVER_PORT",
|
|
@@ -12,11 +12,40 @@ const PROMPTABLE_INSTALL_FIELDS = [
|
|
|
12
12
|
"DB_USERNAME",
|
|
13
13
|
"DB_PASSWORD",
|
|
14
14
|
"MYSQL_ROOT_PASSWORD",
|
|
15
|
+
"AI_CHECKPOINT_PG_PASSWORD",
|
|
15
16
|
"AES_SECRET",
|
|
16
17
|
];
|
|
17
18
|
function createSecret(bytes = 24) {
|
|
18
19
|
return randomBytes(bytes).toString("hex");
|
|
19
20
|
}
|
|
21
|
+
function normalizeCheckpointRuntimeConfig(env) {
|
|
22
|
+
const checkpointPassword = env.AI_CHECKPOINT_PG_PASSWORD.trim();
|
|
23
|
+
const checkpointUrl = env.AI_CHECKPOINT_PG_URL.trim();
|
|
24
|
+
if (checkpointPassword) {
|
|
25
|
+
return {
|
|
26
|
+
...env,
|
|
27
|
+
AI_CHECKPOINT_PG_PASSWORD: checkpointPassword,
|
|
28
|
+
AI_CHECKPOINT_PG_URL: buildCheckpointPgUrl(checkpointPassword),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
if (checkpointUrl) {
|
|
32
|
+
const derivedPassword = extractCheckpointPgPassword(checkpointUrl);
|
|
33
|
+
if (!derivedPassword) {
|
|
34
|
+
throw new Error("AI_CHECKPOINT_PG_URL 无法解析密码");
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
...env,
|
|
38
|
+
AI_CHECKPOINT_PG_PASSWORD: derivedPassword,
|
|
39
|
+
AI_CHECKPOINT_PG_URL: buildCheckpointPgUrl(derivedPassword),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const generatedPassword = createSecret(16);
|
|
43
|
+
return {
|
|
44
|
+
...env,
|
|
45
|
+
AI_CHECKPOINT_PG_PASSWORD: generatedPassword,
|
|
46
|
+
AI_CHECKPOINT_PG_URL: buildCheckpointPgUrl(generatedPassword),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
20
49
|
async function askInput(label, defaultValue) {
|
|
21
50
|
const answer = (await input({
|
|
22
51
|
message: label,
|
|
@@ -90,6 +119,12 @@ async function promptInstallFields(env, fields) {
|
|
|
90
119
|
case "MYSQL_ROOT_PASSWORD":
|
|
91
120
|
nextEnv.MYSQL_ROOT_PASSWORD = await askInput("MySQL Root 密码", nextEnv.MYSQL_ROOT_PASSWORD);
|
|
92
121
|
break;
|
|
122
|
+
case "AI_CHECKPOINT_PG_PASSWORD": {
|
|
123
|
+
const checkpointPassword = await askInput("Checkpoint PG 密码", nextEnv.AI_CHECKPOINT_PG_PASSWORD);
|
|
124
|
+
nextEnv.AI_CHECKPOINT_PG_PASSWORD = checkpointPassword;
|
|
125
|
+
nextEnv.AI_CHECKPOINT_PG_URL = buildCheckpointPgUrl(checkpointPassword);
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
93
128
|
case "AES_SECRET":
|
|
94
129
|
nextEnv.AES_SECRET = assertAesSecret(await askInput("AES_SECRET", nextEnv.AES_SECRET));
|
|
95
130
|
break;
|
|
@@ -101,6 +136,7 @@ export async function collectInstallConfig(layout, versionArg, flags) {
|
|
|
101
136
|
const version = versionArg ?? DEFAULT_VERSION;
|
|
102
137
|
const defaultDbPassword = createSecret(16);
|
|
103
138
|
const defaultRootPassword = createSecret(16);
|
|
139
|
+
const defaultCheckpointPassword = createSecret(16);
|
|
104
140
|
const defaultAesSecret = createSecret(24);
|
|
105
141
|
const [mysqlPort, serverPort, webPort] = await Promise.all([
|
|
106
142
|
getAvailablePort(DEFAULT_PORTS.mysql),
|
|
@@ -121,17 +157,30 @@ export async function collectInstallConfig(layout, versionArg, flags) {
|
|
|
121
157
|
MYSQL_DATABASE: DEFAULT_DB_NAME,
|
|
122
158
|
MYSQL_USER: DEFAULT_DB_USER,
|
|
123
159
|
MYSQL_PASSWORD: defaultDbPassword,
|
|
160
|
+
AI_CHECKPOINT_PG_PASSWORD: defaultCheckpointPassword,
|
|
161
|
+
AI_CHECKPOINT_PG_URL: buildCheckpointPgUrl(defaultCheckpointPassword),
|
|
124
162
|
AES_SECRET: defaultAesSecret,
|
|
125
163
|
});
|
|
126
164
|
const existingOverrides = await loadExistingEnvOverrides(layout);
|
|
127
|
-
const
|
|
165
|
+
const existingCheckpointPassword = existingOverrides.AI_CHECKPOINT_PG_PASSWORD?.trim();
|
|
166
|
+
const existingCheckpointUrl = existingOverrides.AI_CHECKPOINT_PG_URL?.trim();
|
|
167
|
+
const derivedCheckpointPassword = existingCheckpointUrl
|
|
168
|
+
? extractCheckpointPgPassword(existingCheckpointUrl)
|
|
169
|
+
: null;
|
|
170
|
+
if (existingCheckpointUrl && !existingCheckpointPassword && !derivedCheckpointPassword) {
|
|
171
|
+
throw new Error("AI_CHECKPOINT_PG_URL 无法解析密码");
|
|
172
|
+
}
|
|
173
|
+
const checkpointPassword = existingCheckpointPassword ?? derivedCheckpointPassword ?? defaultCheckpointPassword;
|
|
174
|
+
const defaults = normalizeCheckpointRuntimeConfig({
|
|
128
175
|
...generatedDefaults,
|
|
129
176
|
...existingOverrides,
|
|
177
|
+
AI_CHECKPOINT_PG_PASSWORD: checkpointPassword,
|
|
178
|
+
AI_CHECKPOINT_PG_URL: buildCheckpointPgUrl(checkpointPassword),
|
|
130
179
|
SEEDAR_VERSION: versionArg ?? existingOverrides.SEEDAR_VERSION ?? generatedDefaults.SEEDAR_VERSION,
|
|
131
180
|
SEEDAR_INSTALL_ROOT: generatedDefaults.SEEDAR_INSTALL_ROOT,
|
|
132
181
|
SEEDAR_INSTANCE_ID: generatedDefaults.SEEDAR_INSTANCE_ID,
|
|
133
182
|
SEEDAR_PROJECT_NAME: generatedDefaults.SEEDAR_PROJECT_NAME,
|
|
134
|
-
};
|
|
183
|
+
});
|
|
135
184
|
if (!process.stdin.isTTY || flags.yes) {
|
|
136
185
|
console.log("使用默认安装参数初始化 Seedar。");
|
|
137
186
|
return defaults;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/install/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,eAAe,EACf,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/install/prompts.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { EnvConfig, InstallState, RuntimeLayout } from "../shared/types.js";
|
|
2
2
|
export declare function resolveInstallRoot(): string;
|
|
3
3
|
export declare function toDockerPath(targetPath: string): string;
|
|
4
|
+
export declare function extractCheckpointPgPassword(connectionString: string): string | null;
|
|
4
5
|
export declare function getRuntimeLayout(): RuntimeLayout;
|
|
5
6
|
export declare function pathExists(targetPath: string): Promise<boolean>;
|
|
6
7
|
export declare function ensureRuntimeDirectories(layout: RuntimeLayout): Promise<void>;
|
|
7
8
|
export declare function renderEnvFile(env: EnvConfig): string;
|
|
8
9
|
export declare function parseEnvFile(content: string): Record<string, string>;
|
|
9
|
-
export declare function assertEnvShape(env: Record<string, string>): EnvConfig;
|
|
10
10
|
export declare function readEnvConfig(layout: RuntimeLayout): Promise<EnvConfig>;
|
|
11
11
|
export declare function writeRuntimeFiles(layout: RuntimeLayout, env: EnvConfig): Promise<void>;
|
|
12
12
|
export declare function writeInstalledVersion(layout: RuntimeLayout, version: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEjF,wBAAgB,kBAAkB,IAAI,MAAM,CAO3C;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,2BAA2B,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQnF;AAyDD,wBAAgB,gBAAgB,IAAI,aAAa,CAsBhD;AAED,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrE;AAED,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAOnF;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAcpD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoBpE;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAS7E;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,SAAS,GACb,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOxB;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,YAAY,CAAC,CAcvB;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAE9E;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAqB1E;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,qBAAqB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC,GAC5F,SAAS,CAOX;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAaf"}
|
package/dist/runtime/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { createHash } from "node:crypto";
|
|
1
|
+
import { createHash, randomBytes } from "node:crypto";
|
|
2
2
|
import { access, copyFile, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
3
3
|
import os from "node:os";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
import { COMPOSE_TEMPLATE, ENV_RENDER_ORDER, REQUIRED_ENV_KEYS, } from "../shared/constants.js";
|
|
5
|
+
import { buildCheckpointPgUrl, COMPOSE_TEMPLATE, ENV_RENDER_ORDER, REQUIRED_ENV_KEYS, } from "../shared/constants.js";
|
|
6
6
|
export function resolveInstallRoot() {
|
|
7
7
|
const override = process.env.SEEDAR_INSTALL_DIR?.trim();
|
|
8
8
|
if (override) {
|
|
@@ -13,6 +13,63 @@ export function resolveInstallRoot() {
|
|
|
13
13
|
export function toDockerPath(targetPath) {
|
|
14
14
|
return path.resolve(targetPath).replace(/\\/g, "/");
|
|
15
15
|
}
|
|
16
|
+
export function extractCheckpointPgPassword(connectionString) {
|
|
17
|
+
try {
|
|
18
|
+
const url = new URL(connectionString);
|
|
19
|
+
const password = url.password.trim();
|
|
20
|
+
return password ? decodeURIComponent(password) : null;
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function normalizeEnvConfig(env) {
|
|
27
|
+
const normalized = { ...env };
|
|
28
|
+
const missing = REQUIRED_ENV_KEYS.filter((key) => !normalized[key]);
|
|
29
|
+
const checkpointPassword = normalized.AI_CHECKPOINT_PG_PASSWORD?.trim() || "";
|
|
30
|
+
const checkpointUrl = normalized.AI_CHECKPOINT_PG_URL?.trim() || "";
|
|
31
|
+
let changed = false;
|
|
32
|
+
if (checkpointPassword) {
|
|
33
|
+
const nextUrl = buildCheckpointPgUrl(checkpointPassword);
|
|
34
|
+
if (normalized.AI_CHECKPOINT_PG_PASSWORD !== checkpointPassword) {
|
|
35
|
+
normalized.AI_CHECKPOINT_PG_PASSWORD = checkpointPassword;
|
|
36
|
+
changed = true;
|
|
37
|
+
}
|
|
38
|
+
if (normalized.AI_CHECKPOINT_PG_URL !== nextUrl) {
|
|
39
|
+
normalized.AI_CHECKPOINT_PG_URL = nextUrl;
|
|
40
|
+
changed = true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else if (checkpointUrl) {
|
|
44
|
+
const derivedPassword = extractCheckpointPgPassword(checkpointUrl);
|
|
45
|
+
if (!derivedPassword) {
|
|
46
|
+
throw new Error("运行时配置中的 AI_CHECKPOINT_PG_URL 无法解析密码");
|
|
47
|
+
}
|
|
48
|
+
const nextUrl = buildCheckpointPgUrl(derivedPassword);
|
|
49
|
+
if (normalized.AI_CHECKPOINT_PG_PASSWORD !== derivedPassword) {
|
|
50
|
+
normalized.AI_CHECKPOINT_PG_PASSWORD = derivedPassword;
|
|
51
|
+
changed = true;
|
|
52
|
+
}
|
|
53
|
+
if (normalized.AI_CHECKPOINT_PG_URL !== nextUrl) {
|
|
54
|
+
normalized.AI_CHECKPOINT_PG_URL = nextUrl;
|
|
55
|
+
changed = true;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const generatedPassword = randomBytes(16).toString("hex");
|
|
60
|
+
normalized.AI_CHECKPOINT_PG_PASSWORD = generatedPassword;
|
|
61
|
+
normalized.AI_CHECKPOINT_PG_URL = buildCheckpointPgUrl(generatedPassword);
|
|
62
|
+
changed = true;
|
|
63
|
+
}
|
|
64
|
+
const remainingMissing = missing.filter((key) => key !== "AI_CHECKPOINT_PG_PASSWORD" && key !== "AI_CHECKPOINT_PG_URL");
|
|
65
|
+
if (remainingMissing.length > 0) {
|
|
66
|
+
throw new Error(`运行时配置缺少字段: ${remainingMissing.join(", ")}`);
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
env: normalized,
|
|
70
|
+
changed,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
16
73
|
export function getRuntimeLayout() {
|
|
17
74
|
const installRoot = resolveInstallRoot();
|
|
18
75
|
const instanceId = createHash("sha256")
|
|
@@ -24,6 +81,7 @@ export function getRuntimeLayout() {
|
|
|
24
81
|
runtimeDir: path.join(installRoot, "runtime"),
|
|
25
82
|
dataDir: path.join(installRoot, "data"),
|
|
26
83
|
mysqlDataDir: path.join(installRoot, "data", "mysql"),
|
|
84
|
+
postgresDataDir: path.join(installRoot, "data", "postgres"),
|
|
27
85
|
logsDir: path.join(installRoot, "logs"),
|
|
28
86
|
backupsDir: path.join(installRoot, "backups"),
|
|
29
87
|
composePath: path.join(installRoot, "runtime", "docker-compose.yml"),
|
|
@@ -47,6 +105,7 @@ export async function ensureRuntimeDirectories(layout) {
|
|
|
47
105
|
await mkdir(layout.runtimeDir, { recursive: true });
|
|
48
106
|
await mkdir(layout.dataDir, { recursive: true });
|
|
49
107
|
await mkdir(layout.mysqlDataDir, { recursive: true });
|
|
108
|
+
await mkdir(layout.postgresDataDir, { recursive: true });
|
|
50
109
|
await mkdir(layout.logsDir, { recursive: true });
|
|
51
110
|
await mkdir(layout.backupsDir, { recursive: true });
|
|
52
111
|
}
|
|
@@ -80,16 +139,14 @@ export function parseEnvFile(content) {
|
|
|
80
139
|
}
|
|
81
140
|
return result;
|
|
82
141
|
}
|
|
83
|
-
export function assertEnvShape(env) {
|
|
84
|
-
const missing = REQUIRED_ENV_KEYS.filter((key) => !env[key]);
|
|
85
|
-
if (missing.length > 0) {
|
|
86
|
-
throw new Error(`运行时配置缺少字段: ${missing.join(", ")}`);
|
|
87
|
-
}
|
|
88
|
-
return env;
|
|
89
|
-
}
|
|
90
142
|
export async function readEnvConfig(layout) {
|
|
91
143
|
const content = await readFile(layout.envPath, "utf8");
|
|
92
|
-
|
|
144
|
+
const { env, changed } = normalizeEnvConfig(parseEnvFile(content));
|
|
145
|
+
if (changed) {
|
|
146
|
+
await ensureRuntimeDirectories(layout);
|
|
147
|
+
await writeFile(layout.envPath, renderEnvFile(env), "utf8");
|
|
148
|
+
}
|
|
149
|
+
return env;
|
|
93
150
|
}
|
|
94
151
|
export async function writeRuntimeFiles(layout, env) {
|
|
95
152
|
await ensureRuntimeDirectories(layout);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
export declare const DEFAULT_VERSION = "latest";
|
|
2
2
|
export declare const DEFAULT_PORTS: {
|
|
3
|
-
readonly mysql:
|
|
4
|
-
readonly server:
|
|
5
|
-
readonly web:
|
|
3
|
+
readonly mysql: 23306;
|
|
4
|
+
readonly server: 28090;
|
|
5
|
+
readonly web: 28080;
|
|
6
6
|
};
|
|
7
7
|
export declare const DEFAULT_DB_NAME = "seedar_prod";
|
|
8
8
|
export declare const DEFAULT_DB_USER = "seedar";
|
|
9
9
|
export declare const DEFAULT_DOCKER_ORG = "syedarhandsome";
|
|
10
10
|
export declare const DEFAULT_SERVER_IMAGE = "syedarhandsome/seedar-server";
|
|
11
11
|
export declare const DEFAULT_WEB_IMAGE = "syedarhandsome/seedar-web";
|
|
12
|
+
export declare const DEFAULT_POSTGRES_IMAGE = "postgres:16-alpine";
|
|
13
|
+
export declare const DEFAULT_CHECKPOINT_PG_HOST = "postgres";
|
|
14
|
+
export declare const DEFAULT_CHECKPOINT_PG_PORT = 5432;
|
|
15
|
+
export declare const DEFAULT_CHECKPOINT_PG_USER = "postgres";
|
|
16
|
+
export declare const DEFAULT_CHECKPOINT_PG_DATABASE = "postgres";
|
|
12
17
|
export declare const MIN_NODE_MAJOR = 18;
|
|
13
|
-
export declare
|
|
14
|
-
export declare const
|
|
15
|
-
export declare const
|
|
16
|
-
export declare const
|
|
18
|
+
export declare function buildCheckpointPgUrl(password: string): string;
|
|
19
|
+
export declare const REQUIRED_ENV_KEYS: readonly ["SEEDAR_VERSION", "SEEDAR_INSTALL_ROOT", "SEEDAR_INSTANCE_ID", "SEEDAR_PROJECT_NAME", "MYSQL_PORT", "SERVER_PORT", "WEB_PORT", "DB_HOST", "DB_PORT", "DB_USERNAME", "DB_PASSWORD", "DB_DATABASE", "MYSQL_ROOT_PASSWORD", "MYSQL_DATABASE", "MYSQL_USER", "MYSQL_PASSWORD", "AI_CHECKPOINT_PG_PASSWORD", "AI_CHECKPOINT_PG_URL", "AES_SECRET"];
|
|
20
|
+
export declare const VALID_SERVICES: readonly ["mysql", "postgres", "server", "web", "migrate"];
|
|
21
|
+
export declare const ENV_RENDER_ORDER: readonly ["SEEDAR_VERSION", "SEEDAR_INSTALL_ROOT", "SEEDAR_INSTANCE_ID", "SEEDAR_PROJECT_NAME", "MYSQL_PORT", "SERVER_PORT", "WEB_PORT", "DB_HOST", "DB_PORT", "DB_USERNAME", "DB_PASSWORD", "DB_DATABASE", "MYSQL_ROOT_PASSWORD", "MYSQL_DATABASE", "MYSQL_USER", "MYSQL_PASSWORD", "AI_CHECKPOINT_PG_PASSWORD", "AI_CHECKPOINT_PG_URL", "AES_SECRET"];
|
|
22
|
+
export declare const COMPOSE_TEMPLATE = "name: ${SEEDAR_PROJECT_NAME}\n\nservices:\n mysql:\n image: mysql:8.4\n container_name: ${SEEDAR_PROJECT_NAME}-mysql\n restart: unless-stopped\n environment:\n TZ: Asia/Shanghai\n MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}\n MYSQL_DATABASE: ${MYSQL_DATABASE}\n MYSQL_USER: ${MYSQL_USER}\n MYSQL_PASSWORD: ${MYSQL_PASSWORD}\n ports:\n - \"${MYSQL_PORT}:3306\"\n volumes:\n - \"${SEEDAR_INSTALL_ROOT}/data/mysql:/var/lib/mysql\"\n healthcheck:\n test:\n [\n \"CMD-SHELL\",\n \"mysqladmin ping -h 127.0.0.1 -uroot -p$$MYSQL_ROOT_PASSWORD --silent\",\n ]\n interval: 10s\n timeout: 5s\n retries: 12\n start_period: 20s\n networks:\n - seedar-net\n\n postgres:\n image: postgres:16-alpine\n container_name: ${SEEDAR_PROJECT_NAME}-postgres\n restart: unless-stopped\n environment:\n TZ: Asia/Shanghai\n POSTGRES_DB: postgres\n POSTGRES_USER: postgres\n POSTGRES_PASSWORD: ${AI_CHECKPOINT_PG_PASSWORD}\n volumes:\n - \"${SEEDAR_INSTALL_ROOT}/data/postgres:/var/lib/postgresql/data\"\n healthcheck:\n test:\n [\n \"CMD-SHELL\",\n \"pg_isready -h 127.0.0.1 -U postgres -d postgres\",\n ]\n interval: 10s\n timeout: 5s\n retries: 12\n start_period: 20s\n networks:\n - seedar-net\n\n server:\n image: syedarhandsome/seedar-server:${SEEDAR_VERSION}\n container_name: ${SEEDAR_PROJECT_NAME}-server\n restart: unless-stopped\n depends_on:\n mysql:\n condition: service_healthy\n postgres:\n condition: service_healthy\n environment:\n TZ: Asia/Shanghai\n NODE_ENV: production\n DB_HOST: ${DB_HOST}\n DB_PORT: ${DB_PORT}\n DB_USERNAME: ${DB_USERNAME}\n DB_PASSWORD: ${DB_PASSWORD}\n DB_DATABASE: ${DB_DATABASE}\n AI_CHECKPOINT_PG_URL: ${AI_CHECKPOINT_PG_URL}\n AES_SECRET: ${AES_SECRET}\n PORT: 3000\n ports:\n - \"${SERVER_PORT}:3000\"\n networks:\n - seedar-net\n\n migrate:\n image: syedarhandsome/seedar-server:${SEEDAR_VERSION}\n restart: \"no\"\n depends_on:\n mysql:\n condition: service_healthy\n environment:\n TZ: Asia/Shanghai\n NODE_ENV: production\n DB_HOST: ${DB_HOST}\n DB_PORT: ${DB_PORT}\n DB_USERNAME: ${DB_USERNAME}\n DB_PASSWORD: ${DB_PASSWORD}\n DB_DATABASE: ${DB_DATABASE}\n AI_CHECKPOINT_PG_URL: ${AI_CHECKPOINT_PG_URL}\n AES_SECRET: ${AES_SECRET}\n PORT: 3000\n command:\n [\n \"node\",\n \"node_modules/typeorm/cli.js\",\n \"-d\",\n \"dist/config/typeorm.datasource.js\",\n \"migration:run\",\n ]\n networks:\n - seedar-net\n\n web:\n image: syedarhandsome/seedar-web:${SEEDAR_VERSION}\n container_name: ${SEEDAR_PROJECT_NAME}-web\n restart: unless-stopped\n depends_on:\n - server\n ports:\n - \"${WEB_PORT}:80\"\n networks:\n - seedar-net\n\nnetworks:\n seedar-net:\n driver: bridge\n";
|
|
17
23
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AACX,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAC7C,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,oBAAoB,iCAAwC,CAAC;AAC1E,eAAO,MAAM,iBAAiB,8BAAqC,CAAC;AACpE,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAC3D,eAAO,MAAM,0BAA0B,aAAa,CAAC;AACrD,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,eAAO,MAAM,0BAA0B,aAAa,CAAC;AACrD,eAAO,MAAM,8BAA8B,aAAa,CAAC;AACzD,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED,eAAO,MAAM,iBAAiB,yVAoBpB,CAAC;AAEX,eAAO,MAAM,cAAc,4DAA6D,CAAC;AAEzF,eAAO,MAAM,gBAAgB,yVAoBnB,CAAC;AAEX,eAAO,MAAM,gBAAgB,qiGAyH5B,CAAC"}
|