@brewnet/cli 0.0.7 → 0.0.9
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/dist/admin-server-FN7HZVZW.js +16 -0
- package/dist/admin-ui/assets/index-7Og0dFph.js +215 -0
- package/dist/admin-ui/assets/index-B9CMEE5E.css +1 -0
- package/dist/admin-ui/index.html +13 -0
- package/dist/{app-manager-BD3DG3RL.js → app-manager-6PEKSRZ2.js} +4 -4
- package/dist/{boilerplate-manager-WEFTHL2O.js → boilerplate-manager-5GPTMOYL.js} +4 -4
- package/dist/{chunk-OH233QV2.js → chunk-7VX572H4.js} +9 -9
- package/dist/{chunk-ZKMWE5AH.js → chunk-BD4MDAIG.js} +2 -2
- package/dist/{chunk-HCHY5UIQ.js → chunk-F2M6G5C7.js} +3 -3
- package/dist/chunk-F2M6G5C7.js.map +1 -0
- package/dist/{chunk-54WFZCU6.js → chunk-F2Y226UA.js} +3 -3
- package/dist/{chunk-76C5BGZK.js → chunk-JMKFUHZO.js} +19 -15
- package/dist/chunk-JMKFUHZO.js.map +1 -0
- package/dist/{chunk-AXSHZEB3.js → chunk-MOQNPKUG.js} +2 -2
- package/dist/{chunk-YAYXULLO.js → chunk-MSVYAYKQ.js} +4 -4
- package/dist/{compose-generator-OFJ2YWMB.js → compose-generator-MIAP3RBT.js} +3 -3
- package/dist/index.js +35 -61
- package/dist/index.js.map +1 -1
- package/dist/services/admin-daemon.js +6 -6
- package/dist/{state-2SI3P4JG.js → state-CJSUDM4H.js} +3 -3
- package/package.json +1 -1
- package/dist/admin-server-CBZFDDWG.js +0 -16
- package/dist/chunk-76C5BGZK.js.map +0 -1
- package/dist/chunk-HCHY5UIQ.js.map +0 -1
- /package/dist/{admin-server-CBZFDDWG.js.map → admin-server-FN7HZVZW.js.map} +0 -0
- /package/dist/{app-manager-BD3DG3RL.js.map → app-manager-6PEKSRZ2.js.map} +0 -0
- /package/dist/{boilerplate-manager-WEFTHL2O.js.map → boilerplate-manager-5GPTMOYL.js.map} +0 -0
- /package/dist/{chunk-OH233QV2.js.map → chunk-7VX572H4.js.map} +0 -0
- /package/dist/{chunk-ZKMWE5AH.js.map → chunk-BD4MDAIG.js.map} +0 -0
- /package/dist/{chunk-54WFZCU6.js.map → chunk-F2Y226UA.js.map} +0 -0
- /package/dist/{chunk-AXSHZEB3.js.map → chunk-MOQNPKUG.js.map} +0 -0
- /package/dist/{chunk-YAYXULLO.js.map → chunk-MSVYAYKQ.js.map} +0 -0
- /package/dist/{compose-generator-OFJ2YWMB.js.map → compose-generator-MIAP3RBT.js.map} +0 -0
- /package/dist/{state-2SI3P4JG.js.map → state-CJSUDM4H.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
queryLogs,
|
|
12
12
|
removeService,
|
|
13
13
|
restoreBackup
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-MSVYAYKQ.js";
|
|
15
15
|
import "./chunk-JIPAYMOA.js";
|
|
16
16
|
import {
|
|
17
17
|
FRONTEND_REGISTRY,
|
|
@@ -37,11 +37,11 @@ import {
|
|
|
37
37
|
reinitGit,
|
|
38
38
|
startContainers,
|
|
39
39
|
verifyEndpoints
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-F2Y226UA.js";
|
|
41
41
|
import {
|
|
42
42
|
composeConfigToYaml,
|
|
43
43
|
generateComposeConfig
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-MOQNPKUG.js";
|
|
45
45
|
import {
|
|
46
46
|
applyFullInstallDefaults,
|
|
47
47
|
applyMinimalInstallDefaults,
|
|
@@ -52,13 +52,13 @@ import {
|
|
|
52
52
|
loadState,
|
|
53
53
|
logger,
|
|
54
54
|
saveState
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-BD4MDAIG.js";
|
|
56
56
|
import {
|
|
57
57
|
BOILERPLATE_REPO_URL,
|
|
58
58
|
DB_VERSIONS,
|
|
59
59
|
DOCKER_COMPOSE_FILENAME,
|
|
60
60
|
validateBrewnetConfig
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-F2M6G5C7.js";
|
|
62
62
|
import {
|
|
63
63
|
STACK_CATALOG,
|
|
64
64
|
VALID_DB_DRIVERS,
|
|
@@ -461,8 +461,7 @@ async function checkGit() {
|
|
|
461
461
|
}
|
|
462
462
|
var DEFAULT_PORTS = [
|
|
463
463
|
{ port: 80, service: "Traefik (Web Server)" },
|
|
464
|
-
{ port: 443, service: "Traefik (HTTPS)" }
|
|
465
|
-
{ port: 2222, service: "SSH Server" }
|
|
464
|
+
{ port: 443, service: "Traefik (HTTPS)" }
|
|
466
465
|
];
|
|
467
466
|
async function runAllChecks() {
|
|
468
467
|
const results = [];
|
|
@@ -1613,27 +1612,16 @@ async function runServerComponentsStep(state) {
|
|
|
1613
1612
|
});
|
|
1614
1613
|
next.servers.webServer.service = webService;
|
|
1615
1614
|
console.log();
|
|
1616
|
-
console.log(chalk5.bold("
|
|
1617
|
-
console.log(chalk5.dim(" \
|
|
1615
|
+
console.log(chalk5.bold(" Nextcloud"));
|
|
1616
|
+
console.log(chalk5.dim(" \uC790\uCCB4 \uD638\uC2A4\uD305 \uD30C\uC77C \uB3D9\uAE30\uD654 + \uCE98\uB9B0\uB354\xB7\uC5F0\uB77D\uCC98\xB7\uC0AC\uC9C4 \uC571 \uD3EC\uD568 \uC62C\uC778\uC6D0 \uD611\uC5C5 Suite"));
|
|
1617
|
+
console.log(chalk5.dim(" Dropbox / Google Drive \uB300\uCCB4. \uC6F9\xB7\uB370\uC2A4\uD06C\uD1B1\xB7\uBAA8\uBC14\uC77C \uC571 \uC9C0\uC6D0"));
|
|
1618
1618
|
console.log();
|
|
1619
|
-
const
|
|
1620
|
-
message: "
|
|
1619
|
+
const nextcloudEnabled = await confirm2({
|
|
1620
|
+
message: "Nextcloud \uC124\uCE58",
|
|
1621
1621
|
default: next.servers.fileServer.enabled
|
|
1622
1622
|
});
|
|
1623
|
-
next.servers.fileServer.enabled =
|
|
1624
|
-
|
|
1625
|
-
const fileService = await select3({
|
|
1626
|
-
message: "File server service",
|
|
1627
|
-
choices: [
|
|
1628
|
-
{ name: "Nextcloud", value: "nextcloud", description: "\uD30C\uC77C \uB3D9\uAE30\uD654 + \uCE98\uB9B0\uB354\xB7\uC5F0\uB77D\uCC98\xB7\uC0AC\uC9C4 \uC571 \uD3EC\uD568 \uC62C\uC778\uC6D0 \uD611\uC5C5 Suite" },
|
|
1629
|
-
{ name: "MinIO (S3-compatible)", value: "minio", description: "AWS S3 \uD638\uD658 \uC624\uBE0C\uC81D\uD2B8 \uC2A4\uD1A0\uB9AC\uC9C0. \uB300\uC6A9\uB7C9 \uD30C\uC77C\xB7\uBC31\uC5C5\xB7\uBBF8\uB514\uC5B4 \uC800\uC7A5\uC5D0 \uCD5C\uC801" }
|
|
1630
|
-
],
|
|
1631
|
-
default: next.servers.fileServer.service || "nextcloud"
|
|
1632
|
-
});
|
|
1633
|
-
next.servers.fileServer.service = fileService;
|
|
1634
|
-
} else {
|
|
1635
|
-
next.servers.fileServer.service = "";
|
|
1636
|
-
}
|
|
1623
|
+
next.servers.fileServer.enabled = nextcloudEnabled;
|
|
1624
|
+
next.servers.fileServer.service = nextcloudEnabled ? "nextcloud" : "";
|
|
1637
1625
|
console.log();
|
|
1638
1626
|
console.log(chalk5.bold(" Git Server") + chalk5.green(" (required)"));
|
|
1639
1627
|
console.log(
|
|
@@ -1659,16 +1647,9 @@ async function runServerComponentsStep(state) {
|
|
|
1659
1647
|
default: next.servers.dbServer.primary || "postgresql"
|
|
1660
1648
|
});
|
|
1661
1649
|
next.servers.dbServer.primary = dbPrimary;
|
|
1650
|
+
const versions = DB_VERSIONS[dbPrimary] ?? [];
|
|
1651
|
+
next.servers.dbServer.primaryVersion = versions[0] ?? "";
|
|
1662
1652
|
if (dbPrimary !== "sqlite") {
|
|
1663
|
-
const versions = DB_VERSIONS[dbPrimary] ?? [];
|
|
1664
|
-
if (versions.length > 0) {
|
|
1665
|
-
const dbVersion = await select3({
|
|
1666
|
-
message: `${dbPrimary === "postgresql" ? "PostgreSQL" : "MySQL"} version`,
|
|
1667
|
-
choices: versions.map((v) => ({ name: v, value: v })),
|
|
1668
|
-
default: next.servers.dbServer.primaryVersion || versions[0]
|
|
1669
|
-
});
|
|
1670
|
-
next.servers.dbServer.primaryVersion = dbVersion;
|
|
1671
|
-
}
|
|
1672
1653
|
const adminUILabel = dbPrimary === "postgresql" ? "pgAdmin" : "phpMyAdmin";
|
|
1673
1654
|
const adminUI = await confirm2({
|
|
1674
1655
|
message: `Enable ${adminUILabel} (database admin UI)?`,
|
|
@@ -1739,7 +1720,7 @@ async function runServerComponentsStep(state) {
|
|
|
1739
1720
|
}
|
|
1740
1721
|
|
|
1741
1722
|
// src/wizard/steps/dev-stack.ts
|
|
1742
|
-
import { select as select4
|
|
1723
|
+
import { select as select4 } from "@inquirer/prompts";
|
|
1743
1724
|
import chalk6 from "chalk";
|
|
1744
1725
|
function buildDevStackState(selections) {
|
|
1745
1726
|
const languages = [...selections.languages];
|
|
@@ -1896,12 +1877,8 @@ async function runDevStackStep(state) {
|
|
|
1896
1877
|
console.log(chalk6.dim(" Project scaffolding and template settings"));
|
|
1897
1878
|
console.log(chalk6.dim(` Templates: ${BOILERPLATE_REPO_URL}`));
|
|
1898
1879
|
console.log();
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
default: next.boilerplate.generate
|
|
1902
|
-
});
|
|
1903
|
-
next.boilerplate.generate = generateBoilerplate;
|
|
1904
|
-
if (generateBoilerplate) {
|
|
1880
|
+
next.boilerplate.generate = true;
|
|
1881
|
+
{
|
|
1905
1882
|
next.boilerplate.sampleData = false;
|
|
1906
1883
|
const devMode = await select4({
|
|
1907
1884
|
message: "Development mode",
|
|
@@ -1918,9 +1895,6 @@ async function runDevStackStep(state) {
|
|
|
1918
1895
|
default: next.boilerplate.devMode || "hot-reload"
|
|
1919
1896
|
});
|
|
1920
1897
|
next.boilerplate.devMode = devMode;
|
|
1921
|
-
} else {
|
|
1922
|
-
next.boilerplate.sampleData = false;
|
|
1923
|
-
next.boilerplate.devMode = "hot-reload";
|
|
1924
1898
|
}
|
|
1925
1899
|
console.log();
|
|
1926
1900
|
console.log(chalk6.bold(" Dev Stack Summary"));
|
|
@@ -1982,7 +1956,7 @@ async function runDevStackStep(state) {
|
|
|
1982
1956
|
}
|
|
1983
1957
|
|
|
1984
1958
|
// src/wizard/steps/domain-network.ts
|
|
1985
|
-
import { input as input5, select as select5, confirm as
|
|
1959
|
+
import { input as input5, select as select5, confirm as confirm3 } from "@inquirer/prompts";
|
|
1986
1960
|
import chalk7 from "chalk";
|
|
1987
1961
|
import ora3 from "ora";
|
|
1988
1962
|
import { execa as execa4 } from "execa";
|
|
@@ -2484,7 +2458,7 @@ async function runUnifiedNamedTunnelScenario(next, tunnelLogger) {
|
|
|
2484
2458
|
next.domain.cloudflare.tunnelMode = "named";
|
|
2485
2459
|
let qtManager = null;
|
|
2486
2460
|
try {
|
|
2487
|
-
const hasDomain = await
|
|
2461
|
+
const hasDomain = await confirm3({
|
|
2488
2462
|
message: "Cloudflare\uC5D0 \uB4F1\uB85D\uB41C \uB3C4\uBA54\uC778\uC774 \uC774\uBBF8 \uC788\uC73C\uC2E0\uAC00\uC694?",
|
|
2489
2463
|
default: true
|
|
2490
2464
|
});
|
|
@@ -2499,7 +2473,7 @@ async function runUnifiedNamedTunnelScenario(next, tunnelLogger) {
|
|
|
2499
2473
|
console.log(chalk7.dim(" 3. \uB3C4\uBA54\uC778\uC774 Cloudflare \uB124\uC784\uC11C\uBC84\uB85C \uC790\uB3D9 \uC124\uC815\uB429\uB2C8\uB2E4"));
|
|
2500
2474
|
console.log(chalk7.dim(" 4. \uB4F1\uB85D \uC644\uB8CC\uAE4C\uC9C0 1~5\uBD84 \uC18C\uC694"));
|
|
2501
2475
|
console.log();
|
|
2502
|
-
const useBridge = await
|
|
2476
|
+
const useBridge = await confirm3({
|
|
2503
2477
|
message: "Quick Tunnel\uB85C \uC784\uC2DC \uC811\uADFC\uC744 \uC2DC\uC791\uD558\uACA0\uC2B5\uB2C8\uAE4C? (\uB3C4\uBA54\uC778 \uC900\uBE44 \uC911\uC5D0\uB3C4 \uC11C\uBE44\uC2A4\uC5D0 \uC811\uADFC \uAC00\uB2A5)",
|
|
2504
2478
|
default: true
|
|
2505
2479
|
});
|
|
@@ -3057,7 +3031,7 @@ import { homedir as homedir2 } from "os";
|
|
|
3057
3031
|
import chalk9 from "chalk";
|
|
3058
3032
|
import ora4 from "ora";
|
|
3059
3033
|
import Table2 from "cli-table3";
|
|
3060
|
-
import { confirm as
|
|
3034
|
+
import { confirm as confirm4, select as select7 } from "@inquirer/prompts";
|
|
3061
3035
|
|
|
3062
3036
|
// src/utils/service-verifier.ts
|
|
3063
3037
|
function buildServiceUrlMap(state) {
|
|
@@ -4124,7 +4098,7 @@ async function runGenerateStep(state) {
|
|
|
4124
4098
|
});
|
|
4125
4099
|
if (pullResult.exitCode !== 0) {
|
|
4126
4100
|
console.log(chalk9.red(" \u2717 Failed to pull Docker images"));
|
|
4127
|
-
const shouldContinue = await
|
|
4101
|
+
const shouldContinue = await confirm4({
|
|
4128
4102
|
message: "Continue without pulling images? (existing images will be used)",
|
|
4129
4103
|
default: false
|
|
4130
4104
|
});
|
|
@@ -4139,7 +4113,7 @@ async function runGenerateStep(state) {
|
|
|
4139
4113
|
if (err instanceof Error) {
|
|
4140
4114
|
console.log(chalk9.dim(` ${err.message}`));
|
|
4141
4115
|
}
|
|
4142
|
-
const shouldContinue = await
|
|
4116
|
+
const shouldContinue = await confirm4({
|
|
4143
4117
|
message: "Continue without pulling images?",
|
|
4144
4118
|
default: false
|
|
4145
4119
|
});
|
|
@@ -4493,7 +4467,7 @@ async function runGenerateStep(state) {
|
|
|
4493
4467
|
pollHealth: boilerplatePollHealth,
|
|
4494
4468
|
verifyEndpoints: boilerplateVerifyEndpoints,
|
|
4495
4469
|
findFreePort
|
|
4496
|
-
} = await import("./boilerplate-manager-
|
|
4470
|
+
} = await import("./boilerplate-manager-5GPTMOYL.js");
|
|
4497
4471
|
const dbPrimary = state.servers.dbServer.primary;
|
|
4498
4472
|
const dbDriver = dbPrimary === "postgresql" ? "postgres" : dbPrimary === "mysql" ? "mysql" : "sqlite3";
|
|
4499
4473
|
const dbOpts = {
|
|
@@ -4563,7 +4537,7 @@ async function runGenerateStep(state) {
|
|
|
4563
4537
|
let isNextjsBasePath = false;
|
|
4564
4538
|
if (state.domain.cloudflare.tunnelMode === "quick") {
|
|
4565
4539
|
try {
|
|
4566
|
-
const { injectTraefikForQuickTunnel } = await import("./boilerplate-manager-
|
|
4540
|
+
const { injectTraefikForQuickTunnel } = await import("./boilerplate-manager-5GPTMOYL.js");
|
|
4567
4541
|
injectTraefikForQuickTunnel(appDir, stackId, backendPort);
|
|
4568
4542
|
if (stackId.startsWith("nodejs-nextjs")) isNextjsBasePath = true;
|
|
4569
4543
|
} catch {
|
|
@@ -4815,7 +4789,7 @@ async function runGenerateStep(state) {
|
|
|
4815
4789
|
chmodSync2(tokenPath, 384);
|
|
4816
4790
|
gitea.succeed(" Gitea: API \uD1A0\uD070 \uC0DD\uC131 \uC644\uB8CC");
|
|
4817
4791
|
try {
|
|
4818
|
-
const { saveGiteaConfig } = await import("./app-manager-
|
|
4792
|
+
const { saveGiteaConfig } = await import("./app-manager-6PEKSRZ2.js");
|
|
4819
4793
|
saveGiteaConfig("http://localhost/git", adminUser);
|
|
4820
4794
|
} catch {
|
|
4821
4795
|
}
|
|
@@ -6084,12 +6058,12 @@ function registerAddCommand(program) {
|
|
|
6084
6058
|
// src/commands/remove.ts
|
|
6085
6059
|
import chalk15 from "chalk";
|
|
6086
6060
|
import ora6 from "ora";
|
|
6087
|
-
import { confirm as
|
|
6061
|
+
import { confirm as confirm5 } from "@inquirer/prompts";
|
|
6088
6062
|
function registerRemoveCommand(program) {
|
|
6089
6063
|
program.command("remove").description("Remove a service").argument("<service>", "Name of the service to remove").option("--purge", "Also remove associated volumes and configuration data").option("--force", "Skip confirmation prompt").option("-p, --path <path>", "Project path (defaults to current directory)", process.cwd()).action(async (service, options) => {
|
|
6090
6064
|
if (!options.force) {
|
|
6091
6065
|
const purgeWarning = options.purge ? chalk15.red(" (including all associated data volumes)") : "";
|
|
6092
|
-
const confirmed = await
|
|
6066
|
+
const confirmed = await confirm5({
|
|
6093
6067
|
message: `Remove service ${chalk15.cyan(service)}${purgeWarning}?`,
|
|
6094
6068
|
default: false
|
|
6095
6069
|
});
|
|
@@ -6381,7 +6355,7 @@ Backups (${backups.length}):
|
|
|
6381
6355
|
// src/commands/restore.ts
|
|
6382
6356
|
import chalk20 from "chalk";
|
|
6383
6357
|
import ora10 from "ora";
|
|
6384
|
-
import { confirm as
|
|
6358
|
+
import { confirm as confirm6 } from "@inquirer/prompts";
|
|
6385
6359
|
import { homedir as homedir7 } from "os";
|
|
6386
6360
|
import { join as join8 } from "path";
|
|
6387
6361
|
var DEFAULT_BACKUPS_DIR2 = join8(homedir7(), ".brewnet", "backups");
|
|
@@ -6429,7 +6403,7 @@ function registerRestoreCommand(program) {
|
|
|
6429
6403
|
console.log(chalk20.dim(` Date: ${date}`));
|
|
6430
6404
|
console.log(chalk20.dim(` Target: ${options.path}`));
|
|
6431
6405
|
console.log("");
|
|
6432
|
-
const confirmed = await
|
|
6406
|
+
const confirmed = await confirm6({
|
|
6433
6407
|
message: `Restore backup ${chalk20.cyan(backupId)} to ${chalk20.cyan(options.path)}?`,
|
|
6434
6408
|
default: false
|
|
6435
6409
|
});
|
|
@@ -6484,7 +6458,7 @@ function registerAdminCommand(program) {
|
|
|
6484
6458
|
return;
|
|
6485
6459
|
}
|
|
6486
6460
|
if (options.foreground) {
|
|
6487
|
-
const { createAdminServer } = await import("./admin-server-
|
|
6461
|
+
const { createAdminServer } = await import("./admin-server-FN7HZVZW.js");
|
|
6488
6462
|
const spinner2 = ora11(`Starting admin panel on port ${port}...`).start();
|
|
6489
6463
|
const { start } = createAdminServer({ port, projectPath: options.path || void 0 });
|
|
6490
6464
|
try {
|
|
@@ -6575,7 +6549,7 @@ function registerShutdownCommand(program) {
|
|
|
6575
6549
|
|
|
6576
6550
|
// src/commands/uninstall.ts
|
|
6577
6551
|
import chalk23 from "chalk";
|
|
6578
|
-
import { confirm as
|
|
6552
|
+
import { confirm as confirm7, select as select9 } from "@inquirer/prompts";
|
|
6579
6553
|
function printTargets(targets) {
|
|
6580
6554
|
for (const t of targets) {
|
|
6581
6555
|
const tag = t.skipped ? chalk23.dim(` [skip] ${t.label} (${t.skipReason ?? "preserved"})`) : chalk23.red(` [remove] ${t.label}`);
|
|
@@ -6671,7 +6645,7 @@ function registerUninstallCommand(program) {
|
|
|
6671
6645
|
if (!options.force) {
|
|
6672
6646
|
let confirmed = false;
|
|
6673
6647
|
try {
|
|
6674
|
-
confirmed = await
|
|
6648
|
+
confirmed = await confirm7({
|
|
6675
6649
|
message: chalk23.red("Proceed with uninstall? This cannot be undone."),
|
|
6676
6650
|
default: false
|
|
6677
6651
|
});
|
|
@@ -7797,7 +7771,7 @@ function stripAnsi(str) {
|
|
|
7797
7771
|
// src/index.ts
|
|
7798
7772
|
function createProgram() {
|
|
7799
7773
|
const program = new Command();
|
|
7800
|
-
program.name("brewnet").description("Your Home Server, Brewed Fresh").version("0.0.
|
|
7774
|
+
program.name("brewnet").description("Your Home Server, Brewed Fresh").version("0.0.9").showHelpAfterError('(run "brewnet --help" for usage information)');
|
|
7801
7775
|
registerInitCommand(program);
|
|
7802
7776
|
registerStatusCommand(program);
|
|
7803
7777
|
registerAddCommand(program);
|