clawsql 0.1.2 → 0.1.3
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/app.js +2 -2
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +38 -12
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/utils/docker-prereq.d.ts +13 -0
- package/dist/cli/utils/docker-prereq.d.ts.map +1 -1
- package/dist/cli/utils/docker-prereq.js +107 -0
- package/dist/cli/utils/docker-prereq.js.map +1 -1
- package/dist/config/settings.js +1 -1
- package/docker/Dockerfile.allinone +117 -0
- package/docker/entrypoint-allinone.sh +59 -0
- package/docker/supervisord.conf +51 -0
- package/docker-compose.allinone.yml +66 -0
- package/docker-compose.demo.yml +1 -1
- package/docker-compose.yml +6 -5
- package/package.json +2 -1
package/dist/app.js
CHANGED
|
@@ -90,7 +90,7 @@ ClawSQL provides comprehensive automation for MySQL cluster management:
|
|
|
90
90
|
- Prometheus for metrics collection
|
|
91
91
|
- Grafana for visualization
|
|
92
92
|
`,
|
|
93
|
-
version: '0.1.
|
|
93
|
+
version: '0.1.3',
|
|
94
94
|
},
|
|
95
95
|
servers: [
|
|
96
96
|
{ url: '/', description: 'Current server' },
|
|
@@ -115,7 +115,7 @@ ClawSQL provides comprehensive automation for MySQL cluster management:
|
|
|
115
115
|
fastify.get('/', async () => {
|
|
116
116
|
return {
|
|
117
117
|
name: 'ClawSQL',
|
|
118
|
-
version: '0.1.
|
|
118
|
+
version: '0.1.3',
|
|
119
119
|
description: 'MySQL Cluster Automation and Operations Management',
|
|
120
120
|
docs: '/docs',
|
|
121
121
|
health: '/health',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAc,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAc,MAAM,gBAAgB,CAAC;AAYrD;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,OAmJ1B,CAAC;AA4EF,eAAe,YAAY,CAAC"}
|
|
@@ -23,7 +23,14 @@ exports.startCommand = {
|
|
|
23
23
|
handler: async (args, ctx) => {
|
|
24
24
|
const formatter = ctx.formatter;
|
|
25
25
|
const demoMode = args.includes('--demo');
|
|
26
|
+
const allInOneMode = args.includes('--allinone');
|
|
27
|
+
// Parse --registry flag
|
|
28
|
+
const registryIndex = args.indexOf('--registry');
|
|
29
|
+
const registryMirror = registryIndex !== -1 && args[registryIndex + 1] ? args[registryIndex + 1] : null;
|
|
26
30
|
console.log(formatter.header('Starting ClawSQL Platform'));
|
|
31
|
+
if (allInOneMode) {
|
|
32
|
+
console.log(formatter.info('Using all-in-one container mode'));
|
|
33
|
+
}
|
|
27
34
|
// Check Docker prerequisites
|
|
28
35
|
const dockerInfo = await (0, docker_prereq_js_1.checkDockerPrerequisites)();
|
|
29
36
|
if (!dockerInfo.runtime) {
|
|
@@ -43,6 +50,19 @@ exports.startCommand = {
|
|
|
43
50
|
}
|
|
44
51
|
console.log(formatter.keyValue('Runtime', `${dockerInfo.runtime} ${dockerInfo.version}`));
|
|
45
52
|
console.log(formatter.keyValue('Compose', dockerInfo.composeCommand.join(' ')));
|
|
53
|
+
// Configure registry mirror if specified
|
|
54
|
+
if (registryMirror && dockerInfo.runtime) {
|
|
55
|
+
const mirror = docker_prereq_js_1.REGISTRY_MIRRORS[registryMirror] || registryMirror;
|
|
56
|
+
console.log(formatter.info(`Configuring registry mirror: ${mirror}`));
|
|
57
|
+
const configured = await (0, docker_prereq_js_1.configureRegistryMirror)(dockerInfo.runtime, mirror);
|
|
58
|
+
if (configured) {
|
|
59
|
+
console.log(formatter.success('Registry mirror configured'));
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
console.log(formatter.error('Failed to configure registry mirror'));
|
|
63
|
+
console.log(formatter.info('You may need to run with sudo or configure manually'));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
46
66
|
// Ensure Docker files are extracted
|
|
47
67
|
let dockerPath;
|
|
48
68
|
try {
|
|
@@ -59,25 +79,31 @@ exports.startCommand = {
|
|
|
59
79
|
const composeArgs = [];
|
|
60
80
|
const composeEnv = {};
|
|
61
81
|
const isPodmanCompose = dockerInfo.composeCommand[0] === 'podman-compose';
|
|
62
|
-
//
|
|
63
|
-
if (
|
|
82
|
+
// Select compose file based on mode
|
|
83
|
+
if (allInOneMode) {
|
|
84
|
+
composeArgs.push('-f', 'docker-compose.allinone.yml');
|
|
85
|
+
console.log(formatter.info('Starting all-in-one container...'));
|
|
86
|
+
}
|
|
87
|
+
else if (demoMode) {
|
|
64
88
|
composeArgs.push('-f', 'docker-compose.yml', '-f', 'docker-compose.demo.yml');
|
|
65
89
|
console.log(formatter.info('Starting with demo MySQL cluster...'));
|
|
66
90
|
}
|
|
67
91
|
else {
|
|
68
92
|
console.log(formatter.info('Starting platform services (bring your own MySQL)...'));
|
|
69
93
|
}
|
|
70
|
-
// Add metadata profile if no external DB configured
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
94
|
+
// Add metadata profile if no external DB configured (not for all-in-one)
|
|
95
|
+
if (!allInOneMode) {
|
|
96
|
+
const metadataDbHost = process.env.METADATA_DB_HOST;
|
|
97
|
+
if (!metadataDbHost) {
|
|
98
|
+
// podman-compose doesn't support --profile flag, use environment variable instead
|
|
99
|
+
if (isPodmanCompose) {
|
|
100
|
+
composeEnv.COMPOSE_PROFILES = 'metadata';
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
composeArgs.push('--profile', 'metadata');
|
|
104
|
+
}
|
|
105
|
+
console.log(formatter.info('Auto-provisioning metadata database...'));
|
|
79
106
|
}
|
|
80
|
-
console.log(formatter.info('Auto-provisioning metadata database...'));
|
|
81
107
|
}
|
|
82
108
|
// Add up command
|
|
83
109
|
composeArgs.push('up', '-d');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAGH,kDAA0B;AAC1B,iDAAsC;AACtC,8DAA4E;AAC5E,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,19 @@
|
|
|
4
4
|
* Detects and validates Docker/container runtime prerequisites.
|
|
5
5
|
* Consolidates Docker detection logic used across multiple commands.
|
|
6
6
|
*/
|
|
7
|
+
/**
|
|
8
|
+
* Known registry mirrors for different regions
|
|
9
|
+
*/
|
|
10
|
+
export declare const REGISTRY_MIRRORS: {
|
|
11
|
+
china: string;
|
|
12
|
+
aliyun: string;
|
|
13
|
+
ustc: string;
|
|
14
|
+
tencent: string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Configure registry mirror for podman
|
|
18
|
+
*/
|
|
19
|
+
export declare function configureRegistryMirror(runtime: 'docker' | 'podman', mirror: string): Promise<boolean>;
|
|
7
20
|
/**
|
|
8
21
|
* Docker runtime information
|
|
9
22
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker-prereq.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/docker-prereq.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"docker-prereq.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/docker-prereq.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;CAK5B,CAAC;AAEF;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,QAAQ,GAAG,QAAQ,EAC5B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CA2DlB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IACpC,mFAAmF;IACnF,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,aAAa,EAAE,OAAO,CAAC;CACxB;AA6CD;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,CAsBzE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAC3B,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAoC1B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CASrF;AAED;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,UAAU,CAAC,CAwBpE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,CAcrF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAgBjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAYzD"}
|
|
@@ -5,7 +5,42 @@
|
|
|
5
5
|
* Detects and validates Docker/container runtime prerequisites.
|
|
6
6
|
* Consolidates Docker detection logic used across multiple commands.
|
|
7
7
|
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
8
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.REGISTRY_MIRRORS = void 0;
|
|
43
|
+
exports.configureRegistryMirror = configureRegistryMirror;
|
|
9
44
|
exports.detectRuntime = detectRuntime;
|
|
10
45
|
exports.detectComposeCommand = detectComposeCommand;
|
|
11
46
|
exports.checkDaemonRunning = checkDaemonRunning;
|
|
@@ -15,6 +50,78 @@ exports.getComposeInstallGuidance = getComposeInstallGuidance;
|
|
|
15
50
|
exports.getDockerInstallGuidance = getDockerInstallGuidance;
|
|
16
51
|
exports.formatDockerInfo = formatDockerInfo;
|
|
17
52
|
const child_process_1 = require("child_process");
|
|
53
|
+
const fs = __importStar(require("fs"));
|
|
54
|
+
const path = __importStar(require("path"));
|
|
55
|
+
const os = __importStar(require("os"));
|
|
56
|
+
/**
|
|
57
|
+
* Known registry mirrors for different regions
|
|
58
|
+
*/
|
|
59
|
+
exports.REGISTRY_MIRRORS = {
|
|
60
|
+
china: 'docker.m.daocloud.io',
|
|
61
|
+
aliyun: 'registry.cn-hangzhou.aliyuncs.com',
|
|
62
|
+
ustc: 'docker.mirrors.ustc.edu.cn',
|
|
63
|
+
tencent: 'mirror.ccs.tencentyun.com',
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Configure registry mirror for podman
|
|
67
|
+
*/
|
|
68
|
+
async function configureRegistryMirror(runtime, mirror) {
|
|
69
|
+
if (runtime === 'podman') {
|
|
70
|
+
// Try user-level config first
|
|
71
|
+
const userConfigDir = path.join(os.homedir(), '.config', 'containers', 'registries.conf.d');
|
|
72
|
+
const systemConfigDir = '/etc/containers/registries.conf.d';
|
|
73
|
+
const configContent = `[[registry]]
|
|
74
|
+
prefix = "docker.io"
|
|
75
|
+
location = "docker.io"
|
|
76
|
+
|
|
77
|
+
[[registry.mirror]]
|
|
78
|
+
location = "${mirror}"
|
|
79
|
+
`;
|
|
80
|
+
// Try user config first (no sudo needed)
|
|
81
|
+
try {
|
|
82
|
+
if (!fs.existsSync(userConfigDir)) {
|
|
83
|
+
fs.mkdirSync(userConfigDir, { recursive: true });
|
|
84
|
+
}
|
|
85
|
+
const userConfigFile = path.join(userConfigDir, 'clawsql-mirror.conf');
|
|
86
|
+
fs.writeFileSync(userConfigFile, configContent);
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// User config failed, try system config (may need sudo)
|
|
91
|
+
try {
|
|
92
|
+
if (!fs.existsSync(systemConfigDir)) {
|
|
93
|
+
fs.mkdirSync(systemConfigDir, { recursive: true });
|
|
94
|
+
}
|
|
95
|
+
const systemConfigFile = path.join(systemConfigDir, 'clawsql-mirror.conf');
|
|
96
|
+
fs.writeFileSync(systemConfigFile, configContent);
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// For Docker, configure daemon.json
|
|
105
|
+
if (runtime === 'docker') {
|
|
106
|
+
const daemonJsonPath = '/etc/docker/daemon.json';
|
|
107
|
+
try {
|
|
108
|
+
let existingConfig = {};
|
|
109
|
+
if (fs.existsSync(daemonJsonPath)) {
|
|
110
|
+
const existing = fs.readFileSync(daemonJsonPath, 'utf-8');
|
|
111
|
+
existingConfig = JSON.parse(existing);
|
|
112
|
+
}
|
|
113
|
+
existingConfig['registry-mirrors'] = [mirror];
|
|
114
|
+
fs.writeFileSync(daemonJsonPath, JSON.stringify(existingConfig, null, 2));
|
|
115
|
+
// Restart docker to apply changes
|
|
116
|
+
console.log('Restarting Docker to apply registry mirror...');
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
18
125
|
/**
|
|
19
126
|
* Execute a shell command and return result
|
|
20
127
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker-prereq.js","sourceRoot":"","sources":["../../../src/cli/utils/docker-prereq.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"docker-prereq.js","sourceRoot":"","sources":["../../../src/cli/utils/docker-prereq.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBH,0DA8DC;AA8DD,sCAsBC;AAKD,oDAsCC;AAKD,gDAOC;AAKD,8CASC;AAKD,4DAwBC;AAKD,8DAcC;AAKD,4DAgBC;AAKD,4CAYC;AA/TD,iDAAsC;AACtC,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB;;GAEG;AACU,QAAA,gBAAgB,GAAG;IAC9B,KAAK,EAAE,sBAAsB;IAC7B,MAAM,EAAE,mCAAmC;IAC3C,IAAI,EAAE,4BAA4B;IAClC,OAAO,EAAE,2BAA2B;CACrC,CAAC;AAEF;;GAEG;AACI,KAAK,UAAU,uBAAuB,CAC3C,OAA4B,EAC5B,MAAc;IAEd,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,8BAA8B;QAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;QAC5F,MAAM,eAAe,GAAG,mCAAmC,CAAC;QAE5D,MAAM,aAAa,GAAG;;;;;cAKZ,MAAM;CACnB,CAAC;QAEE,yCAAyC;QACzC,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAClC,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;YACvE,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;YACxD,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;oBACpC,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;gBAC3E,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;gBAClD,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,yBAAyB,CAAC;QAEjD,IAAI,CAAC;YACH,IAAI,cAAc,GAA4B,EAAE,CAAC;YACjD,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;gBAC1D,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;YACD,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9C,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAE1E,kCAAkC;YAClC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAgBD;;GAEG;AACH,SAAS,WAAW,CAClB,GAAa,EACb,OAAgD;IAEhD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACvC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC3C,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,IAAI,IAAI,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,IAAI,IAAI,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,OAAO,CAAC;gBACN,OAAO,EAAE,IAAI,KAAK,CAAC;gBACnB,MAAM;gBACN,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACpB,OAAO,CAAC;gBACN,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,2BAA2B;aACpC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa;IACjC,MAAM,QAAQ,GAA+B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAElE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACrF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,qCAAqC;gBACrC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACzB,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBACnF,IAAI,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC1D,OAAO,QAAQ,CAAC;oBAClB,CAAC;gBACH,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,oBAAoB,CACxC,OAA4B;IAE5B,wCAAwC;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,WAAW;IACb,CAAC;IAED,4BAA4B;IAC5B,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACrF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAClF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB,CAAC,OAA4B;IACnE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACrF,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,iBAAiB,CAAC,OAA4B;IAClE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,wEAAwE;QACxE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,wBAAwB;IAC5C,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;IAEtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,IAAI;YACpB,OAAO,EAAE,EAAE;YACX,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,cAAc,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjE,oBAAoB,CAAC,OAAO,CAAC;QAC7B,iBAAiB,CAAC,OAAO,CAAC;QAC1B,kBAAkB,CAAC,OAAO,CAAC;KAC5B,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,cAAc;QACd,OAAO;QACP,aAAa;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB,CAAC,OAAmC;IAC3E,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO;;;8CAGmC,CAAC;IAC7C,CAAC;IAED,gCAAgC;IAChC,OAAO;;;;8DAIqD,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB;IACtC,OAAO;;;;;;;;;;;;;;sEAc6D,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,IAAgB;IAC/C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,YAAY,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;QAC1C,YAAY,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,WAAW,EAAE;QAC3D,WAAW,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE;KAC5D,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/config/settings.js
CHANGED
|
@@ -94,7 +94,7 @@ const SyncSettingsSchema = zod_1.z.object({
|
|
|
94
94
|
});
|
|
95
95
|
const SettingsSchema = zod_1.z.object({
|
|
96
96
|
appName: zod_1.z.string().default('ClawSQL'),
|
|
97
|
-
appVersion: zod_1.z.string().default('0.1.
|
|
97
|
+
appVersion: zod_1.z.string().default('0.1.3'),
|
|
98
98
|
debug: zod_1.z.boolean().default(false),
|
|
99
99
|
metadataDb: MetadataDBSettingsSchema,
|
|
100
100
|
orchestrator: OrchestratorSettingsSchema,
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# ClawSQL All-in-One Docker Image
|
|
2
|
+
# A single container with all ClawSQL components
|
|
3
|
+
#
|
|
4
|
+
# This image includes:
|
|
5
|
+
# - ClawSQL API (Node.js)
|
|
6
|
+
# - Orchestrator (MySQL topology management)
|
|
7
|
+
# - ProxySQL (MySQL proxy)
|
|
8
|
+
# - Prometheus (metrics)
|
|
9
|
+
# - Grafana (visualization)
|
|
10
|
+
# - Supervisord (process manager)
|
|
11
|
+
|
|
12
|
+
FROM docker.io/library/node:20-alpine AS clawsql-builder
|
|
13
|
+
|
|
14
|
+
WORKDIR /build
|
|
15
|
+
COPY package.json package-lock.json* ./
|
|
16
|
+
RUN npm ci
|
|
17
|
+
COPY . .
|
|
18
|
+
RUN npm run build
|
|
19
|
+
|
|
20
|
+
# =============================================================================
|
|
21
|
+
# Final all-in-one image
|
|
22
|
+
# =============================================================================
|
|
23
|
+
FROM docker.io/library/alpine:3.19
|
|
24
|
+
|
|
25
|
+
# Install all dependencies
|
|
26
|
+
RUN apk add --no-cache \
|
|
27
|
+
nodejs \
|
|
28
|
+
npm \
|
|
29
|
+
curl \
|
|
30
|
+
wget \
|
|
31
|
+
mysql-client \
|
|
32
|
+
supervisor \
|
|
33
|
+
python3 \
|
|
34
|
+
py3-pip \
|
|
35
|
+
bash \
|
|
36
|
+
shadow \
|
|
37
|
+
&& pip3 install --break-system-packages supervisor
|
|
38
|
+
|
|
39
|
+
# Download and install components
|
|
40
|
+
ARG ORCHESTRATOR_VERSION=latest
|
|
41
|
+
ARG PROXYSQL_VERSION=latest
|
|
42
|
+
ARG PROMETHEUS_VERSION=2.45.0
|
|
43
|
+
ARG GRAFANA_VERSION=10.2.0
|
|
44
|
+
|
|
45
|
+
# Create directories
|
|
46
|
+
RUN mkdir -p /opt/clawsql \
|
|
47
|
+
/opt/orchestrator \
|
|
48
|
+
/opt/proxysql \
|
|
49
|
+
/opt/prometheus \
|
|
50
|
+
/opt/grafana \
|
|
51
|
+
/var/log/supervisor \
|
|
52
|
+
/var/lib/proxysql \
|
|
53
|
+
/var/lib/prometheus \
|
|
54
|
+
/var/lib/grafana \
|
|
55
|
+
/data
|
|
56
|
+
|
|
57
|
+
# Copy ClawSQL application
|
|
58
|
+
COPY --from=clawsql-builder /build/dist /opt/clawsql/dist
|
|
59
|
+
COPY --from=clawsql-builder /build/node_modules /opt/clawsql/node_modules
|
|
60
|
+
COPY --from=clawsql-builder /build/package.json /opt/clawsql/
|
|
61
|
+
COPY docker/orchestrator/orchestrator.conf.json /etc/orchestrator.conf.json
|
|
62
|
+
COPY docker/proxysql/proxysql.cnf /etc/proxysql.cnf
|
|
63
|
+
COPY docker/prometheus/prometheus.yml /etc/prometheus.yml
|
|
64
|
+
COPY docker/grafana/provisioning /opt/grafana/conf/provisioning
|
|
65
|
+
COPY docker/grafana/dashboards /opt/grafana/dashboards
|
|
66
|
+
|
|
67
|
+
# Download Orchestrator (we'll use a binary release if available, or the Docker image)
|
|
68
|
+
RUN ARCH=$(uname -m) && \
|
|
69
|
+
if [ "$ARCH" = "x86_64" ]; then ARCH="amd64"; fi && \
|
|
70
|
+
wget -q "https://github.com/openark/orchestrator/releases/download/v3.2.6/orchestrator-${ARCH}.tar.gz" -O /tmp/orchestrator.tar.gz || true && \
|
|
71
|
+
if [ -f /tmp/orchestrator.tar.gz ]; then \
|
|
72
|
+
tar -xzf /tmp/orchestrator.tar.gz -C /opt/orchestrator --strip-components=1 && \
|
|
73
|
+
rm /tmp/orchestrator.tar.gz; \
|
|
74
|
+
fi
|
|
75
|
+
|
|
76
|
+
# Download Prometheus
|
|
77
|
+
RUN ARCH=$(uname -m) && \
|
|
78
|
+
if [ "$ARCH" = "x86_64" ]; then ARCH="amd64"; elif [ "$ARCH" = "aarch64" ]; then ARCH="arm64"; fi && \
|
|
79
|
+
wget -q "https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VERSION}/prometheus-${PROMETHEUS_VERSION}.linux-${ARCH}.tar.gz" -O /tmp/prometheus.tar.gz && \
|
|
80
|
+
tar -xzf /tmp/prometheus.tar.gz -C /opt/prometheus --strip-components=1 && \
|
|
81
|
+
rm /tmp/prometheus.tar.gz
|
|
82
|
+
|
|
83
|
+
# Download Grafana
|
|
84
|
+
RUN ARCH=$(uname -m) && \
|
|
85
|
+
if [ "$ARCH" = "x86_64" ]; then ARCH="amd64"; elif [ "$ARCH" = "aarch64" ]; then ARCH="arm64"; fi && \
|
|
86
|
+
wget -q "https://dl.grafana.com/oss/release/grafana-${GRAFANA_VERSION}.linux-${ARCH}.tar.gz" -O /tmp/grafana.tar.gz && \
|
|
87
|
+
tar -xzf /tmp/grafana.tar.gz -C /opt/grafana --strip-components=1 && \
|
|
88
|
+
rm /tmp/grafana.tar.gz
|
|
89
|
+
|
|
90
|
+
# ProxySQL will be installed from Alpine package or downloaded
|
|
91
|
+
RUN apk add --no-cache proxysql || true
|
|
92
|
+
|
|
93
|
+
# Copy supervisord configuration
|
|
94
|
+
COPY docker/supervisord.conf /etc/supervisord.conf
|
|
95
|
+
|
|
96
|
+
# Copy entrypoint script
|
|
97
|
+
COPY docker/entrypoint-allinone.sh /entrypoint.sh
|
|
98
|
+
RUN chmod +x /entrypoint.sh
|
|
99
|
+
|
|
100
|
+
# Environment variables
|
|
101
|
+
ENV NODE_ENV=production \
|
|
102
|
+
API_HOST=0.0.0.0 \
|
|
103
|
+
API_PORT=8080 \
|
|
104
|
+
ORCHESTRATOR_URL=http://localhost:3000 \
|
|
105
|
+
PROXYSQL_HOST=localhost \
|
|
106
|
+
PROXYSQL_ADMIN_PORT=6032 \
|
|
107
|
+
PROMETHEUS_URL=http://localhost:9090
|
|
108
|
+
|
|
109
|
+
# Expose all ports
|
|
110
|
+
EXPOSE 8080 3000 6032 6033 9090 3001
|
|
111
|
+
|
|
112
|
+
# Health check
|
|
113
|
+
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
|
114
|
+
CMD curl -f http://localhost:8080/health || exit 1
|
|
115
|
+
|
|
116
|
+
# Start all services via supervisord
|
|
117
|
+
CMD ["/entrypoint.sh"]
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
|
|
4
|
+
# ClawSQL All-in-One Entrypoint
|
|
5
|
+
# Starts all services in the correct order
|
|
6
|
+
|
|
7
|
+
echo "Starting ClawSQL All-in-One..."
|
|
8
|
+
|
|
9
|
+
# Create required directories
|
|
10
|
+
mkdir -p /var/log/supervisor /var/log/grafana /var/lib/grafana /var/lib/prometheus /var/lib/proxysql
|
|
11
|
+
|
|
12
|
+
# Generate default secrets if not provided
|
|
13
|
+
: ${API_TOKEN_SECRET:=$(openssl rand -hex 32 2>/dev/null || cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 64 | head -n 1)}
|
|
14
|
+
: ${MYSQL_ADMIN_PASSWORD:=clawsql_password}
|
|
15
|
+
: ${MYSQL_REPLICATION_PASSWORD:=repl_password}
|
|
16
|
+
|
|
17
|
+
export API_TOKEN_SECRET MYSQL_ADMIN_PASSWORD MYSQL_REPLICATION_PASSWORD
|
|
18
|
+
|
|
19
|
+
# Wait for dependent services if external
|
|
20
|
+
wait_for_service() {
|
|
21
|
+
local host=$1
|
|
22
|
+
local port=$2
|
|
23
|
+
local name=$3
|
|
24
|
+
local max_wait=30
|
|
25
|
+
local count=0
|
|
26
|
+
|
|
27
|
+
if [ -n "$host" ] && [ "$host" != "localhost" ] && [ "$host" != "127.0.0.1" ]; then
|
|
28
|
+
echo "Waiting for $name at $host:$port..."
|
|
29
|
+
while ! nc -z "$host" "$port" 2>/dev/null; do
|
|
30
|
+
count=$((count + 1))
|
|
31
|
+
if [ $count -ge $max_wait ]; then
|
|
32
|
+
echo "Warning: $name not available after ${max_wait}s, continuing..."
|
|
33
|
+
return 1
|
|
34
|
+
fi
|
|
35
|
+
sleep 1
|
|
36
|
+
done
|
|
37
|
+
echo "$name is ready"
|
|
38
|
+
fi
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
# Wait for external MySQL if configured
|
|
42
|
+
if [ -n "$METADATA_DB_HOST" ]; then
|
|
43
|
+
wait_for_service "$METADATA_DB_HOST" "${METADATA_DB_PORT:-3306}" "Metadata MySQL"
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
# Update Prometheus config with correct targets
|
|
47
|
+
if [ -f /etc/prometheus.yml ]; then
|
|
48
|
+
sed -i "s/localhost:8080/${API_HOST:-localhost}:${API_PORT:-8080}/g" /etc/prometheus.yml
|
|
49
|
+
fi
|
|
50
|
+
|
|
51
|
+
# Update Orchestrator config with database settings
|
|
52
|
+
if [ -f /etc/orchestrator.conf.json ]; then
|
|
53
|
+
if [ -n "$METADATA_DB_HOST" ]; then
|
|
54
|
+
sed -i "s/\"Host\":\"metadata-mysql\"/\"Host\":\"${METADATA_DB_HOST}\"/g" /etc/orchestrator.conf.json
|
|
55
|
+
fi
|
|
56
|
+
fi
|
|
57
|
+
|
|
58
|
+
echo "Starting services via supervisord..."
|
|
59
|
+
exec /usr/bin/supervisord -c /etc/supervisord.conf
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
[supervisord]
|
|
2
|
+
nodaemon=true
|
|
3
|
+
logfile=/var/log/supervisor/supervisord.log
|
|
4
|
+
pidfile=/var/run/supervisord.pid
|
|
5
|
+
user=root
|
|
6
|
+
|
|
7
|
+
[program:clawsql]
|
|
8
|
+
command=node /opt/clawsql/dist/index.js
|
|
9
|
+
directory=/opt/clawsql
|
|
10
|
+
autostart=true
|
|
11
|
+
autorestart=true
|
|
12
|
+
startsecs=5
|
|
13
|
+
stdout_logfile=/var/log/supervisor/clawsql.log
|
|
14
|
+
stderr_logfile=/var/log/supervisor/clawsql-error.log
|
|
15
|
+
environment=NODE_ENV="production"
|
|
16
|
+
|
|
17
|
+
[program:orchestrator]
|
|
18
|
+
command=/opt/orchestrator/orchestrator http
|
|
19
|
+
directory=/opt/orchestrator
|
|
20
|
+
autostart=true
|
|
21
|
+
autorestart=true
|
|
22
|
+
startsecs=5
|
|
23
|
+
stdout_logfile=/var/log/supervisor/orchestrator.log
|
|
24
|
+
stderr_logfile=/var/log/supervisor/orchestrator-error.log
|
|
25
|
+
|
|
26
|
+
[program:proxysql]
|
|
27
|
+
command=proxysql -f -c /etc/proxysql.cnf
|
|
28
|
+
autostart=true
|
|
29
|
+
autorestart=true
|
|
30
|
+
startsecs=5
|
|
31
|
+
stdout_logfile=/var/log/supervisor/proxysql.log
|
|
32
|
+
stderr_logfile=/var/log/supervisor/proxysql-error.log
|
|
33
|
+
|
|
34
|
+
[program:prometheus]
|
|
35
|
+
command=/opt/prometheus/prometheus --config.file=/etc/prometheus.yml --storage.tsdb.path=/var/lib/prometheus --web.listen-address=:9090
|
|
36
|
+
directory=/opt/prometheus
|
|
37
|
+
autostart=true
|
|
38
|
+
autorestart=true
|
|
39
|
+
startsecs=5
|
|
40
|
+
stdout_logfile=/var/log/supervisor/prometheus.log
|
|
41
|
+
stderr_logfile=/var/log/supervisor/prometheus-error.log
|
|
42
|
+
|
|
43
|
+
[program:grafana]
|
|
44
|
+
command=/opt/grafana/bin/grafana-server --homepath=/opt/grafana --config=/opt/grafana/conf/defaults.ini
|
|
45
|
+
directory=/opt/grafana
|
|
46
|
+
autostart=true
|
|
47
|
+
autorestart=true
|
|
48
|
+
startsecs=5
|
|
49
|
+
stdout_logfile=/var/log/supervisor/grafana.log
|
|
50
|
+
stderr_logfile=/var/log/supervisor/grafana-error.log
|
|
51
|
+
environment=GF_PATHS_DATA="/var/lib/grafana",GF_PATHS_LOGS="/var/log/grafana"
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# ClawSQL All-in-One Deployment
|
|
2
|
+
# A single container with all components
|
|
3
|
+
#
|
|
4
|
+
# Usage:
|
|
5
|
+
# docker-compose -f docker-compose.allinone.yml up -d
|
|
6
|
+
#
|
|
7
|
+
# This is the simplest deployment option - one container with everything.
|
|
8
|
+
|
|
9
|
+
services:
|
|
10
|
+
clawsql-allinone:
|
|
11
|
+
image: clawsql/clawsql:allinone
|
|
12
|
+
build:
|
|
13
|
+
context: .
|
|
14
|
+
dockerfile: docker/Dockerfile.allinone
|
|
15
|
+
container_name: clawsql
|
|
16
|
+
hostname: clawsql
|
|
17
|
+
privileged: true
|
|
18
|
+
ports:
|
|
19
|
+
- "8080:8080" # ClawSQL API
|
|
20
|
+
- "3000:3000" # Orchestrator
|
|
21
|
+
- "6032:6032" # ProxySQL Admin
|
|
22
|
+
- "6033:6033" # ProxySQL MySQL
|
|
23
|
+
- "9090:9090" # Prometheus
|
|
24
|
+
- "3001:3001" # Grafana
|
|
25
|
+
environment:
|
|
26
|
+
- API_HOST=0.0.0.0
|
|
27
|
+
- API_PORT=8080
|
|
28
|
+
- API_TOKEN_SECRET=${API_TOKEN_SECRET:-change-me-in-production}
|
|
29
|
+
- ORCHESTRATOR_URL=http://localhost:3000
|
|
30
|
+
- PROXYSQL_HOST=localhost
|
|
31
|
+
- PROXYSQL_ADMIN_PORT=6032
|
|
32
|
+
- PROMETHEUS_URL=http://localhost:9090
|
|
33
|
+
# Metadata Database (optional - uses internal SQLite if not set)
|
|
34
|
+
- METADATA_DB_HOST=${METADATA_DB_HOST:-}
|
|
35
|
+
- METADATA_DB_PORT=${METADATA_DB_PORT:-3306}
|
|
36
|
+
- METADATA_DB_NAME=${METADATA_DB_NAME:-clawsql_meta}
|
|
37
|
+
- METADATA_DB_USER=${METADATA_DB_USER:-clawsql}
|
|
38
|
+
- METADATA_DB_PASSWORD=${METADATA_DB_PASSWORD:-clawsql_password}
|
|
39
|
+
# MySQL credentials
|
|
40
|
+
- MYSQL_ADMIN_USER=${MYSQL_ADMIN_USER:-clawsql}
|
|
41
|
+
- MYSQL_ADMIN_PASSWORD=${MYSQL_ADMIN_PASSWORD:-clawsql_password}
|
|
42
|
+
- MYSQL_REPLICATION_USER=${MYSQL_REPLICATION_USER:-repl}
|
|
43
|
+
- MYSQL_REPLICATION_PASSWORD=${MYSQL_REPLICATION_PASSWORD:-repl_password}
|
|
44
|
+
# Logging
|
|
45
|
+
- LOG_LEVEL=${LOG_LEVEL:-INFO}
|
|
46
|
+
- LOG_FORMAT=${LOG_FORMAT:-json}
|
|
47
|
+
# Failover
|
|
48
|
+
- AUTO_FAILOVER_ENABLED=${AUTO_FAILOVER_ENABLED:-true}
|
|
49
|
+
volumes:
|
|
50
|
+
- clawsql-data:/data
|
|
51
|
+
- prometheus-data:/var/lib/prometheus
|
|
52
|
+
- grafana-data:/var/lib/grafana
|
|
53
|
+
- proxysql-data:/var/lib/proxysql
|
|
54
|
+
restart: unless-stopped
|
|
55
|
+
healthcheck:
|
|
56
|
+
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
|
|
57
|
+
interval: 30s
|
|
58
|
+
timeout: 10s
|
|
59
|
+
retries: 3
|
|
60
|
+
start_period: 60s
|
|
61
|
+
|
|
62
|
+
volumes:
|
|
63
|
+
clawsql-data:
|
|
64
|
+
prometheus-data:
|
|
65
|
+
grafana-data:
|
|
66
|
+
proxysql-data:
|
package/docker-compose.demo.yml
CHANGED
|
@@ -9,7 +9,7 @@ services:
|
|
|
9
9
|
# MySQL Primary (Writer)
|
|
10
10
|
# =============================================================================
|
|
11
11
|
mysql-primary:
|
|
12
|
-
image: mysql:8.0
|
|
12
|
+
image: docker.io/library/mysql:8.0
|
|
13
13
|
container_name: mysql-primary
|
|
14
14
|
hostname: mysql-primary
|
|
15
15
|
ports:
|
package/docker-compose.yml
CHANGED
|
@@ -15,6 +15,7 @@ services:
|
|
|
15
15
|
# ClawSQL Application (Node.js)
|
|
16
16
|
# =============================================================================
|
|
17
17
|
clawsql:
|
|
18
|
+
image: clawsql/clawsql:latest
|
|
18
19
|
build:
|
|
19
20
|
context: .
|
|
20
21
|
dockerfile: docker/Dockerfile.node
|
|
@@ -65,7 +66,7 @@ services:
|
|
|
65
66
|
# Uses shared metadata MySQL database
|
|
66
67
|
# =============================================================================
|
|
67
68
|
orchestrator:
|
|
68
|
-
image: openarkcode/orchestrator:latest
|
|
69
|
+
image: docker.io/openarkcode/orchestrator:latest
|
|
69
70
|
container_name: orchestrator
|
|
70
71
|
hostname: orchestrator
|
|
71
72
|
ports:
|
|
@@ -80,7 +81,7 @@ services:
|
|
|
80
81
|
# ProxySQL - MySQL Proxy with Routing
|
|
81
82
|
# =============================================================================
|
|
82
83
|
proxysql:
|
|
83
|
-
image: proxysql/proxysql:latest
|
|
84
|
+
image: docker.io/proxysql/proxysql:latest
|
|
84
85
|
container_name: proxysql
|
|
85
86
|
hostname: proxysql
|
|
86
87
|
ports:
|
|
@@ -99,7 +100,7 @@ services:
|
|
|
99
100
|
# Prometheus - Metrics Collection
|
|
100
101
|
# =============================================================================
|
|
101
102
|
prometheus:
|
|
102
|
-
image: prom/prometheus:latest
|
|
103
|
+
image: docker.io/prom/prometheus:latest
|
|
103
104
|
container_name: prometheus
|
|
104
105
|
hostname: prometheus
|
|
105
106
|
ports:
|
|
@@ -119,7 +120,7 @@ services:
|
|
|
119
120
|
# Grafana - Visualization
|
|
120
121
|
# =============================================================================
|
|
121
122
|
grafana:
|
|
122
|
-
image: grafana/grafana:latest
|
|
123
|
+
image: docker.io/grafana/grafana:latest
|
|
123
124
|
container_name: grafana
|
|
124
125
|
hostname: grafana
|
|
125
126
|
ports:
|
|
@@ -176,7 +177,7 @@ services:
|
|
|
176
177
|
# Auto-provisioned if METADATA_DB_HOST is not set
|
|
177
178
|
# =============================================================================
|
|
178
179
|
metadata-mysql:
|
|
179
|
-
image: mysql:8.0
|
|
180
|
+
image: docker.io/library/mysql:8.0
|
|
180
181
|
container_name: metadata-mysql
|
|
181
182
|
hostname: metadata-mysql
|
|
182
183
|
profiles:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clawsql",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "MySQL Cluster Automation and Operations Management System",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -78,6 +78,7 @@
|
|
|
78
78
|
"docker",
|
|
79
79
|
"docker-compose.yml",
|
|
80
80
|
"docker-compose.demo.yml",
|
|
81
|
+
"docker-compose.allinone.yml",
|
|
81
82
|
"init",
|
|
82
83
|
".env.example",
|
|
83
84
|
"package-lock.json"
|