@minecraft-docker/mcctl 1.7.4 → 1.7.6

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.
@@ -1,8 +1,9 @@
1
- import { existsSync, mkdirSync, copyFileSync, readFileSync, writeFileSync } from 'node:fs';
1
+ import { existsSync, mkdirSync, copyFileSync, readFileSync, writeFileSync, readdirSync } from 'node:fs';
2
2
  import { join, dirname } from 'node:path';
3
3
  import { execSync } from 'node:child_process';
4
4
  import { Paths, Config, log, colors, checkDocker, checkDockerCompose } from '@minecraft-docker/shared';
5
5
  import { selectHostIPs, getNetworkInterfaces } from '../lib/prompts/ip-select.js';
6
+ import { multiselect, text, select, confirm, password, isCancel } from '@clack/prompts';
6
7
  /**
7
8
  * Initialize the platform
8
9
  */
@@ -18,10 +19,16 @@ export async function initCommand(options) {
18
19
  console.log('');
19
20
  // Check if already initialized
20
21
  if (paths.isInitialized()) {
22
+ if (options.reconfigure) {
23
+ return reconfigureCommand(paths, config);
24
+ }
21
25
  log.warn('Platform is already initialized');
22
26
  console.log(` Config: ${paths.configFile}`);
23
27
  console.log(` Compose: ${paths.composeFile}`);
24
28
  console.log('');
29
+ console.log(' To reconfigure settings:');
30
+ console.log(` ${colors.cyan('mcctl init --reconfigure')}`);
31
+ console.log('');
25
32
  console.log(' To reinitialize, delete the data directory first:');
26
33
  console.log(` ${colors.dim(`rm -rf ${paths.root}`)}`);
27
34
  console.log('');
@@ -81,8 +88,8 @@ export async function initCommand(options) {
81
88
  const templateFiles = [
82
89
  { src: 'docker-compose.yml', dest: 'docker-compose.yml' },
83
90
  { src: '.env.example', dest: '.env' },
84
- { src: '.gitignore', dest: '.gitignore' },
85
- { src: 'servers/compose.yml', dest: 'servers/compose.yml' },
91
+ { src: 'gitignore.template', dest: '.gitignore' },
92
+ { src: 'servers/compose.template.yml', dest: 'servers/compose.yml' },
86
93
  { src: 'servers/_template/docker-compose.yml', dest: 'servers/_template/docker-compose.yml' },
87
94
  { src: 'servers/_template/config.env', dest: 'servers/_template/config.env' },
88
95
  ];
@@ -215,4 +222,336 @@ export async function initCommand(options) {
215
222
  console.log('');
216
223
  return 0;
217
224
  }
225
+ /**
226
+ * Reconfigure existing platform settings
227
+ */
228
+ async function reconfigureCommand(paths, config) {
229
+ console.log('');
230
+ console.log(colors.bold('═'.repeat(60)));
231
+ console.log(colors.bold(' Minecraft Server Platform - Reconfigure'));
232
+ console.log(colors.bold('═'.repeat(60)));
233
+ console.log('');
234
+ // Load current settings
235
+ const envConfig = config.loadEnv();
236
+ const mcctlConfig = config.load();
237
+ if (!mcctlConfig) {
238
+ log.error('Configuration file not found');
239
+ return 1;
240
+ }
241
+ // Display current settings
242
+ const displayIPs = envConfig.HOST_IPS || envConfig.HOST_IP || 'auto-detect';
243
+ console.log(colors.cyan('Current Settings:'));
244
+ console.log('');
245
+ console.log(' Network:');
246
+ console.log(` HOST_IP(s): ${colors.yellow(displayIPs)}`);
247
+ console.log(` Timezone: ${colors.yellow(envConfig.TZ || 'system default')}`);
248
+ console.log('');
249
+ console.log(' Defaults:');
250
+ console.log(` Default Memory: ${colors.yellow(envConfig.DEFAULT_MEMORY || '4G')}`);
251
+ console.log(` Default Type: ${colors.yellow(mcctlConfig.defaultType)}`);
252
+ console.log(` Default Version: ${colors.yellow(mcctlConfig.defaultVersion)}`);
253
+ console.log('');
254
+ console.log(' Behavior:');
255
+ console.log(` Auto Start: ${colors.yellow(String(mcctlConfig.autoStart))}`);
256
+ console.log(` Avahi Enabled: ${colors.yellow(String(mcctlConfig.avahiEnabled))}`);
257
+ console.log('');
258
+ console.log(' Security:');
259
+ console.log(` RCON Password: ${colors.yellow(envConfig.RCON_PASSWORD ? '********' : 'not set')}`);
260
+ console.log('');
261
+ // Build settings list
262
+ const settings = [
263
+ {
264
+ key: 'HOST_IP',
265
+ label: 'Host IP(s)',
266
+ source: 'env',
267
+ currentValue: displayIPs,
268
+ type: 'ip',
269
+ },
270
+ {
271
+ key: 'DEFAULT_MEMORY',
272
+ label: 'Default Memory',
273
+ source: 'env',
274
+ currentValue: envConfig.DEFAULT_MEMORY || '4G',
275
+ type: 'text',
276
+ validate: (value) => {
277
+ if (!/^\d+[MG]$/i.test(value)) {
278
+ return 'Invalid format. Use format like 4G or 2048M';
279
+ }
280
+ return undefined;
281
+ },
282
+ },
283
+ {
284
+ key: 'TZ',
285
+ label: 'Timezone',
286
+ source: 'env',
287
+ currentValue: envConfig.TZ || 'system default',
288
+ type: 'text',
289
+ },
290
+ {
291
+ key: 'defaultType',
292
+ label: 'Default Server Type',
293
+ source: 'config',
294
+ currentValue: mcctlConfig.defaultType,
295
+ type: 'select',
296
+ options: [
297
+ { value: 'PAPER', label: 'Paper (Recommended)' },
298
+ { value: 'VANILLA', label: 'Vanilla' },
299
+ { value: 'FORGE', label: 'Forge' },
300
+ { value: 'FABRIC', label: 'Fabric' },
301
+ { value: 'SPIGOT', label: 'Spigot' },
302
+ { value: 'BUKKIT', label: 'Bukkit' },
303
+ ],
304
+ },
305
+ {
306
+ key: 'defaultVersion',
307
+ label: 'Default MC Version',
308
+ source: 'config',
309
+ currentValue: mcctlConfig.defaultVersion,
310
+ type: 'text',
311
+ validate: (value) => {
312
+ if (!/^\d+\.\d+(\.\d+)?$/.test(value)) {
313
+ return 'Invalid version format. Use format like 1.21.1';
314
+ }
315
+ return undefined;
316
+ },
317
+ },
318
+ {
319
+ key: 'autoStart',
320
+ label: 'Auto Start Servers',
321
+ source: 'config',
322
+ currentValue: String(mcctlConfig.autoStart),
323
+ type: 'confirm',
324
+ },
325
+ {
326
+ key: 'avahiEnabled',
327
+ label: 'Avahi/mDNS Enabled',
328
+ source: 'config',
329
+ currentValue: String(mcctlConfig.avahiEnabled),
330
+ type: 'confirm',
331
+ },
332
+ {
333
+ key: 'RCON_PASSWORD',
334
+ label: 'RCON Password',
335
+ source: 'env',
336
+ currentValue: envConfig.RCON_PASSWORD ? '********' : 'not set',
337
+ type: 'password',
338
+ validate: (value) => {
339
+ if (value.length < 8) {
340
+ return 'Password must be at least 8 characters';
341
+ }
342
+ return undefined;
343
+ },
344
+ },
345
+ ];
346
+ // Multiselect for settings to change
347
+ const selectedKeys = await multiselect({
348
+ message: 'Select settings to change:',
349
+ options: settings.map((s) => ({
350
+ value: s.key,
351
+ label: s.label,
352
+ hint: `Current: ${s.currentValue}`,
353
+ })),
354
+ required: false,
355
+ });
356
+ if (isCancel(selectedKeys) || selectedKeys.length === 0) {
357
+ console.log('');
358
+ log.info('No changes made');
359
+ return 0;
360
+ }
361
+ const keysToChange = selectedKeys;
362
+ const envUpdates = {};
363
+ const configUpdates = {};
364
+ let ipChanged = false;
365
+ let newHostIPs = '';
366
+ // Prompt for each selected setting
367
+ for (const key of keysToChange) {
368
+ const setting = settings.find((s) => s.key === key);
369
+ if (!setting)
370
+ continue;
371
+ console.log('');
372
+ if (setting.type === 'ip') {
373
+ // Use the existing IP selection prompt
374
+ const selectedIPs = await selectHostIPs();
375
+ if (isCancel(selectedIPs) || selectedIPs === null) {
376
+ continue;
377
+ }
378
+ const ipList = selectedIPs.split(',');
379
+ const primaryIP = ipList[0];
380
+ envUpdates['HOST_IP'] = primaryIP;
381
+ if (ipList.length > 1) {
382
+ envUpdates['HOST_IPS'] = selectedIPs;
383
+ }
384
+ newHostIPs = selectedIPs;
385
+ ipChanged = true;
386
+ console.log(` ${colors.green('✓')} HOST_IP=${primaryIP}`);
387
+ if (ipList.length > 1) {
388
+ console.log(` ${colors.green('✓')} HOST_IPS=${selectedIPs}`);
389
+ }
390
+ }
391
+ else if (setting.type === 'text') {
392
+ const result = await text({
393
+ message: `Enter ${setting.label}:`,
394
+ placeholder: setting.currentValue,
395
+ defaultValue: setting.currentValue === 'system default' ? '' : setting.currentValue,
396
+ validate: setting.validate,
397
+ });
398
+ if (isCancel(result))
399
+ continue;
400
+ const value = result;
401
+ if (setting.source === 'env') {
402
+ envUpdates[key] = value;
403
+ }
404
+ else {
405
+ configUpdates[key] = value;
406
+ }
407
+ console.log(` ${colors.green('✓')} ${key}=${value}`);
408
+ }
409
+ else if (setting.type === 'select' && setting.options) {
410
+ const result = await select({
411
+ message: `Select ${setting.label}:`,
412
+ options: setting.options,
413
+ initialValue: setting.currentValue,
414
+ });
415
+ if (isCancel(result))
416
+ continue;
417
+ const value = result;
418
+ if (setting.source === 'env') {
419
+ envUpdates[key] = value;
420
+ }
421
+ else {
422
+ configUpdates[key] = value;
423
+ }
424
+ console.log(` ${colors.green('✓')} ${key}=${value}`);
425
+ }
426
+ else if (setting.type === 'confirm') {
427
+ const result = await confirm({
428
+ message: `Enable ${setting.label}?`,
429
+ initialValue: setting.currentValue === 'true',
430
+ });
431
+ if (isCancel(result))
432
+ continue;
433
+ const value = result;
434
+ if (setting.source === 'env') {
435
+ envUpdates[key] = String(value);
436
+ }
437
+ else {
438
+ configUpdates[key] = value;
439
+ }
440
+ console.log(` ${colors.green('✓')} ${key}=${value}`);
441
+ }
442
+ else if (setting.type === 'password') {
443
+ const result = await password({
444
+ message: `Enter ${setting.label}:`,
445
+ validate: setting.validate,
446
+ });
447
+ if (isCancel(result))
448
+ continue;
449
+ const value = result;
450
+ envUpdates[key] = value;
451
+ console.log(` ${colors.green('✓')} ${key}=********`);
452
+ }
453
+ }
454
+ // Apply changes to .env file
455
+ if (Object.keys(envUpdates).length > 0) {
456
+ config.updateEnv(envUpdates);
457
+ console.log('');
458
+ log.info('Updated .env file');
459
+ }
460
+ // Apply changes to .mcctl.json
461
+ if (Object.keys(configUpdates).length > 0) {
462
+ const updatedConfig = { ...mcctlConfig, ...configUpdates };
463
+ config.save(updatedConfig);
464
+ console.log('');
465
+ log.info('Updated .mcctl.json');
466
+ }
467
+ // Handle IP change - update server hostnames
468
+ if (ipChanged && newHostIPs) {
469
+ console.log('');
470
+ const updateServers = await confirm({
471
+ message: 'Update existing servers with new IP hostnames?',
472
+ initialValue: true,
473
+ });
474
+ if (!isCancel(updateServers) && updateServers) {
475
+ const updatedCount = await updateServerHostnames(paths, newHostIPs);
476
+ if (updatedCount > 0) {
477
+ console.log(` ${colors.green('✓')} Updated ${updatedCount} server(s)`);
478
+ }
479
+ }
480
+ // Prompt to restart mc-router
481
+ const restartRouter = await confirm({
482
+ message: 'Restart mc-router to apply changes?',
483
+ initialValue: true,
484
+ });
485
+ if (!isCancel(restartRouter) && restartRouter) {
486
+ try {
487
+ // Using execSync with hardcoded command (no user input) - safe from injection
488
+ execSync('docker compose restart mc-router', {
489
+ cwd: paths.root,
490
+ stdio: 'pipe',
491
+ });
492
+ console.log(` ${colors.green('✓')} mc-router restarted`);
493
+ }
494
+ catch {
495
+ log.warn('Failed to restart mc-router (may not be running)');
496
+ }
497
+ }
498
+ }
499
+ // Success message
500
+ console.log('');
501
+ console.log(colors.green('═'.repeat(60)));
502
+ console.log(colors.green(' ✓ Configuration updated successfully!'));
503
+ console.log(colors.green('═'.repeat(60)));
504
+ console.log('');
505
+ return 0;
506
+ }
507
+ /**
508
+ * Update server docker-compose.yml files with new hostnames
509
+ */
510
+ async function updateServerHostnames(paths, newHostIPs) {
511
+ const serversDir = paths.servers;
512
+ let updatedCount = 0;
513
+ if (!existsSync(serversDir)) {
514
+ return 0;
515
+ }
516
+ const serverDirs = readdirSync(serversDir, { withFileTypes: true })
517
+ .filter((dirent) => dirent.isDirectory() && !dirent.name.startsWith('_'))
518
+ .map((dirent) => dirent.name);
519
+ for (const serverName of serverDirs) {
520
+ const composeFile = join(serversDir, serverName, 'docker-compose.yml');
521
+ if (!existsSync(composeFile)) {
522
+ continue;
523
+ }
524
+ try {
525
+ let content = readFileSync(composeFile, 'utf-8');
526
+ // Build new hostname list
527
+ const hostnames = buildHostnames(serverName, newHostIPs);
528
+ // Replace mc-router.host label value
529
+ // Match patterns like: mc-router.host: "server.local,server.ip.nip.io"
530
+ const hostLabelRegex = /(mc-router\.host:\s*["'])([^"']+)(["'])/;
531
+ const match = content.match(hostLabelRegex);
532
+ if (match) {
533
+ content = content.replace(hostLabelRegex, `$1${hostnames}$3`);
534
+ writeFileSync(composeFile, content, 'utf-8');
535
+ updatedCount++;
536
+ }
537
+ }
538
+ catch {
539
+ log.warn(`Failed to update ${serverName}/docker-compose.yml`);
540
+ }
541
+ }
542
+ return updatedCount;
543
+ }
544
+ /**
545
+ * Build hostname string from server name and IPs
546
+ */
547
+ function buildHostnames(serverName, hostIPs) {
548
+ let hostnames = `${serverName}.local`;
549
+ if (hostIPs) {
550
+ const ips = hostIPs.split(',').map((ip) => ip.trim()).filter((ip) => ip);
551
+ for (const ip of ips) {
552
+ hostnames += `,${serverName}.${ip}.nip.io`;
553
+ }
554
+ }
555
+ return hostnames;
556
+ }
218
557
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Update command options
3
+ */
4
+ export interface UpdateCommandOptions {
5
+ check?: boolean;
6
+ force?: boolean;
7
+ yes?: boolean;
8
+ }
9
+ /**
10
+ * Execute update command
11
+ */
12
+ export declare function updateCommand(options: UpdateCommandOptions): Promise<number>;
13
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAyCD;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4FlF"}
@@ -0,0 +1,117 @@
1
+ import { log, colors } from '@minecraft-docker/shared';
2
+ import { getInstalledVersion, fetchLatestVersionForced, getCachedVersion, clearCache, isUpdateAvailable, } from '../lib/update-checker.js';
3
+ import { spawnSync } from 'child_process';
4
+ import * as prompts from '@clack/prompts';
5
+ const PACKAGE_NAME = '@minecraft-docker/mcctl';
6
+ /**
7
+ * Print version comparison box
8
+ */
9
+ function printVersionInfo(currentVersion, latestVersion, hasUpdate) {
10
+ console.log('');
11
+ console.log(colors.bold('mcctl Version Info'));
12
+ console.log('');
13
+ console.log(` Installed: ${colors.cyan(currentVersion)}`);
14
+ console.log(` Latest: ${hasUpdate ? colors.yellow(latestVersion) : colors.green(latestVersion)}`);
15
+ console.log('');
16
+ if (hasUpdate) {
17
+ console.log(colors.yellow(` Update available: ${currentVersion} → ${latestVersion}`));
18
+ console.log('');
19
+ }
20
+ else {
21
+ console.log(colors.green(' You are using the latest version.'));
22
+ console.log('');
23
+ }
24
+ }
25
+ /**
26
+ * Execute npm install command using spawnSync (safe, no shell injection)
27
+ */
28
+ function runNpmInstall() {
29
+ console.log('');
30
+ console.log(colors.dim(`Running: npm install -g ${PACKAGE_NAME}`));
31
+ console.log('');
32
+ const result = spawnSync('npm', ['install', '-g', PACKAGE_NAME], {
33
+ stdio: 'inherit',
34
+ });
35
+ return result.status === 0;
36
+ }
37
+ /**
38
+ * Execute update command
39
+ */
40
+ export async function updateCommand(options) {
41
+ const currentVersion = getInstalledVersion();
42
+ // If --force, clear cache first
43
+ if (options.force) {
44
+ clearCache();
45
+ }
46
+ // Get latest version
47
+ let latestVersion;
48
+ if (options.force) {
49
+ // Force fetch from npm
50
+ const spinner = prompts.spinner();
51
+ spinner.start('Checking for updates...');
52
+ latestVersion = await fetchLatestVersionForced();
53
+ if (!latestVersion) {
54
+ spinner.stop('Failed to fetch latest version from npm registry');
55
+ return 1;
56
+ }
57
+ spinner.stop('Version check complete');
58
+ }
59
+ else {
60
+ // Try cache first, then fetch
61
+ latestVersion = getCachedVersion();
62
+ if (!latestVersion) {
63
+ const spinner = prompts.spinner();
64
+ spinner.start('Checking for updates...');
65
+ latestVersion = await fetchLatestVersionForced();
66
+ if (!latestVersion) {
67
+ spinner.stop('Failed to fetch latest version from npm registry');
68
+ return 1;
69
+ }
70
+ spinner.stop('Version check complete');
71
+ }
72
+ }
73
+ const hasUpdate = isUpdateAvailable(currentVersion, latestVersion);
74
+ // Print version info
75
+ printVersionInfo(currentVersion, latestVersion, hasUpdate);
76
+ // If --check, just show info and exit
77
+ if (options.check) {
78
+ return hasUpdate ? 1 : 0; // Exit code 1 if update available (useful for scripts)
79
+ }
80
+ // If no update available, we're done
81
+ if (!hasUpdate) {
82
+ return 0;
83
+ }
84
+ // Ask user if they want to update (unless --yes)
85
+ if (!options.yes) {
86
+ const confirm = await prompts.confirm({
87
+ message: `Update mcctl to ${latestVersion}?`,
88
+ });
89
+ if (prompts.isCancel(confirm) || !confirm) {
90
+ console.log('');
91
+ console.log(colors.dim('Update cancelled.'));
92
+ console.log('');
93
+ console.log(` To update manually, run:`);
94
+ console.log(colors.cyan(` npm install -g ${PACKAGE_NAME}`));
95
+ console.log('');
96
+ return 0;
97
+ }
98
+ }
99
+ // Run npm install
100
+ const success = runNpmInstall();
101
+ if (success) {
102
+ console.log('');
103
+ console.log(colors.green('✓ mcctl updated successfully!'));
104
+ console.log('');
105
+ // Clear cache after successful update
106
+ clearCache();
107
+ return 0;
108
+ }
109
+ else {
110
+ console.log('');
111
+ log.error('Update failed. Try running manually:');
112
+ console.log(colors.cyan(` sudo npm install -g ${PACKAGE_NAME}`));
113
+ console.log('');
114
+ return 1;
115
+ }
116
+ }
117
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}