@steelengine/cli 0.1.0
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/README.md +36 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +249 -0
- package/dist/index.js.map +1 -0
- package/package.json +54 -0
package/README.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# SteelEngine CLI
|
|
2
|
+
|
|
3
|
+
SteelEngine CLI allows you to run [SteelEngine](https://tryrecall.com) using Docker with a single command.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
To install the SteelEngine CLI globally, use:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g recall
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
To start SteelEngine, simply run:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
recall
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Options
|
|
22
|
+
|
|
23
|
+
- `-p, --port <port>`: Specify the port to run SteelEngine on (default: 3000).
|
|
24
|
+
- `--no-pull`: Skip pulling the latest Docker images.
|
|
25
|
+
|
|
26
|
+
## Requirements
|
|
27
|
+
|
|
28
|
+
- Docker must be installed and running on your machine.
|
|
29
|
+
|
|
30
|
+
## Contributing
|
|
31
|
+
|
|
32
|
+
Contributions are welcome! Please open an issue or submit a pull request.
|
|
33
|
+
|
|
34
|
+
## License
|
|
35
|
+
|
|
36
|
+
This project is licensed under the Apache-2.0 License.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { execSync, spawn } from 'child_process';
|
|
3
|
+
import { existsSync, mkdirSync } from 'fs';
|
|
4
|
+
import { homedir } from 'os';
|
|
5
|
+
import { join } from 'path';
|
|
6
|
+
import { createInterface } from 'readline';
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import { Command } from 'commander';
|
|
9
|
+
const NETWORK_NAME = 'recall-network';
|
|
10
|
+
const DB_CONTAINER = 'recall-db';
|
|
11
|
+
const MIGRATIONS_CONTAINER = 'recall-migrations';
|
|
12
|
+
const REALTIME_CONTAINER = 'recall-realtime';
|
|
13
|
+
const APP_CONTAINER = 'recall-app';
|
|
14
|
+
const DEFAULT_PORT = '3000';
|
|
15
|
+
const program = new Command();
|
|
16
|
+
program.name('steelengine').description('Run SteelEngine using Docker').version('0.1.0');
|
|
17
|
+
program
|
|
18
|
+
.option('-p, --port <port>', 'Port to run SteelEngine on', DEFAULT_PORT)
|
|
19
|
+
.option('-y, --yes', 'Skip interactive prompts and use defaults')
|
|
20
|
+
.option('--no-pull', 'Skip pulling the latest Docker images');
|
|
21
|
+
function isDockerRunning() {
|
|
22
|
+
return new Promise((resolve) => {
|
|
23
|
+
const docker = spawn('docker', ['info']);
|
|
24
|
+
docker.on('close', (code) => {
|
|
25
|
+
resolve(code === 0);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
async function runCommand(command) {
|
|
30
|
+
return new Promise((resolve) => {
|
|
31
|
+
const process = spawn(command[0], command.slice(1), { stdio: 'inherit' });
|
|
32
|
+
process.on('error', () => {
|
|
33
|
+
resolve(false);
|
|
34
|
+
});
|
|
35
|
+
process.on('close', (code) => {
|
|
36
|
+
resolve(code === 0);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
async function ensureNetworkExists() {
|
|
41
|
+
try {
|
|
42
|
+
const networks = execSync('docker network ls --format "{{.Name}}"').toString();
|
|
43
|
+
if (!networks.includes(NETWORK_NAME)) {
|
|
44
|
+
console.log(chalk.blue(`๐ Creating Docker network '${NETWORK_NAME}'...`));
|
|
45
|
+
return await runCommand(['docker', 'network', 'create', NETWORK_NAME]);
|
|
46
|
+
}
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
console.error('Failed to check networks:', error);
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async function pullImage(image) {
|
|
55
|
+
console.log(chalk.blue(`๐ Pulling image ${image}...`));
|
|
56
|
+
return await runCommand(['docker', 'pull', image]);
|
|
57
|
+
}
|
|
58
|
+
async function stopAndRemoveContainer(name) {
|
|
59
|
+
try {
|
|
60
|
+
execSync(`docker stop ${name} 2>/dev/null || true`);
|
|
61
|
+
execSync(`docker rm ${name} 2>/dev/null || true`);
|
|
62
|
+
}
|
|
63
|
+
catch (_error) {
|
|
64
|
+
// Ignore errors, container might not exist
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async function cleanupExistingContainers() {
|
|
68
|
+
console.log(chalk.blue('๐งน Cleaning up any existing containers...'));
|
|
69
|
+
await stopAndRemoveContainer(APP_CONTAINER);
|
|
70
|
+
await stopAndRemoveContainer(DB_CONTAINER);
|
|
71
|
+
await stopAndRemoveContainer(MIGRATIONS_CONTAINER);
|
|
72
|
+
await stopAndRemoveContainer(REALTIME_CONTAINER);
|
|
73
|
+
}
|
|
74
|
+
async function main() {
|
|
75
|
+
const options = program.parse().opts();
|
|
76
|
+
console.log(chalk.blue('๐ Starting SteelEngine...'));
|
|
77
|
+
// Check if Docker is installed and running
|
|
78
|
+
const dockerRunning = await isDockerRunning();
|
|
79
|
+
if (!dockerRunning) {
|
|
80
|
+
console.error(chalk.red('โ Docker is not running or not installed. Please start Docker and try again.'));
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
// Use port from options, with 3000 as default
|
|
84
|
+
const port = options.port;
|
|
85
|
+
// Pull latest images if not skipped
|
|
86
|
+
if (options.pull) {
|
|
87
|
+
await pullImage('ghcr.io/recallai/recall:latest');
|
|
88
|
+
await pullImage('ghcr.io/recallai/migrations:latest');
|
|
89
|
+
await pullImage('ghcr.io/recallai/realtime:latest');
|
|
90
|
+
await pullImage('pgvector/pgvector:pg17');
|
|
91
|
+
}
|
|
92
|
+
// Ensure Docker network exists
|
|
93
|
+
if (!(await ensureNetworkExists())) {
|
|
94
|
+
console.error(chalk.red('โ Failed to create Docker network'));
|
|
95
|
+
process.exit(1);
|
|
96
|
+
}
|
|
97
|
+
// Clean up any existing containers
|
|
98
|
+
await cleanupExistingContainers();
|
|
99
|
+
// Create data directory
|
|
100
|
+
const dataDir = join(homedir(), '.recall', 'data');
|
|
101
|
+
if (!existsSync(dataDir)) {
|
|
102
|
+
try {
|
|
103
|
+
mkdirSync(dataDir, { recursive: true });
|
|
104
|
+
}
|
|
105
|
+
catch (_error) {
|
|
106
|
+
console.error(chalk.red(`โ Failed to create data directory: ${dataDir}`));
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Start PostgreSQL container
|
|
111
|
+
console.log(chalk.blue('๐ Starting PostgreSQL database...'));
|
|
112
|
+
const dbSuccess = await runCommand([
|
|
113
|
+
'docker',
|
|
114
|
+
'run',
|
|
115
|
+
'-d',
|
|
116
|
+
'--name',
|
|
117
|
+
DB_CONTAINER,
|
|
118
|
+
'--network',
|
|
119
|
+
NETWORK_NAME,
|
|
120
|
+
'-e',
|
|
121
|
+
'POSTGRES_USER=postgres',
|
|
122
|
+
'-e',
|
|
123
|
+
'POSTGRES_PASSWORD=postgres',
|
|
124
|
+
'-e',
|
|
125
|
+
'POSTGRES_DB=recall',
|
|
126
|
+
'-v',
|
|
127
|
+
`${dataDir}/postgres:/var/lib/postgresql/data`,
|
|
128
|
+
'-p',
|
|
129
|
+
'5432:5432',
|
|
130
|
+
'pgvector/pgvector:pg17',
|
|
131
|
+
]);
|
|
132
|
+
if (!dbSuccess) {
|
|
133
|
+
console.error(chalk.red('โ Failed to start PostgreSQL'));
|
|
134
|
+
process.exit(1);
|
|
135
|
+
}
|
|
136
|
+
// Wait for PostgreSQL to be ready
|
|
137
|
+
console.log(chalk.blue('โณ Waiting for PostgreSQL to be ready...'));
|
|
138
|
+
let pgReady = false;
|
|
139
|
+
for (let i = 0; i < 30; i++) {
|
|
140
|
+
try {
|
|
141
|
+
execSync(`docker exec ${DB_CONTAINER} pg_isready -U postgres`);
|
|
142
|
+
pgReady = true;
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
catch (_error) {
|
|
146
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
if (!pgReady) {
|
|
150
|
+
console.error(chalk.red('โ PostgreSQL failed to become ready'));
|
|
151
|
+
process.exit(1);
|
|
152
|
+
}
|
|
153
|
+
// Run migrations
|
|
154
|
+
console.log(chalk.blue('๐ Running database migrations...'));
|
|
155
|
+
const migrationsSuccess = await runCommand([
|
|
156
|
+
'docker',
|
|
157
|
+
'run',
|
|
158
|
+
'--rm',
|
|
159
|
+
'--name',
|
|
160
|
+
MIGRATIONS_CONTAINER,
|
|
161
|
+
'--network',
|
|
162
|
+
NETWORK_NAME,
|
|
163
|
+
'-e',
|
|
164
|
+
`DATABASE_URL=postgresql://postgres:postgres@${DB_CONTAINER}:5432/recall`,
|
|
165
|
+
'ghcr.io/recallai/migrations:latest',
|
|
166
|
+
'bun',
|
|
167
|
+
'run',
|
|
168
|
+
'db:migrate',
|
|
169
|
+
]);
|
|
170
|
+
if (!migrationsSuccess) {
|
|
171
|
+
console.error(chalk.red('โ Failed to run migrations'));
|
|
172
|
+
process.exit(1);
|
|
173
|
+
}
|
|
174
|
+
// Start the realtime server
|
|
175
|
+
console.log(chalk.blue('๐ Starting Realtime Server...'));
|
|
176
|
+
const realtimeSuccess = await runCommand([
|
|
177
|
+
'docker',
|
|
178
|
+
'run',
|
|
179
|
+
'-d',
|
|
180
|
+
'--name',
|
|
181
|
+
REALTIME_CONTAINER,
|
|
182
|
+
'--network',
|
|
183
|
+
NETWORK_NAME,
|
|
184
|
+
'-p',
|
|
185
|
+
'3002:3002',
|
|
186
|
+
'-e',
|
|
187
|
+
`DATABASE_URL=postgresql://postgres:postgres@${DB_CONTAINER}:5432/recall`,
|
|
188
|
+
'-e',
|
|
189
|
+
`BETTER_AUTH_URL=http://localhost:${port}`,
|
|
190
|
+
'-e',
|
|
191
|
+
`NEXT_PUBLIC_APP_URL=http://localhost:${port}`,
|
|
192
|
+
'-e',
|
|
193
|
+
'BETTER_AUTH_SECRET=your_auth_secret_here',
|
|
194
|
+
'ghcr.io/recallai/realtime:latest',
|
|
195
|
+
]);
|
|
196
|
+
if (!realtimeSuccess) {
|
|
197
|
+
console.error(chalk.red('โ Failed to start Realtime Server'));
|
|
198
|
+
process.exit(1);
|
|
199
|
+
}
|
|
200
|
+
// Start the main application
|
|
201
|
+
console.log(chalk.blue('๐ Starting SteelEngine...'));
|
|
202
|
+
const appSuccess = await runCommand([
|
|
203
|
+
'docker',
|
|
204
|
+
'run',
|
|
205
|
+
'-d',
|
|
206
|
+
'--name',
|
|
207
|
+
APP_CONTAINER,
|
|
208
|
+
'--network',
|
|
209
|
+
NETWORK_NAME,
|
|
210
|
+
'-p',
|
|
211
|
+
`${port}:3000`,
|
|
212
|
+
'-e',
|
|
213
|
+
`DATABASE_URL=postgresql://postgres:postgres@${DB_CONTAINER}:5432/recall`,
|
|
214
|
+
'-e',
|
|
215
|
+
`BETTER_AUTH_URL=http://localhost:${port}`,
|
|
216
|
+
'-e',
|
|
217
|
+
`NEXT_PUBLIC_APP_URL=http://localhost:${port}`,
|
|
218
|
+
'-e',
|
|
219
|
+
'BETTER_AUTH_SECRET=your_auth_secret_here',
|
|
220
|
+
'-e',
|
|
221
|
+
'ENCRYPTION_KEY=your_encryption_key_here',
|
|
222
|
+
'ghcr.io/recallai/recall:latest',
|
|
223
|
+
]);
|
|
224
|
+
if (!appSuccess) {
|
|
225
|
+
console.error(chalk.red('โ Failed to start SteelEngine'));
|
|
226
|
+
process.exit(1);
|
|
227
|
+
}
|
|
228
|
+
console.log(chalk.green(`โ
SteelEngine is now running at ${chalk.bold(`http://localhost:${port}`)}`));
|
|
229
|
+
console.log(chalk.yellow(`๐ To stop all containers, run: ${chalk.bold('docker stop recall-app recall-db recall-realtime')}`));
|
|
230
|
+
// Handle Ctrl+C
|
|
231
|
+
const rl = createInterface({
|
|
232
|
+
input: process.stdin,
|
|
233
|
+
output: process.stdout,
|
|
234
|
+
});
|
|
235
|
+
rl.on('SIGINT', async () => {
|
|
236
|
+
console.log(chalk.yellow('\n๐ Stopping SteelEngine...'));
|
|
237
|
+
// Stop containers
|
|
238
|
+
await stopAndRemoveContainer(APP_CONTAINER);
|
|
239
|
+
await stopAndRemoveContainer(DB_CONTAINER);
|
|
240
|
+
await stopAndRemoveContainer(REALTIME_CONTAINER);
|
|
241
|
+
console.log(chalk.green('โ
SteelEngine has been stopped'));
|
|
242
|
+
process.exit(0);
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
main().catch((error) => {
|
|
246
|
+
console.error(chalk.red('โ An error occurred:'), error);
|
|
247
|
+
process.exit(1);
|
|
248
|
+
});
|
|
249
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@steelengine/cli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "SteelEngine CLI - Run SteelEngine with a single command",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"import": "./dist/index.js"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"bin": {
|
|
13
|
+
"steelengine": "dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "tsc",
|
|
17
|
+
"type-check": "tsc --noEmit",
|
|
18
|
+
"lint": "biome check --write --unsafe .",
|
|
19
|
+
"lint:check": "biome check .",
|
|
20
|
+
"format": "biome format --write .",
|
|
21
|
+
"format:check": "biome format .",
|
|
22
|
+
"prepublishOnly": "bun run build"
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"dist"
|
|
26
|
+
],
|
|
27
|
+
"keywords": [
|
|
28
|
+
"recall",
|
|
29
|
+
"ai",
|
|
30
|
+
"workflow",
|
|
31
|
+
"cli",
|
|
32
|
+
"agent",
|
|
33
|
+
"automation",
|
|
34
|
+
"docker"
|
|
35
|
+
],
|
|
36
|
+
"author": "SteelEngine",
|
|
37
|
+
"license": "UNLICENSED",
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=16"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"chalk": "^4.1.2",
|
|
43
|
+
"commander": "^11.1.0",
|
|
44
|
+
"dotenv": "^16.3.1",
|
|
45
|
+
"inquirer": "^8.2.6",
|
|
46
|
+
"listr2": "^6.6.1"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@steelengine/tsconfig": "workspace:*",
|
|
50
|
+
"@types/inquirer": "^8.2.6",
|
|
51
|
+
"@types/node": "^20.5.1",
|
|
52
|
+
"typescript": "^5.7.3"
|
|
53
|
+
}
|
|
54
|
+
}
|