@minecraft-docker/mcctl 1.6.1 → 1.6.2
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/commands/console/api.d.ts +19 -0
- package/dist/commands/console/api.d.ts.map +1 -0
- package/dist/commands/console/api.js +399 -0
- package/dist/commands/console/api.js.map +1 -0
- package/dist/commands/console/index.d.ts +10 -0
- package/dist/commands/console/index.d.ts.map +1 -0
- package/dist/commands/console/index.js +12 -0
- package/dist/commands/console/index.js.map +1 -0
- package/dist/commands/console/init.d.ts +47 -0
- package/dist/commands/console/init.d.ts.map +1 -0
- package/dist/commands/console/init.js +491 -0
- package/dist/commands/console/init.js.map +1 -0
- package/dist/commands/console/remove.d.ts +25 -0
- package/dist/commands/console/remove.d.ts.map +1 -0
- package/dist/commands/console/remove.js +189 -0
- package/dist/commands/console/remove.js.map +1 -0
- package/dist/commands/console/service.d.ts +40 -0
- package/dist/commands/console/service.d.ts.map +1 -0
- package/dist/commands/console/service.js +321 -0
- package/dist/commands/console/service.js.map +1 -0
- package/dist/commands/console/user.d.ts +17 -0
- package/dist/commands/console/user.d.ts.map +1 -0
- package/dist/commands/console/user.js +431 -0
- package/dist/commands/console/user.js.map +1 -0
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +4 -1
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/delete.d.ts.map +1 -1
- package/dist/commands/delete.js +4 -1
- package/dist/commands/delete.js.map +1 -1
- package/dist/commands/index.d.ts +3 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +5 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +58 -26
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mod.d.ts +19 -0
- package/dist/commands/mod.d.ts.map +1 -0
- package/dist/commands/mod.js +441 -0
- package/dist/commands/mod.js.map +1 -0
- package/dist/commands/msg.d.ts +12 -0
- package/dist/commands/msg.d.ts.map +1 -0
- package/dist/commands/msg.js +273 -0
- package/dist/commands/msg.js.map +1 -0
- package/dist/commands/player-online.js +4 -2
- package/dist/commands/player-online.js.map +1 -1
- package/dist/commands/world.d.ts +2 -0
- package/dist/commands/world.d.ts.map +1 -1
- package/dist/commands/world.js +104 -1
- package/dist/commands/world.js.map +1 -1
- package/dist/index.js +162 -5
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/adapters/ClackPromptAdapter.d.ts +2 -1
- package/dist/infrastructure/adapters/ClackPromptAdapter.d.ts.map +1 -1
- package/dist/infrastructure/adapters/ClackPromptAdapter.js +11 -0
- package/dist/infrastructure/adapters/ClackPromptAdapter.js.map +1 -1
- package/dist/infrastructure/adapters/Pm2ServiceManagerAdapter.d.ts +78 -0
- package/dist/infrastructure/adapters/Pm2ServiceManagerAdapter.d.ts.map +1 -0
- package/dist/infrastructure/adapters/Pm2ServiceManagerAdapter.js +391 -0
- package/dist/infrastructure/adapters/Pm2ServiceManagerAdapter.js.map +1 -0
- package/dist/infrastructure/adapters/index.d.ts +1 -0
- package/dist/infrastructure/adapters/index.d.ts.map +1 -1
- package/dist/infrastructure/adapters/index.js +2 -1
- package/dist/infrastructure/adapters/index.js.map +1 -1
- package/dist/infrastructure/index.d.ts +1 -0
- package/dist/infrastructure/index.d.ts.map +1 -1
- package/dist/infrastructure/index.js +2 -1
- package/dist/infrastructure/index.js.map +1 -1
- package/dist/lib/admin-config.d.ts +66 -0
- package/dist/lib/admin-config.d.ts.map +1 -0
- package/dist/lib/admin-config.js +130 -0
- package/dist/lib/admin-config.js.map +1 -0
- package/dist/lib/pm2-utils.d.ts +71 -0
- package/dist/lib/pm2-utils.d.ts.map +1 -0
- package/dist/lib/pm2-utils.js +155 -0
- package/dist/lib/pm2-utils.js.map +1 -0
- package/dist/lib/prompts/ip-select.d.ts +25 -0
- package/dist/lib/prompts/ip-select.d.ts.map +1 -0
- package/dist/lib/prompts/ip-select.js +255 -0
- package/dist/lib/prompts/ip-select.js.map +1 -0
- package/dist/lib/shell.d.ts +2 -0
- package/dist/lib/shell.d.ts.map +1 -1
- package/dist/lib/shell.js +7 -4
- package/dist/lib/shell.js.map +1 -1
- package/dist/lib/sudo-utils.d.ts +14 -0
- package/dist/lib/sudo-utils.d.ts.map +1 -0
- package/dist/lib/sudo-utils.js +53 -0
- package/dist/lib/sudo-utils.js.map +1 -0
- package/package.json +8 -2
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PM2 Utility Functions
|
|
3
|
+
*
|
|
4
|
+
* Helper functions for PM2 operations including:
|
|
5
|
+
* - PM2 installation check
|
|
6
|
+
* - PM2 connection management
|
|
7
|
+
* - Ecosystem config path resolution
|
|
8
|
+
*/
|
|
9
|
+
import { Paths } from '@minecraft-docker/shared';
|
|
10
|
+
/**
|
|
11
|
+
* Default ecosystem config filename
|
|
12
|
+
*/
|
|
13
|
+
export declare const ECOSYSTEM_CONFIG_FILE = "ecosystem.config.cjs";
|
|
14
|
+
/**
|
|
15
|
+
* PM2 service names
|
|
16
|
+
*/
|
|
17
|
+
export declare const PM2_SERVICE_NAMES: {
|
|
18
|
+
readonly API: "mcctl-api";
|
|
19
|
+
readonly CONSOLE: "mcctl-console";
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Check if PM2 is installed (globally or as a dependency)
|
|
23
|
+
* @returns Object with installation status and version
|
|
24
|
+
*/
|
|
25
|
+
export declare function checkPm2Installation(): {
|
|
26
|
+
installed: boolean;
|
|
27
|
+
path?: string;
|
|
28
|
+
version?: string;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Get the ecosystem config path for the given platform
|
|
32
|
+
* @param paths - Paths instance
|
|
33
|
+
* @returns Absolute path to ecosystem.config.cjs
|
|
34
|
+
*/
|
|
35
|
+
export declare function getEcosystemConfigPath(paths: Paths): string;
|
|
36
|
+
/**
|
|
37
|
+
* Check if ecosystem config exists
|
|
38
|
+
* @param paths - Paths instance
|
|
39
|
+
* @returns true if config exists
|
|
40
|
+
*/
|
|
41
|
+
export declare function ecosystemConfigExists(paths: Paths): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Get PM2 log file paths for a service
|
|
44
|
+
* @param paths - Paths instance
|
|
45
|
+
* @param serviceName - Service name
|
|
46
|
+
* @returns Object with output and error log paths
|
|
47
|
+
*/
|
|
48
|
+
export declare function getPm2LogPaths(paths: Paths, serviceName: string): {
|
|
49
|
+
output: string;
|
|
50
|
+
error: string;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Read log file content
|
|
54
|
+
* @param logPath - Path to log file
|
|
55
|
+
* @param lines - Number of lines to read (default: 100)
|
|
56
|
+
* @returns Log content
|
|
57
|
+
*/
|
|
58
|
+
export declare function readLogFile(logPath: string, lines?: number): string;
|
|
59
|
+
/**
|
|
60
|
+
* Format PM2 error for user-friendly display
|
|
61
|
+
* @param error - Error object
|
|
62
|
+
* @returns Formatted error message
|
|
63
|
+
*/
|
|
64
|
+
export declare function formatPm2Error(error: unknown): string;
|
|
65
|
+
/**
|
|
66
|
+
* Parse PM2 status to our ServiceStatusEnum
|
|
67
|
+
* @param pm2Status - PM2 process status string
|
|
68
|
+
* @returns Normalized status string
|
|
69
|
+
*/
|
|
70
|
+
export declare function normalizePm2Status(pm2Status: string): string;
|
|
71
|
+
//# sourceMappingURL=pm2-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pm2-utils.d.ts","sourceRoot":"","sources":["../../src/lib/pm2-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,qBAAqB,yBAAyB,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAmC9F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,GAClB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAMnC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY,GAAG,MAAM,CAaxE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAerD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAmB5D"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PM2 Utility Functions
|
|
3
|
+
*
|
|
4
|
+
* Helper functions for PM2 operations including:
|
|
5
|
+
* - PM2 installation check
|
|
6
|
+
* - PM2 connection management
|
|
7
|
+
* - Ecosystem config path resolution
|
|
8
|
+
*/
|
|
9
|
+
import { spawnSync } from 'node:child_process';
|
|
10
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
11
|
+
import { join } from 'node:path';
|
|
12
|
+
/**
|
|
13
|
+
* Default ecosystem config filename
|
|
14
|
+
*/
|
|
15
|
+
export const ECOSYSTEM_CONFIG_FILE = 'ecosystem.config.cjs';
|
|
16
|
+
/**
|
|
17
|
+
* PM2 service names
|
|
18
|
+
*/
|
|
19
|
+
export const PM2_SERVICE_NAMES = {
|
|
20
|
+
API: 'mcctl-api',
|
|
21
|
+
CONSOLE: 'mcctl-console',
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Check if PM2 is installed (globally or as a dependency)
|
|
25
|
+
* @returns Object with installation status and version
|
|
26
|
+
*/
|
|
27
|
+
export function checkPm2Installation() {
|
|
28
|
+
// First check if pm2 is available in PATH (global installation)
|
|
29
|
+
const globalResult = spawnSync('which', ['pm2'], {
|
|
30
|
+
encoding: 'utf-8',
|
|
31
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
32
|
+
});
|
|
33
|
+
if (globalResult.status === 0 && globalResult.stdout) {
|
|
34
|
+
const pm2Path = globalResult.stdout.trim();
|
|
35
|
+
// Get version
|
|
36
|
+
const versionResult = spawnSync('pm2', ['--version'], {
|
|
37
|
+
encoding: 'utf-8',
|
|
38
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
39
|
+
});
|
|
40
|
+
return {
|
|
41
|
+
installed: true,
|
|
42
|
+
path: pm2Path,
|
|
43
|
+
version: versionResult.status === 0 ? versionResult.stdout.trim() : undefined,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
// Check if pm2 module can be imported (local installation via npm)
|
|
47
|
+
// The pm2 programmatic API works without global installation
|
|
48
|
+
try {
|
|
49
|
+
// We already have pm2 as a dependency, so it's always available
|
|
50
|
+
// Just return true - the actual PM2 operations will work via the API
|
|
51
|
+
return {
|
|
52
|
+
installed: true,
|
|
53
|
+
version: 'local',
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return { installed: false };
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get the ecosystem config path for the given platform
|
|
62
|
+
* @param paths - Paths instance
|
|
63
|
+
* @returns Absolute path to ecosystem.config.cjs
|
|
64
|
+
*/
|
|
65
|
+
export function getEcosystemConfigPath(paths) {
|
|
66
|
+
return join(paths.platform, ECOSYSTEM_CONFIG_FILE);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Check if ecosystem config exists
|
|
70
|
+
* @param paths - Paths instance
|
|
71
|
+
* @returns true if config exists
|
|
72
|
+
*/
|
|
73
|
+
export function ecosystemConfigExists(paths) {
|
|
74
|
+
return existsSync(getEcosystemConfigPath(paths));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get PM2 log file paths for a service
|
|
78
|
+
* @param paths - Paths instance
|
|
79
|
+
* @param serviceName - Service name
|
|
80
|
+
* @returns Object with output and error log paths
|
|
81
|
+
*/
|
|
82
|
+
export function getPm2LogPaths(paths, serviceName) {
|
|
83
|
+
const logsDir = join(paths.platform, 'logs');
|
|
84
|
+
return {
|
|
85
|
+
output: join(logsDir, `${serviceName}-out.log`),
|
|
86
|
+
error: join(logsDir, `${serviceName}-error.log`),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Read log file content
|
|
91
|
+
* @param logPath - Path to log file
|
|
92
|
+
* @param lines - Number of lines to read (default: 100)
|
|
93
|
+
* @returns Log content
|
|
94
|
+
*/
|
|
95
|
+
export function readLogFile(logPath, lines = 100) {
|
|
96
|
+
if (!existsSync(logPath)) {
|
|
97
|
+
return '';
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
const content = readFileSync(logPath, 'utf-8');
|
|
101
|
+
const allLines = content.split('\n');
|
|
102
|
+
const startIndex = Math.max(0, allLines.length - lines);
|
|
103
|
+
return allLines.slice(startIndex).join('\n');
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return '';
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Format PM2 error for user-friendly display
|
|
111
|
+
* @param error - Error object
|
|
112
|
+
* @returns Formatted error message
|
|
113
|
+
*/
|
|
114
|
+
export function formatPm2Error(error) {
|
|
115
|
+
if (error instanceof Error) {
|
|
116
|
+
// Common PM2 errors
|
|
117
|
+
if (error.message.includes('ENOENT')) {
|
|
118
|
+
return 'PM2 or the specified script was not found';
|
|
119
|
+
}
|
|
120
|
+
if (error.message.includes('EACCES')) {
|
|
121
|
+
return 'Permission denied. Try running with elevated privileges';
|
|
122
|
+
}
|
|
123
|
+
if (error.message.includes('ECONNREFUSED')) {
|
|
124
|
+
return 'Could not connect to PM2 daemon. It may not be running';
|
|
125
|
+
}
|
|
126
|
+
return error.message;
|
|
127
|
+
}
|
|
128
|
+
return String(error);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Parse PM2 status to our ServiceStatusEnum
|
|
132
|
+
* @param pm2Status - PM2 process status string
|
|
133
|
+
* @returns Normalized status string
|
|
134
|
+
*/
|
|
135
|
+
export function normalizePm2Status(pm2Status) {
|
|
136
|
+
switch (pm2Status) {
|
|
137
|
+
case 'online':
|
|
138
|
+
return 'online';
|
|
139
|
+
case 'stopping':
|
|
140
|
+
return 'stopping';
|
|
141
|
+
case 'stopped':
|
|
142
|
+
return 'stopped';
|
|
143
|
+
case 'errored':
|
|
144
|
+
return 'errored';
|
|
145
|
+
case 'launching':
|
|
146
|
+
return 'online'; // Treat launching as online for simplicity
|
|
147
|
+
case 'waiting_restart':
|
|
148
|
+
return 'stopping'; // Treat waiting_restart as stopping
|
|
149
|
+
case 'one-launch-status':
|
|
150
|
+
return 'one-launch-status';
|
|
151
|
+
default:
|
|
152
|
+
return 'stopped';
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=pm2-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pm2-utils.js","sourceRoot":"","sources":["../../src/lib/pm2-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IP address selection prompt component
|
|
3
|
+
* Allows user to select host IP(s) for server hostname routing
|
|
4
|
+
*/
|
|
5
|
+
export interface NetworkInterface {
|
|
6
|
+
name: string;
|
|
7
|
+
address: string;
|
|
8
|
+
family: 'IPv4' | 'IPv6';
|
|
9
|
+
internal: boolean;
|
|
10
|
+
cidr: string | null;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get all IPv4 addresses from network interfaces
|
|
14
|
+
*/
|
|
15
|
+
export declare function getNetworkInterfaces(): NetworkInterface[];
|
|
16
|
+
/**
|
|
17
|
+
* Prompt user to select IP addresses for server hostname routing
|
|
18
|
+
* Returns selected IPs as comma-separated string, or null if cancelled
|
|
19
|
+
*/
|
|
20
|
+
export declare function selectHostIPs(): Promise<string | null>;
|
|
21
|
+
/**
|
|
22
|
+
* Prompt for single IP selection (simpler version)
|
|
23
|
+
*/
|
|
24
|
+
export declare function selectSingleIP(): Promise<string | null>;
|
|
25
|
+
//# sourceMappingURL=ip-select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ip-select.d.ts","sourceRoot":"","sources":["../../../src/lib/prompts/ip-select.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,EAAE,CAsBzD;AAuED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+F5D;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0E7D"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IP address selection prompt component
|
|
3
|
+
* Allows user to select host IP(s) for server hostname routing
|
|
4
|
+
*/
|
|
5
|
+
import { select, multiselect, text, isCancel } from '@clack/prompts';
|
|
6
|
+
import { networkInterfaces } from 'node:os';
|
|
7
|
+
import { colors } from '@minecraft-docker/shared';
|
|
8
|
+
/**
|
|
9
|
+
* Get all IPv4 addresses from network interfaces
|
|
10
|
+
*/
|
|
11
|
+
export function getNetworkInterfaces() {
|
|
12
|
+
const interfaces = networkInterfaces();
|
|
13
|
+
const result = [];
|
|
14
|
+
for (const [name, addrs] of Object.entries(interfaces)) {
|
|
15
|
+
if (!addrs)
|
|
16
|
+
continue;
|
|
17
|
+
for (const addr of addrs) {
|
|
18
|
+
// Only IPv4 and non-internal addresses
|
|
19
|
+
if (addr.family === 'IPv4' && !addr.internal) {
|
|
20
|
+
result.push({
|
|
21
|
+
name,
|
|
22
|
+
address: addr.address,
|
|
23
|
+
family: 'IPv4',
|
|
24
|
+
internal: addr.internal,
|
|
25
|
+
cidr: addr.cidr,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Detect interface type from name and IP range
|
|
34
|
+
*/
|
|
35
|
+
function detectInterfaceType(iface) {
|
|
36
|
+
const { name, address } = iface;
|
|
37
|
+
const nameLower = name.toLowerCase();
|
|
38
|
+
// VPN detection by interface name
|
|
39
|
+
if (nameLower.includes('tailscale') || nameLower.startsWith('tailscale')) {
|
|
40
|
+
return 'Tailscale VPN';
|
|
41
|
+
}
|
|
42
|
+
if (nameLower.includes('nordlynx') || nameLower.startsWith('nordlynx')) {
|
|
43
|
+
return 'NordVPN Meshnet';
|
|
44
|
+
}
|
|
45
|
+
if (nameLower.includes('nordtun') || nameLower.startsWith('nordtun')) {
|
|
46
|
+
return 'NordVPN';
|
|
47
|
+
}
|
|
48
|
+
if (nameLower.includes('zt') || nameLower.startsWith('zt')) {
|
|
49
|
+
return 'ZeroTier VPN';
|
|
50
|
+
}
|
|
51
|
+
if (nameLower.includes('wg') || nameLower.startsWith('wg')) {
|
|
52
|
+
return 'WireGuard VPN';
|
|
53
|
+
}
|
|
54
|
+
if (nameLower.includes('tun') || nameLower.includes('tap')) {
|
|
55
|
+
return 'VPN Tunnel';
|
|
56
|
+
}
|
|
57
|
+
if (nameLower.includes('nebula')) {
|
|
58
|
+
return 'Nebula VPN';
|
|
59
|
+
}
|
|
60
|
+
// IP range detection for VPNs (100.64.0.0/10 = CGNAT range used by mesh VPNs)
|
|
61
|
+
if (address.startsWith('100.')) {
|
|
62
|
+
// 100.64.0.0 - 100.127.255.255 is CGNAT range
|
|
63
|
+
const secondOctet = parseInt(address.split('.')[1] || '0', 10);
|
|
64
|
+
if (secondOctet >= 64 && secondOctet <= 127) {
|
|
65
|
+
// Could be Tailscale (100.x.x.x) or NordVPN Meshnet (100.64.0.0/10)
|
|
66
|
+
// Check interface name for more specific detection
|
|
67
|
+
if (nameLower.includes('nord')) {
|
|
68
|
+
return 'NordVPN Meshnet';
|
|
69
|
+
}
|
|
70
|
+
return 'Tailscale VPN';
|
|
71
|
+
}
|
|
72
|
+
// Other 100.x.x.x ranges - likely Tailscale
|
|
73
|
+
return 'Tailscale VPN';
|
|
74
|
+
}
|
|
75
|
+
if (address.startsWith('10.147.') || address.startsWith('10.144.')) {
|
|
76
|
+
return 'ZeroTier VPN'; // ZeroTier common ranges
|
|
77
|
+
}
|
|
78
|
+
// Standard interface types
|
|
79
|
+
if (nameLower.includes('docker') || nameLower.startsWith('br-')) {
|
|
80
|
+
return 'Docker Network';
|
|
81
|
+
}
|
|
82
|
+
if (nameLower.includes('veth')) {
|
|
83
|
+
return 'Container';
|
|
84
|
+
}
|
|
85
|
+
if (nameLower.startsWith('eth') || nameLower.startsWith('en')) {
|
|
86
|
+
return 'Ethernet';
|
|
87
|
+
}
|
|
88
|
+
if (nameLower.startsWith('wl') || nameLower.includes('wifi') || nameLower.includes('wlan')) {
|
|
89
|
+
return 'WiFi';
|
|
90
|
+
}
|
|
91
|
+
if (nameLower.startsWith('virbr')) {
|
|
92
|
+
return 'Virtual Bridge';
|
|
93
|
+
}
|
|
94
|
+
return 'Network';
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Prompt user to select IP addresses for server hostname routing
|
|
98
|
+
* Returns selected IPs as comma-separated string, or null if cancelled
|
|
99
|
+
*/
|
|
100
|
+
export async function selectHostIPs() {
|
|
101
|
+
const interfaces = getNetworkInterfaces();
|
|
102
|
+
// Filter out Docker/container interfaces by default
|
|
103
|
+
const relevantInterfaces = interfaces.filter(iface => {
|
|
104
|
+
const name = iface.name.toLowerCase();
|
|
105
|
+
return !name.includes('docker') &&
|
|
106
|
+
!name.startsWith('br-') &&
|
|
107
|
+
!name.includes('veth') &&
|
|
108
|
+
!name.startsWith('virbr');
|
|
109
|
+
});
|
|
110
|
+
if (relevantInterfaces.length === 0) {
|
|
111
|
+
// No interfaces found, prompt for manual input
|
|
112
|
+
const manualInput = await text({
|
|
113
|
+
message: 'No network interfaces detected. Enter IP address manually:',
|
|
114
|
+
placeholder: '192.168.1.100',
|
|
115
|
+
validate: (value) => {
|
|
116
|
+
if (!value)
|
|
117
|
+
return 'IP address is required';
|
|
118
|
+
// Basic IPv4 validation
|
|
119
|
+
const ipv4Regex = /^(\d{1,3}\.){3}\d{1,3}$/;
|
|
120
|
+
if (!ipv4Regex.test(value))
|
|
121
|
+
return 'Invalid IPv4 address format';
|
|
122
|
+
return undefined;
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
if (isCancel(manualInput)) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
return manualInput;
|
|
129
|
+
}
|
|
130
|
+
// Build options for multiselect
|
|
131
|
+
const options = relevantInterfaces.map(iface => {
|
|
132
|
+
const type = detectInterfaceType(iface);
|
|
133
|
+
const isVPN = type.includes('VPN');
|
|
134
|
+
const isMain = type === 'Ethernet' || type === 'WiFi';
|
|
135
|
+
return {
|
|
136
|
+
value: iface.address,
|
|
137
|
+
label: `${iface.address}`,
|
|
138
|
+
hint: `${iface.name} (${type})${isMain ? ' - recommended' : ''}${isVPN ? colors.cyan(' VPN') : ''}`,
|
|
139
|
+
};
|
|
140
|
+
});
|
|
141
|
+
// Add manual input option
|
|
142
|
+
options.push({
|
|
143
|
+
value: '__manual__',
|
|
144
|
+
label: 'Enter manually...',
|
|
145
|
+
hint: 'Type an IP address not listed above',
|
|
146
|
+
});
|
|
147
|
+
console.log('');
|
|
148
|
+
console.log(colors.dim(' Select one or more IPs for server hostname routing.'));
|
|
149
|
+
console.log(colors.dim(' Each IP will generate a nip.io hostname (e.g., server.IP.nip.io)'));
|
|
150
|
+
console.log('');
|
|
151
|
+
const selected = await multiselect({
|
|
152
|
+
message: 'Select host IP address(es):',
|
|
153
|
+
options,
|
|
154
|
+
required: true,
|
|
155
|
+
});
|
|
156
|
+
if (isCancel(selected)) {
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
const selectedIPs = selected;
|
|
160
|
+
// Handle manual input if selected
|
|
161
|
+
if (selectedIPs.includes('__manual__')) {
|
|
162
|
+
const manualInput = await text({
|
|
163
|
+
message: 'Enter additional IP address:',
|
|
164
|
+
placeholder: '100.64.0.5',
|
|
165
|
+
validate: (value) => {
|
|
166
|
+
if (!value)
|
|
167
|
+
return 'IP address is required';
|
|
168
|
+
const ipv4Regex = /^(\d{1,3}\.){3}\d{1,3}$/;
|
|
169
|
+
if (!ipv4Regex.test(value))
|
|
170
|
+
return 'Invalid IPv4 address format';
|
|
171
|
+
return undefined;
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
if (isCancel(manualInput)) {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
// Replace __manual__ with actual IP
|
|
178
|
+
const idx = selectedIPs.indexOf('__manual__');
|
|
179
|
+
selectedIPs[idx] = manualInput;
|
|
180
|
+
}
|
|
181
|
+
// Remove duplicates and return
|
|
182
|
+
const uniqueIPs = [...new Set(selectedIPs)];
|
|
183
|
+
return uniqueIPs.join(',');
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Prompt for single IP selection (simpler version)
|
|
187
|
+
*/
|
|
188
|
+
export async function selectSingleIP() {
|
|
189
|
+
const interfaces = getNetworkInterfaces();
|
|
190
|
+
const relevantInterfaces = interfaces.filter(iface => {
|
|
191
|
+
const name = iface.name.toLowerCase();
|
|
192
|
+
return !name.includes('docker') &&
|
|
193
|
+
!name.startsWith('br-') &&
|
|
194
|
+
!name.includes('veth') &&
|
|
195
|
+
!name.startsWith('virbr');
|
|
196
|
+
});
|
|
197
|
+
if (relevantInterfaces.length === 0) {
|
|
198
|
+
const manualInput = await text({
|
|
199
|
+
message: 'Enter host IP address:',
|
|
200
|
+
placeholder: '192.168.1.100',
|
|
201
|
+
validate: (value) => {
|
|
202
|
+
if (!value)
|
|
203
|
+
return 'IP address is required';
|
|
204
|
+
const ipv4Regex = /^(\d{1,3}\.){3}\d{1,3}$/;
|
|
205
|
+
if (!ipv4Regex.test(value))
|
|
206
|
+
return 'Invalid IPv4 address format';
|
|
207
|
+
return undefined;
|
|
208
|
+
},
|
|
209
|
+
});
|
|
210
|
+
if (isCancel(manualInput)) {
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
return manualInput;
|
|
214
|
+
}
|
|
215
|
+
const options = relevantInterfaces.map(iface => {
|
|
216
|
+
const type = detectInterfaceType(iface);
|
|
217
|
+
return {
|
|
218
|
+
value: iface.address,
|
|
219
|
+
label: `${iface.address}`,
|
|
220
|
+
hint: `${iface.name} (${type})`,
|
|
221
|
+
};
|
|
222
|
+
});
|
|
223
|
+
options.push({
|
|
224
|
+
value: '__manual__',
|
|
225
|
+
label: 'Enter manually...',
|
|
226
|
+
hint: 'Type an IP address',
|
|
227
|
+
});
|
|
228
|
+
const selected = await select({
|
|
229
|
+
message: 'Select host IP address:',
|
|
230
|
+
options,
|
|
231
|
+
});
|
|
232
|
+
if (isCancel(selected)) {
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
235
|
+
if (selected === '__manual__') {
|
|
236
|
+
const manualInput = await text({
|
|
237
|
+
message: 'Enter IP address:',
|
|
238
|
+
placeholder: '192.168.1.100',
|
|
239
|
+
validate: (value) => {
|
|
240
|
+
if (!value)
|
|
241
|
+
return 'IP address is required';
|
|
242
|
+
const ipv4Regex = /^(\d{1,3}\.){3}\d{1,3}$/;
|
|
243
|
+
if (!ipv4Regex.test(value))
|
|
244
|
+
return 'Invalid IPv4 address format';
|
|
245
|
+
return undefined;
|
|
246
|
+
},
|
|
247
|
+
});
|
|
248
|
+
if (isCancel(manualInput)) {
|
|
249
|
+
return null;
|
|
250
|
+
}
|
|
251
|
+
return manualInput;
|
|
252
|
+
}
|
|
253
|
+
return selected;
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=ip-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ip-select.js","sourceRoot":"","sources":["../../../src/lib/prompts/ip-select.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/shell.d.ts
CHANGED
|
@@ -87,10 +87,12 @@ export declare class ShellExecutor {
|
|
|
87
87
|
down(): Promise<number>;
|
|
88
88
|
/**
|
|
89
89
|
* Start all Minecraft servers (not router)
|
|
90
|
+
* Uses docker compose up to create containers if they don't exist
|
|
90
91
|
*/
|
|
91
92
|
startAll(): Promise<number>;
|
|
92
93
|
/**
|
|
93
94
|
* Stop all Minecraft servers (not router)
|
|
95
|
+
* Uses docker compose stop for consistency
|
|
94
96
|
*/
|
|
95
97
|
stopAll(): Promise<number>;
|
|
96
98
|
/**
|
package/dist/lib/shell.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/lib/shell.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAA0C,MAAM,0BAA0B,CAAC;AAEzF,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAyB;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;gBAE3B,cAAc,CAAC,EAAE,KAAK,GAAG,oBAAoB;IAczD,OAAO,CAAC,QAAQ;IAkBhB;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAQhE;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAO3E;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5C;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzE;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzE;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAInE;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3C;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7C;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7C;;OAEG;IACG,YAAY,CAAC,OAAO,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3D;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBpD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKrC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IA0BzD;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAiCrE;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBlE;;OAEG;IACG,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC;IAK3B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAkB7B
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/lib/shell.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAA0C,MAAM,0BAA0B,CAAC;AAEzF,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAyB;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;gBAE3B,cAAc,CAAC,EAAE,KAAK,GAAG,oBAAoB;IAczD,OAAO,CAAC,QAAQ;IAkBhB;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAQhE;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAO3E;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5C;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzE;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzE;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAInE;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3C;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7C;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7C;;OAEG;IACG,YAAY,CAAC,OAAO,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3D;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBpD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKrC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IA0BzD;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAiCrE;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBlE;;OAEG;IACG,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC;IAK3B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAkB7B;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAwBjC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAuBhC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAKpC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAKnC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;CAIvC"}
|
package/dist/lib/shell.js
CHANGED
|
@@ -249,13 +249,15 @@ export class ShellExecutor {
|
|
|
249
249
|
}
|
|
250
250
|
/**
|
|
251
251
|
* Start all Minecraft servers (not router)
|
|
252
|
+
* Uses docker compose up to create containers if they don't exist
|
|
252
253
|
*/
|
|
253
254
|
async startAll() {
|
|
254
255
|
log.info('Starting all Minecraft servers...');
|
|
255
|
-
//
|
|
256
|
+
// Get all mc-* services from compose config and start them
|
|
257
|
+
// This works even if containers haven't been created yet
|
|
256
258
|
return new Promise((resolve) => {
|
|
257
259
|
const child = spawn('sh', ['-c',
|
|
258
|
-
'docker
|
|
260
|
+
'docker compose config --services | grep "^mc-" | xargs -r docker compose up -d'
|
|
259
261
|
], {
|
|
260
262
|
cwd: this.paths.root,
|
|
261
263
|
stdio: 'inherit',
|
|
@@ -272,13 +274,14 @@ export class ShellExecutor {
|
|
|
272
274
|
}
|
|
273
275
|
/**
|
|
274
276
|
* Stop all Minecraft servers (not router)
|
|
277
|
+
* Uses docker compose stop for consistency
|
|
275
278
|
*/
|
|
276
279
|
async stopAll() {
|
|
277
280
|
log.info('Stopping all Minecraft servers...');
|
|
278
|
-
//
|
|
281
|
+
// Get all mc-* services from compose config and stop them
|
|
279
282
|
return new Promise((resolve) => {
|
|
280
283
|
const child = spawn('sh', ['-c',
|
|
281
|
-
'docker
|
|
284
|
+
'docker compose config --services | grep "^mc-" | xargs -r docker compose stop'
|
|
282
285
|
], {
|
|
283
286
|
cwd: this.paths.root,
|
|
284
287
|
stdio: 'inherit',
|
package/dist/lib/shell.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/lib/shell.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/lib/shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if avahi-daemon is installed and configured
|
|
3
|
+
*/
|
|
4
|
+
export declare function isAvahiInstalled(): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Check if sudo password is available (from env or provided)
|
|
7
|
+
*/
|
|
8
|
+
export declare function hasSudoPassword(sudoPassword?: string): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Prompt for sudo password if avahi is installed and password not provided
|
|
11
|
+
* Returns the password (from prompt, option, or env) or undefined if not needed
|
|
12
|
+
*/
|
|
13
|
+
export declare function promptSudoPasswordIfNeeded(sudoPassword?: string): Promise<string | undefined>;
|
|
14
|
+
//# sourceMappingURL=sudo-utils.d.ts.map
|