@simplens/onboard 1.0.0 → 1.0.1

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.
@@ -21,7 +21,7 @@ export declare function loadEnvExample(): Promise<EnvVariable[]>;
21
21
  * // Prompts only for critical variables
22
22
  * ```
23
23
  */
24
- export declare function promptEnvVariables(mode: 'default' | 'interactive', infraServices: string[], infraHost: string): Promise<Map<string, string>>;
24
+ export declare function promptEnvVariables(mode: 'default' | 'interactive', infraServices: string[]): Promise<Map<string, string>>;
25
25
  /**
26
26
  * Generate .env file from variables
27
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"env-config.d.ts","sourceRoot":"","sources":["../src/env-config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAuG7D;AA0CD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,kBAAkB,CACpC,IAAI,EAAE,SAAS,GAAG,aAAa,EAC/B,aAAa,EAAE,MAAM,EAAE,EACvB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAmF9B;AAkBD;;GAEG;AACH,wBAAsB,eAAe,CACjC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;GAEG;AACH,wBAAsB,eAAe,CACjC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC,CAgBf"}
1
+ {"version":3,"file":"env-config.d.ts","sourceRoot":"","sources":["../src/env-config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CA+F7D;AA0CD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,kBAAkB,CACpC,IAAI,EAAE,SAAS,GAAG,aAAa,EAC/B,aAAa,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAmF9B;AAkBD;;GAEG;AACH,wBAAsB,eAAe,CACjC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;GAEG;AACH,wBAAsB,eAAe,CACjC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC,CAgBf"}
@@ -8,14 +8,6 @@ import { CRITICAL_ENV_KEYS } from './config/constants.js';
8
8
  export async function loadEnvExample() {
9
9
  // Embedded .env template - always available regardless of installation
10
10
  const envTemplate = `
11
- # ============================================
12
- # INFRASTRUCTURE HOST CONFIGURATION
13
- # ============================================
14
- INFRA_HOST=host.docker.internal
15
-
16
- # ============================================
17
- # CONNECTION URLS
18
- # ============================================
19
11
  NODE_ENV=production
20
12
  # ============================================
21
13
  # API SERVER
@@ -160,23 +152,23 @@ function parseEnvContent(content) {
160
152
  * // Prompts only for critical variables
161
153
  * ```
162
154
  */
163
- export async function promptEnvVariables(mode, infraServices, infraHost) {
155
+ export async function promptEnvVariables(mode, infraServices) {
164
156
  logInfo('Configuring environment variables...');
165
157
  const envVars = await loadEnvExample();
166
158
  const result = new Map();
167
- // Auto-fill infra connection URLs based on selected services and host
159
+ // Auto-fill infra connection URLs based on selected services using Docker service names
168
160
  const autoInfraUrls = {
169
161
  MONGO_URI: infraServices.includes('mongo')
170
- ? (infraHost === "host.docker.internal" ? `mongodb://mongo:27017/simplens?replicaSet=rs0` : `mongodb://${infraHost}:27017/simplens?replicaSet=rs0`)
162
+ ? `mongodb://mongo:27017/simplens?replicaSet=rs0`
171
163
  : '',
172
164
  BROKERS: infraServices.includes('kafka')
173
- ? (infraHost === "host.docker.internal" ? "kafka:9093" : `${infraHost}:9092`)
165
+ ? 'kafka:9093'
174
166
  : '',
175
167
  REDIS_URL: infraServices.includes('redis')
176
- ? (infraHost === "host.docker.internal" ? "redis://redis:6379" : `redis://${infraHost}:6379`)
168
+ ? 'redis://redis:6379'
177
169
  : '',
178
170
  LOKI_URL: infraServices.includes('loki')
179
- ? (infraHost === "host.docker.internal" ? "http://loki:3100" : `http://${infraHost}:3100`)
171
+ ? 'http://loki:3100'
180
172
  : '',
181
173
  };
182
174
  if (mode === 'default') {
@@ -1 +1 @@
1
- {"version":3,"file":"env-config.js","sourceRoot":"","sources":["../src/env-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env-config.js","sourceRoot":"","sources":["../src/env-config.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -81,11 +81,10 @@ async function main() {
81
81
  await validatePrerequisites();
82
82
  // Step 2: Infrastructure setup (if --infra flag is provided)
83
83
  let selectedInfraServices = [];
84
- let infraHost = 'host.docker.internal';
85
84
  if (setupOptions.infra) {
86
85
  logInfo('\nšŸ—ļø Infrastructure Setup\n');
87
86
  selectedInfraServices = await promptInfraServices();
88
- infraHost = await generateInfraCompose(targetDir, selectedInfraServices);
87
+ await generateInfraCompose(targetDir, selectedInfraServices);
89
88
  }
90
89
  else {
91
90
  logInfo('\nā­ļø Skipping infrastructure setup (use --infra to enable)');
@@ -96,7 +95,7 @@ async function main() {
96
95
  // Step 3: Environment configuration
97
96
  logInfo('\nāš™ļø Environment Configuration\n');
98
97
  const envMode = setupOptions.envMode;
99
- const envVars = await promptEnvVariables(envMode, selectedInfraServices, infraHost);
98
+ const envVars = await promptEnvVariables(envMode, selectedInfraServices);
100
99
  await generateEnvFile(targetDir, envVars);
101
100
  // Step 4: Plugin installation
102
101
  logInfo('\nšŸ”Œ Plugin Installation\n');
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAY,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EACH,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EACH,kBAAkB,EAClB,eAAe,EACf,eAAe,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,eAAe,CAAC;AAEvB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,mBAAmB,CAAC;KACzB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,SAAS,EAAE,6DAA6D,CAAC;KAChF,MAAM,CAAC,cAAc,EAAE,oDAAoD,CAAC;KAC5E,MAAM,CAAC,cAAc,EAAE,4BAA4B,CAAC;KACpD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEzB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;AAE/B;;GAEG;AACH,KAAK,UAAU,kBAAkB;IAK7B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QAClC;YACI,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,6EAA6E;YACtF,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;SAC1C;QACD;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,wCAAwC;YACjD,OAAO,EAAE;gBACL,EAAE,IAAI,EAAE,uDAAuD,EAAE,KAAK,EAAE,SAAS,EAAE;gBACnF,EAAE,IAAI,EAAE,wCAAwC,EAAE,KAAK,EAAE,aAAa,EAAE;aAC3E;YACD,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG;SAC3B;QACD;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;YACtB,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG;SAC3B;KACJ,CAAC,CAAC;IAEH,OAAO;QACH,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;QAClE,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,IAAI,SAAS;QACpD,SAAS,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE;KAC/D,CAAC;AACN,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACf,IAAI,CAAC;QACD,iBAAiB;QACjB,aAAa,EAAE,CAAC;QAEhB,uCAAuC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,UAAU,CAAC;YACP,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;YAC9B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;YAC1B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS;SAClF,CAAC,CAAC;QAEH,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAC/B,QAAQ,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEjD,2CAA2C;QAC3C,MAAM,YAAY,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAEhD,uBAAuB;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACvD,OAAO,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAC;QAC1C,QAAQ,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;QAEpD,iCAAiC;QACjC,MAAM,qBAAqB,EAAE,CAAC;QAE9B,6DAA6D;QAC7D,IAAI,qBAAqB,GAAa,EAAE,CAAC;QACzC,IAAI,SAAS,GAAG,sBAAsB,CAAC;QAEvC,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,CAAC,+BAA+B,CAAC,CAAC;YACzC,qBAAqB,GAAG,MAAM,mBAAmB,EAAE,CAAC;YACpD,SAAS,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,6DAA6D,CAAC,CAAC;QAC3E,CAAC;QAED,kCAAkC;QAClC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QAC7C,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;QAEjC,oCAAoC;QACpC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,EAAE,SAAS,CAAC,CAAC;QACpF,MAAM,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE1C,8BAA8B;QAC9B,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACtC,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,EAAE,CAAC;QACvD,MAAM,eAAe,GAAG,MAAM,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;QAEtE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,oBAAoB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YAEvD,4CAA4C;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;YAChE,MAAM,cAAc,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;YAEhE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,cAAc,CAAC,CAAC;gBAClE,MAAM,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAClD,CAAC;QACL,CAAC;QAED,gCAAgC;QAChC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAEhD,IAAI,WAAW,EAAE,CAAC;YACd,mDAAmD;YACnD,IAAI,YAAY,CAAC,KAAK,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzD,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBACpC,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;YAED,qBAAqB;YACrB,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAElC,yBAAyB;YACzB,MAAM,oBAAoB,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,sDAAsD,CAAC,CAAC;YAChE,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACvE,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAC5C,CAAC;QAED,wBAAwB;QACxB,UAAU,CAAC,oDAAoD,CAAC,CAAC;IAErE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,wBAAwB;QACxB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAEjE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9C,yCAAyC;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,oBAAoB;AACpB,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/infra.d.ts CHANGED
@@ -12,18 +12,10 @@
12
12
  * ```
13
13
  */
14
14
  export declare function promptInfraServices(): Promise<string[]>;
15
- /**
16
- * Get infrastructure host based on OS
17
- */
18
- export declare function getInfraHost(): string;
19
- /**
20
- * Replace INFRA_HOST placeholder in template
21
- */
22
- export declare function replaceInfraHost(template: string, infraHost: string): string;
23
15
  /**
24
16
  * Generate and write docker-compose.infra.yaml
25
17
  */
26
- export declare function generateInfraCompose(targetDir: string, selectedServices: string[]): Promise<string>;
18
+ export declare function generateInfraCompose(targetDir: string, selectedServices: string[]): Promise<void>;
27
19
  /**
28
20
  * Write app docker-compose.yaml
29
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"infra.d.ts","sourceRoot":"","sources":["../src/infra.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAiB7D;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAmCrC;AA2KD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EAAE,GAC3B,OAAO,CAAC,MAAM,CAAC,CAoBjB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAItE"}
1
+ {"version":3,"file":"infra.d.ts","sourceRoot":"","sources":["../src/infra.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAiB7D;AA6KD;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EAAE,GAC3B,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAItE"}
package/dist/infra.js CHANGED
@@ -40,41 +40,6 @@ export async function promptInfraServices() {
40
40
  ]);
41
41
  return answer.services;
42
42
  }
43
- /**
44
- * Get infrastructure host based on OS
45
- */
46
- export function getInfraHost() {
47
- // const os = detectOS();
48
- // if (os === 'linux') {
49
- // logWarning('Linux detected: host.docker.internal does not work by default.');
50
- // const answer = await inquirer.prompt<{ hostChoice: string; customHost?: string }>([
51
- // {
52
- // type: 'list',
53
- // name: 'hostChoice',
54
- // message: 'Select host configuration:',
55
- // choices: [
56
- // { name: 'Use Docker bridge IP (172.17.0.1)', value: '172.17.0.1' },
57
- // { name: 'Enter custom IP/hostname', value: 'custom' },
58
- // ],
59
- // },
60
- // {
61
- // type: 'input',
62
- // name: 'customHost',
63
- // message: 'Enter your machine IP or hostname:',
64
- // when: (answers) => answers.hostChoice === 'custom',
65
- // validate: (input: string) => {
66
- // if (!input || input.trim().length === 0) {
67
- // return 'Please enter a valid IP or hostname';
68
- // }
69
- // return true;
70
- // },
71
- // },
72
- // ]);
73
- // return answer.hostChoice === 'custom' ? answer.customHost! : answer.hostChoice;
74
- // }
75
- // For Windows, linux and macOS, use host.docker.internal
76
- return 'host.docker.internal';
77
- }
78
43
  /**
79
44
  * Service chunk definitions - each service as a complete block
80
45
  */
@@ -85,10 +50,8 @@ const SERVICE_CHUNKS = {
85
50
  command: [ "--replSet", "rs0", "--bind_ip_all", "--port", "27017" ]
86
51
  ports:
87
52
  - 27017:27017
88
- extra_hosts:
89
- - "host.docker.internal:host-gateway"
90
53
  healthcheck:
91
- test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'{{INFRA_HOST}}:27017'}]}) }" | mongosh --port 27017 --quiet
54
+ test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'mongo:27017'}]}) }" | mongosh --port 27017 --quiet
92
55
  interval: 5s
93
56
  timeout: 30s
94
57
  start_period: 0s
@@ -105,7 +68,7 @@ const SERVICE_CHUNKS = {
105
68
  environment:
106
69
  # Configure listeners for both docker and host communication
107
70
  KAFKA_LISTENERS: CONTROLLER://localhost:9091,HOST://0.0.0.0:9092,DOCKER://0.0.0.0:9093
108
- KAFKA_ADVERTISED_LISTENERS: HOST://{{INFRA_HOST}}:9092,DOCKER://kafka:9093
71
+ KAFKA_ADVERTISED_LISTENERS: HOST://kafka:9092,DOCKER://kafka:9093
109
72
  KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,DOCKER:PLAINTEXT,HOST:PLAINTEXT
110
73
 
111
74
  # Settings required for KRaft mode
@@ -194,9 +157,9 @@ const SERVICE_VOLUMES = {
194
157
  function buildInfraCompose(selectedServices) {
195
158
  // Header
196
159
  const header = `# ============================================
197
- # INFRA_HOST: Set this in .env to your machine's IP/hostname when running
198
- # infrastructure on a separate system from application services.
199
- # Default: host.docker.internal (for same-system deployment)
160
+ # SimpleNS Infrastructure Services
161
+ # All services use Docker service names for container-to-container communication.
162
+ # This ensures cross-platform compatibility (Windows, Linux, macOS).
200
163
  # ============================================
201
164
 
202
165
  services:
@@ -231,30 +194,17 @@ services:
231
194
  networkLines.join('\n'),
232
195
  ].join('\n');
233
196
  }
234
- /**
235
- * Replace INFRA_HOST placeholder in template
236
- */
237
- export function replaceInfraHost(template, infraHost) {
238
- return template.replace(/\{\{INFRA_HOST\}\}/g, infraHost);
239
- }
240
197
  /**
241
198
  * Generate and write docker-compose.infra.yaml
242
199
  */
243
200
  export async function generateInfraCompose(targetDir, selectedServices) {
244
201
  logInfo('Generating docker-compose.infra.yaml...');
245
- // Get infrastructure host
246
- const infraHost = getInfraHost();
247
- logSuccess(`Using infrastructure host: ${infraHost}`);
248
202
  // Build compose content from service chunks
249
- let infraContent = buildInfraCompose(selectedServices);
250
- // Replace host placeholder
251
- infraContent = replaceInfraHost(infraContent, infraHost);
203
+ const infraContent = buildInfraCompose(selectedServices);
252
204
  // Write infrastructure compose file
253
205
  const infraPath = path.join(targetDir, 'docker-compose.infra.yaml');
254
206
  await writeFile(infraPath, infraContent);
255
207
  logSuccess('Generated docker-compose.infra.yaml');
256
- // Return infraHost for env configuration
257
- return infraHost;
258
208
  }
259
209
  /**
260
210
  * Write app docker-compose.yaml
package/dist/infra.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"infra.js","sourceRoot":"","sources":["../src/infra.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"infra.js","sourceRoot":"","sources":["../src/infra.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export declare const INFRA_COMPOSE_TEMPLATE = "# ============================================\n# INFRA_HOST: Set this in .env to your machine's IP/hostname when running\n# infrastructure on a separate system from application services.\n# Default: host.docker.internal (for same-system deployment)\n# ============================================\n\nservices:\n # ============================================\n # Infrastructure Services\n # ============================================\n mongo:\n image: mongo:7.0\n container_name: mongo\n command: [ \"--replSet\", \"rs0\", \"--bind_ip_all\", \"--port\", \"27017\" ]\n ports:\n - 27017:27017\n extra_hosts:\n - \"host.docker.internal:host-gateway\"\n healthcheck:\n test: echo \"try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'{{INFRA_HOST}}:27017'}]}) }\" | mongosh --port 27017 --quiet\n interval: 5s\n timeout: 30s\n start_period: 0s\n start_interval: 1s\n retries: 30\n volumes:\n - \"mongo_data:/data/db\"\n - \"mongo_config:/data/configdb\"\n\n kafka:\n image: apache/kafka-native\n container_name: kafka\n ports:\n - \"9092:9092\"\n environment:\n # Configure listeners for both docker and host communication\n KAFKA_LISTENERS: CONTROLLER://localhost:9091,HOST://0.0.0.0:9092,DOCKER://0.0.0.0:9093\n KAFKA_ADVERTISED_LISTENERS: HOST://{{INFRA_HOST}}:9092,DOCKER://kafka:9093\n KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,DOCKER:PLAINTEXT,HOST:PLAINTEXT\n\n # Settings required for KRaft mode\n KAFKA_NODE_ID: 1\n KAFKA_PROCESS_ROLES: broker,controller\n KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER\n KAFKA_CONTROLLER_QUORUM_VOTERS: 1@localhost:9091\n\n # Listener to use for broker-to-broker communication\n KAFKA_INTER_BROKER_LISTENER_NAME: DOCKER\n\n # Required for a single node cluster\n KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1\n\n # Disable auto-topic creation - API server will create topics with correct partitions\n KAFKA_AUTO_CREATE_TOPICS_ENABLE: \"false\"\n volumes:\n - \"kafka_data:/var/lib/kafka/data\"\n\n kafka-ui:\n image: kafbat/kafka-ui:main\n container_name: kafka-ui\n ports:\n - 8080:8080\n environment:\n DYNAMIC_CONFIG_ENABLED: \"true\"\n KAFKA_CLUSTERS_0_NAME: local\n KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:9093\n depends_on:\n - kafka\n\n redis:\n image: redis:7-alpine\n container_name: redis\n ports:\n - \"6379:6379\"\n command: redis-server --appendonly yes\n volumes:\n - \"redis_data:/data\"\n healthcheck:\n test: [ \"CMD\", \"redis-cli\", \"ping\" ]\n interval: 5s\n timeout: 3s\n retries: 5\n\n # ============================================\n # Observability Services\n # ============================================\n\n loki:\n image: grafana/loki:2.9.0\n container_name: loki\n ports:\n - \"3100:3100\"\n command: -config.file=/etc/loki/local-config.yaml\n volumes:\n - \"loki_data:/loki\"\n healthcheck:\n test: [ \"CMD-SHELL\", \"wget --no-verbose --tries=1 --spider http://localhost:3100/ready || exit 1\" ]\n interval: 10s\n timeout: 5s\n retries: 5\n\n grafana:\n image: grafana/grafana:10.2.0\n container_name: grafana\n ports:\n - \"3001:3000\"\n environment:\n - GF_PATHS_PROVISIONING=/etc/grafana/provisioning\n - GF_AUTH_ANONYMOUS_ENABLED=true\n - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin\n - GF_SECURITY_ADMIN_PASSWORD=admin\n volumes:\n - \"grafana_data:/var/lib/grafana\"\n depends_on:\n loki:\n condition: service_healthy\n\nvolumes:\n mongo_data:\n mongo_config:\n kafka_data:\n redis_data:\n loki_data:\n grafana_data:\n";
1
+ export declare const INFRA_COMPOSE_TEMPLATE = "\nservices:\n # ============================================\n # Infrastructure Services\n # ============================================\n mongo:\n image: mongo:7.0\n container_name: mongo\n command: [ \"--replSet\", \"rs0\", \"--bind_ip_all\", \"--port\", \"27017\" ]\n ports:\n - 27017:27017\n healthcheck:\n test: echo \"try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'mongo:27017'}]}) }\" | mongosh --port 27017 --quiet\n interval: 5s\n timeout: 30s\n start_period: 0s\n start_interval: 1s\n retries: 30\n volumes:\n - \"mongo_data:/data/db\"\n - \"mongo_config:/data/configdb\"\n\n kafka:\n image: apache/kafka-native\n container_name: kafka\n ports:\n - \"9092:9092\"\n environment:\n # Configure listeners for both docker and host communication\n KAFKA_LISTENERS: CONTROLLER://localhost:9091,HOST://0.0.0.0:9092,DOCKER://0.0.0.0:9093\n KAFKA_ADVERTISED_LISTENERS: HOST://kafka:9092,DOCKER://kafka:9093\n KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,DOCKER:PLAINTEXT,HOST:PLAINTEXT\n\n # Settings required for KRaft mode\n KAFKA_NODE_ID: 1\n KAFKA_PROCESS_ROLES: broker,controller\n KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER\n KAFKA_CONTROLLER_QUORUM_VOTERS: 1@localhost:9091\n\n # Listener to use for broker-to-broker communication\n KAFKA_INTER_BROKER_LISTENER_NAME: DOCKER\n\n # Required for a single node cluster\n KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1\n\n # Disable auto-topic creation - API server will create topics with correct partitions\n KAFKA_AUTO_CREATE_TOPICS_ENABLE: \"false\"\n volumes:\n - \"kafka_data:/var/lib/kafka/data\"\n\n kafka-ui:\n image: kafbat/kafka-ui:main\n container_name: kafka-ui\n ports:\n - 8080:8080\n environment:\n DYNAMIC_CONFIG_ENABLED: \"true\"\n KAFKA_CLUSTERS_0_NAME: local\n KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:9093\n depends_on:\n - kafka\n\n redis:\n image: redis:7-alpine\n container_name: redis\n ports:\n - \"6379:6379\"\n command: redis-server --appendonly yes\n volumes:\n - \"redis_data:/data\"\n healthcheck:\n test: [ \"CMD\", \"redis-cli\", \"ping\" ]\n interval: 5s\n timeout: 3s\n retries: 5\n\n # ============================================\n # Observability Services\n # ============================================\n\n loki:\n image: grafana/loki:2.9.0\n container_name: loki\n ports:\n - \"3100:3100\"\n command: -config.file=/etc/loki/local-config.yaml\n volumes:\n - \"loki_data:/loki\"\n healthcheck:\n test: [ \"CMD-SHELL\", \"wget --no-verbose --tries=1 --spider http://localhost:3100/ready || exit 1\" ]\n interval: 10s\n timeout: 5s\n retries: 5\n\n grafana:\n image: grafana/grafana:10.2.0\n container_name: grafana\n ports:\n - \"3001:3000\"\n environment:\n - GF_PATHS_PROVISIONING=/etc/grafana/provisioning\n - GF_AUTH_ANONYMOUS_ENABLED=true\n - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin\n - GF_SECURITY_ADMIN_PASSWORD=admin\n volumes:\n - \"grafana_data:/var/lib/grafana\"\n depends_on:\n loki:\n condition: service_healthy\n\nvolumes:\n mongo_data:\n mongo_config:\n kafka_data:\n redis_data:\n loki_data:\n grafana_data:\n";
2
2
  export declare const APP_COMPOSE_TEMPLATE = "services:\n api:\n image: ghcr.io/simplenotificationsystem/simplens-core:latest\n container_name: api\n ports:\n - 3000:3000\n env_file:\n - .env\n volumes:\n - plugin-data:/app/.plugins\n - ./simplens.config.yaml:/app/simplens.config.yaml:ro\n command: [ \"node\", \"dist/api/server.js\" ]\n restart: unless-stopped\n healthcheck:\n test: [ \"CMD\", \"node\", \"-e\", \"require('http').get('http://localhost:3000/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))\" ]\n interval: 30s\n timeout: 10s\n retries: 3\n start_period: 10s\n\n worker:\n image: ghcr.io/simplenotificationsystem/simplens-core:latest\n env_file:\n - .env\n command: [ \"node\", \"dist/workers/worker.js\" ]\n restart: unless-stopped\n\n notification_processor:\n image: ghcr.io/simplenotificationsystem/simplens-core:latest\n env_file:\n - .env\n volumes:\n - plugin-data:/app/.plugins\n - ./simplens.config.yaml:/app/simplens.config.yaml:ro\n command: [ \"node\", \"dist/processors/unified/unified.processor.js\" ]\n depends_on:\n api:\n condition: service_healthy\n restart: unless-stopped\n\n delayed_processor:\n image: ghcr.io/simplenotificationsystem/simplens-core:latest\n env_file:\n - .env\n command: [ \"node\", \"dist/processors/delayed/delayed.processor.js\" ]\n restart: unless-stopped\n\n recovery:\n image: ghcr.io/simplenotificationsystem/simplens-core:latest\n env_file:\n - .env\n command: [ \"node\", \"dist/workers/recovery/recovery.service.js\" ]\n restart: unless-stopped\n\n dashboard:\n image: ghcr.io/simplenotificationsystem/simplens-dashboard:latest\n ports:\n - 3002:3002\n container_name: dashboard\n env_file:\n - .env\n environment:\n PORT: ${DASHBOARD_PORT:-3002}\n API_BASE_URL: http://api:${PORT:-3000}\n WEBHOOK_HOST: dashboard\n WEBHOOK_PORT: ${DASHBOARD_PORT:-3002}\n restart: unless-stopped\n\nvolumes:\n plugin-data:\n\nnetworks:\n default:\n name: simplens\n";
3
3
  //# sourceMappingURL=templates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,gwHA4HlC,CAAC;AAEF,eAAO,MAAM,oBAAoB,imEA0EhC,CAAC"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,02GAqHlC,CAAC;AAEF,eAAO,MAAM,oBAAoB,imEA0EhC,CAAC"}
package/dist/templates.js CHANGED
@@ -1,10 +1,5 @@
1
1
  // Docker Compose templates as constants
2
- export const INFRA_COMPOSE_TEMPLATE = `# ============================================
3
- # INFRA_HOST: Set this in .env to your machine's IP/hostname when running
4
- # infrastructure on a separate system from application services.
5
- # Default: host.docker.internal (for same-system deployment)
6
- # ============================================
7
-
2
+ export const INFRA_COMPOSE_TEMPLATE = `
8
3
  services:
9
4
  # ============================================
10
5
  # Infrastructure Services
@@ -15,10 +10,8 @@ services:
15
10
  command: [ "--replSet", "rs0", "--bind_ip_all", "--port", "27017" ]
16
11
  ports:
17
12
  - 27017:27017
18
- extra_hosts:
19
- - "host.docker.internal:host-gateway"
20
13
  healthcheck:
21
- test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'{{INFRA_HOST}}:27017'}]}) }" | mongosh --port 27017 --quiet
14
+ test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'mongo:27017'}]}) }" | mongosh --port 27017 --quiet
22
15
  interval: 5s
23
16
  timeout: 30s
24
17
  start_period: 0s
@@ -36,7 +29,7 @@ services:
36
29
  environment:
37
30
  # Configure listeners for both docker and host communication
38
31
  KAFKA_LISTENERS: CONTROLLER://localhost:9091,HOST://0.0.0.0:9092,DOCKER://0.0.0.0:9093
39
- KAFKA_ADVERTISED_LISTENERS: HOST://{{INFRA_HOST}}:9092,DOCKER://kafka:9093
32
+ KAFKA_ADVERTISED_LISTENERS: HOST://kafka:9092,DOCKER://kafka:9093
40
33
  KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,DOCKER:PLAINTEXT,HOST:PLAINTEXT
41
34
 
42
35
  # Settings required for KRaft mode
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4HrC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EnC,CAAC"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqHrC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EnC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplens/onboard",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
package/src/env-config.ts CHANGED
@@ -10,14 +10,6 @@ import type { EnvVariable } from './types/domain.js';
10
10
  export async function loadEnvExample(): Promise<EnvVariable[]> {
11
11
  // Embedded .env template - always available regardless of installation
12
12
  const envTemplate = `
13
- # ============================================
14
- # INFRASTRUCTURE HOST CONFIGURATION
15
- # ============================================
16
- INFRA_HOST=host.docker.internal
17
-
18
- # ============================================
19
- # CONNECTION URLS
20
- # ============================================
21
13
  NODE_ENV=production
22
14
  # ============================================
23
15
  # API SERVER
@@ -172,27 +164,26 @@ function parseEnvContent(content: string): EnvVariable[] {
172
164
  */
173
165
  export async function promptEnvVariables(
174
166
  mode: 'default' | 'interactive',
175
- infraServices: string[],
176
- infraHost: string
167
+ infraServices: string[]
177
168
  ): Promise<Map<string, string>> {
178
169
  logInfo('Configuring environment variables...');
179
170
 
180
171
  const envVars = await loadEnvExample();
181
172
  const result = new Map<string, string>();
182
173
 
183
- // Auto-fill infra connection URLs based on selected services and host
174
+ // Auto-fill infra connection URLs based on selected services using Docker service names
184
175
  const autoInfraUrls: Record<string, string> = {
185
176
  MONGO_URI: infraServices.includes('mongo')
186
- ? (infraHost==="host.docker.internal"?`mongodb://mongo:27017/simplens?replicaSet=rs0`:`mongodb://${infraHost}:27017/simplens?replicaSet=rs0`)
177
+ ? `mongodb://mongo:27017/simplens?replicaSet=rs0`
187
178
  : '',
188
179
  BROKERS: infraServices.includes('kafka')
189
- ? (infraHost==="host.docker.internal"?"kafka:9093":`${infraHost}:9092`)
180
+ ? 'kafka:9093'
190
181
  : '',
191
182
  REDIS_URL: infraServices.includes('redis')
192
- ? (infraHost==="host.docker.internal"?"redis://redis:6379":`redis://${infraHost}:6379`)
183
+ ? 'redis://redis:6379'
193
184
  : '',
194
185
  LOKI_URL: infraServices.includes('loki')
195
- ? (infraHost==="host.docker.internal"?"http://loki:3100":`http://${infraHost}:3100`)
186
+ ? 'http://loki:3100'
196
187
  : '',
197
188
  };
198
189
 
package/src/index.ts CHANGED
@@ -118,12 +118,11 @@ async function main() {
118
118
 
119
119
  // Step 2: Infrastructure setup (if --infra flag is provided)
120
120
  let selectedInfraServices: string[] = [];
121
- let infraHost = 'host.docker.internal';
122
121
 
123
122
  if (setupOptions.infra) {
124
123
  logInfo('\nšŸ—ļø Infrastructure Setup\n');
125
124
  selectedInfraServices = await promptInfraServices();
126
- infraHost = await generateInfraCompose(targetDir, selectedInfraServices);
125
+ await generateInfraCompose(targetDir, selectedInfraServices);
127
126
  } else {
128
127
  logInfo('\nā­ļø Skipping infrastructure setup (use --infra to enable)');
129
128
  }
@@ -135,7 +134,7 @@ async function main() {
135
134
  // Step 3: Environment configuration
136
135
  logInfo('\nāš™ļø Environment Configuration\n');
137
136
  const envMode = setupOptions.envMode;
138
- const envVars = await promptEnvVariables(envMode, selectedInfraServices, infraHost);
137
+ const envVars = await promptEnvVariables(envMode, selectedInfraServices);
139
138
  await generateEnvFile(targetDir, envVars);
140
139
 
141
140
  // Step 4: Plugin installation
package/src/infra.ts CHANGED
@@ -46,45 +46,7 @@ export async function promptInfraServices(): Promise<string[]> {
46
46
  return answer.services;
47
47
  }
48
48
 
49
- /**
50
- * Get infrastructure host based on OS
51
- */
52
- export function getInfraHost(): string {
53
- // const os = detectOS();
54
-
55
- // if (os === 'linux') {
56
- // logWarning('Linux detected: host.docker.internal does not work by default.');
57
-
58
- // const answer = await inquirer.prompt<{ hostChoice: string; customHost?: string }>([
59
- // {
60
- // type: 'list',
61
- // name: 'hostChoice',
62
- // message: 'Select host configuration:',
63
- // choices: [
64
- // { name: 'Use Docker bridge IP (172.17.0.1)', value: '172.17.0.1' },
65
- // { name: 'Enter custom IP/hostname', value: 'custom' },
66
- // ],
67
- // },
68
- // {
69
- // type: 'input',
70
- // name: 'customHost',
71
- // message: 'Enter your machine IP or hostname:',
72
- // when: (answers) => answers.hostChoice === 'custom',
73
- // validate: (input: string) => {
74
- // if (!input || input.trim().length === 0) {
75
- // return 'Please enter a valid IP or hostname';
76
- // }
77
- // return true;
78
- // },
79
- // },
80
- // ]);
81
49
 
82
- // return answer.hostChoice === 'custom' ? answer.customHost! : answer.hostChoice;
83
- // }
84
-
85
- // For Windows, linux and macOS, use host.docker.internal
86
- return 'host.docker.internal';
87
- }
88
50
 
89
51
  /**
90
52
  * Service chunk definitions - each service as a complete block
@@ -96,10 +58,8 @@ const SERVICE_CHUNKS: Record<string, string> = {
96
58
  command: [ "--replSet", "rs0", "--bind_ip_all", "--port", "27017" ]
97
59
  ports:
98
60
  - 27017:27017
99
- extra_hosts:
100
- - "host.docker.internal:host-gateway"
101
61
  healthcheck:
102
- test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'{{INFRA_HOST}}:27017'}]}) }" | mongosh --port 27017 --quiet
62
+ test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'mongo:27017'}]}) }" | mongosh --port 27017 --quiet
103
63
  interval: 5s
104
64
  timeout: 30s
105
65
  start_period: 0s
@@ -117,7 +77,7 @@ const SERVICE_CHUNKS: Record<string, string> = {
117
77
  environment:
118
78
  # Configure listeners for both docker and host communication
119
79
  KAFKA_LISTENERS: CONTROLLER://localhost:9091,HOST://0.0.0.0:9092,DOCKER://0.0.0.0:9093
120
- KAFKA_ADVERTISED_LISTENERS: HOST://{{INFRA_HOST}}:9092,DOCKER://kafka:9093
80
+ KAFKA_ADVERTISED_LISTENERS: HOST://kafka:9092,DOCKER://kafka:9093
121
81
  KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,DOCKER:PLAINTEXT,HOST:PLAINTEXT
122
82
 
123
83
  # Settings required for KRaft mode
@@ -212,9 +172,9 @@ const SERVICE_VOLUMES: Record<string, string[]> = {
212
172
  function buildInfraCompose(selectedServices: string[]): string {
213
173
  // Header
214
174
  const header = `# ============================================
215
- # INFRA_HOST: Set this in .env to your machine's IP/hostname when running
216
- # infrastructure on a separate system from application services.
217
- # Default: host.docker.internal (for same-system deployment)
175
+ # SimpleNS Infrastructure Services
176
+ # All services use Docker service names for container-to-container communication.
177
+ # This ensures cross-platform compatibility (Windows, Linux, macOS).
218
178
  # ============================================
219
179
 
220
180
  services:
@@ -255,12 +215,7 @@ services:
255
215
  ].join('\n');
256
216
  }
257
217
 
258
- /**
259
- * Replace INFRA_HOST placeholder in template
260
- */
261
- export function replaceInfraHost(template: string, infraHost: string): string {
262
- return template.replace(/\{\{INFRA_HOST\}\}/g, infraHost);
263
- }
218
+
264
219
 
265
220
  /**
266
221
  * Generate and write docker-compose.infra.yaml
@@ -268,26 +223,16 @@ export function replaceInfraHost(template: string, infraHost: string): string {
268
223
  export async function generateInfraCompose(
269
224
  targetDir: string,
270
225
  selectedServices: string[]
271
- ): Promise<string> {
226
+ ): Promise<void> {
272
227
  logInfo('Generating docker-compose.infra.yaml...');
273
228
 
274
- // Get infrastructure host
275
- const infraHost = getInfraHost();
276
- logSuccess(`Using infrastructure host: ${infraHost}`);
277
-
278
229
  // Build compose content from service chunks
279
- let infraContent = buildInfraCompose(selectedServices);
280
-
281
- // Replace host placeholder
282
- infraContent = replaceInfraHost(infraContent, infraHost);
230
+ const infraContent = buildInfraCompose(selectedServices);
283
231
 
284
232
  // Write infrastructure compose file
285
233
  const infraPath = path.join(targetDir, 'docker-compose.infra.yaml');
286
234
  await writeFile(infraPath, infraContent);
287
235
  logSuccess('Generated docker-compose.infra.yaml');
288
-
289
- // Return infraHost for env configuration
290
- return infraHost;
291
236
  }
292
237
 
293
238
  /**
package/src/templates.ts CHANGED
@@ -1,11 +1,6 @@
1
1
  // Docker Compose templates as constants
2
2
 
3
- export const INFRA_COMPOSE_TEMPLATE = `# ============================================
4
- # INFRA_HOST: Set this in .env to your machine's IP/hostname when running
5
- # infrastructure on a separate system from application services.
6
- # Default: host.docker.internal (for same-system deployment)
7
- # ============================================
8
-
3
+ export const INFRA_COMPOSE_TEMPLATE = `
9
4
  services:
10
5
  # ============================================
11
6
  # Infrastructure Services
@@ -16,10 +11,8 @@ services:
16
11
  command: [ "--replSet", "rs0", "--bind_ip_all", "--port", "27017" ]
17
12
  ports:
18
13
  - 27017:27017
19
- extra_hosts:
20
- - "host.docker.internal:host-gateway"
21
14
  healthcheck:
22
- test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'{{INFRA_HOST}}:27017'}]}) }" | mongosh --port 27017 --quiet
15
+ test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'mongo:27017'}]}) }" | mongosh --port 27017 --quiet
23
16
  interval: 5s
24
17
  timeout: 30s
25
18
  start_period: 0s
@@ -37,7 +30,7 @@ services:
37
30
  environment:
38
31
  # Configure listeners for both docker and host communication
39
32
  KAFKA_LISTENERS: CONTROLLER://localhost:9091,HOST://0.0.0.0:9092,DOCKER://0.0.0.0:9093
40
- KAFKA_ADVERTISED_LISTENERS: HOST://{{INFRA_HOST}}:9092,DOCKER://kafka:9093
33
+ KAFKA_ADVERTISED_LISTENERS: HOST://kafka:9092,DOCKER://kafka:9093
41
34
  KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,DOCKER:PLAINTEXT,HOST:PLAINTEXT
42
35
 
43
36
  # Settings required for KRaft mode
package/vitest.config.ts CHANGED
@@ -4,6 +4,8 @@ export default defineConfig({
4
4
  test: {
5
5
  globals: true,
6
6
  environment: 'node',
7
+ include: ['src/**/*.{test,spec}.{js,ts}'],
8
+ exclude: ['node_modules/**', 'dist/**'],
7
9
  coverage: {
8
10
  provider: 'v8',
9
11
  reporter: ['text', 'json', 'html'],