pgpm 4.14.0 → 4.15.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.
@@ -24,7 +24,9 @@ PostgreSQL Options:
24
24
  --shm-size <size> Shared memory size for container (default: 2g)
25
25
 
26
26
  Additional Services:
27
- --minio Include MinIO S3-compatible object storage (port 9000)
27
+ --minio Include MinIO S3-compatible object storage (API: 9000, Console: 9001)
28
+ --ollama Include Ollama LLM inference server (API: 11434)
29
+ --gpu Enable NVIDIA GPU passthrough for Ollama (requires NVIDIA Container Toolkit)
28
30
 
29
31
  General Options:
30
32
  --help, -h Show this help message
@@ -33,26 +35,42 @@ General Options:
33
35
  Examples:
34
36
  pgpm docker start Start PostgreSQL only
35
37
  pgpm docker start --minio Start PostgreSQL + MinIO
38
+ pgpm docker start --ollama Start PostgreSQL + Ollama (CPU)
39
+ pgpm docker start --ollama --gpu Start PostgreSQL + Ollama (NVIDIA GPU)
36
40
  pgpm docker start --port 5433 Start on custom port
37
41
  pgpm docker start --shm-size 4g Start with 4GB shared memory
38
42
  pgpm docker start --recreate Remove and recreate containers
39
43
  pgpm docker start --recreate --minio Recreate PostgreSQL + MinIO
40
44
  pgpm docker stop Stop PostgreSQL
41
45
  pgpm docker stop --minio Stop PostgreSQL + MinIO
46
+ pgpm docker stop --ollama Stop PostgreSQL + Ollama
42
47
  pgpm docker ls List services and status
43
48
  `;
44
49
  const ADDITIONAL_SERVICES = {
45
50
  minio: {
46
51
  name: 'minio',
47
52
  image: 'minio/minio',
48
- ports: [{ host: 9000, container: 9000 }],
53
+ ports: [
54
+ { host: 9000, container: 9000 },
55
+ { host: 9001, container: 9001 },
56
+ ],
49
57
  env: {
50
- MINIO_ACCESS_KEY: 'minioadmin',
51
- MINIO_SECRET_KEY: 'minioadmin',
58
+ MINIO_ROOT_USER: 'minioadmin',
59
+ MINIO_ROOT_PASSWORD: 'minioadmin',
52
60
  },
53
- command: ['server', '/data'],
61
+ command: ['server', '/data', '--console-address', ':9001'],
54
62
  volumes: [{ name: 'minio-data', containerPath: '/data' }],
55
63
  },
64
+ ollama: {
65
+ name: 'ollama',
66
+ image: 'ollama/ollama',
67
+ ports: [
68
+ { host: 11434, container: 11434 },
69
+ ],
70
+ env: {},
71
+ volumes: [{ name: 'ollama-data', containerPath: '/root/.ollama' }],
72
+ gpuCapable: true,
73
+ },
56
74
  };
57
75
  function run(command, args, options = {}) {
58
76
  return new Promise((resolve, reject) => {
@@ -189,7 +207,7 @@ async function stopContainer(name) {
189
207
  await (0, inquirerer_1.cliExitWithError)(`Failed to stop container "${name}"`);
190
208
  }
191
209
  }
192
- async function startService(service, recreate) {
210
+ async function startService(service, recreate, gpu = false) {
193
211
  const { name, image, ports, env: serviceEnv, command } = service;
194
212
  const exists = await containerExists(name);
195
213
  const running = await isContainerRunning(name);
@@ -233,6 +251,9 @@ async function startService(service, recreate) {
233
251
  runArgs.push('-v', `${vol.name}:${vol.containerPath}`);
234
252
  }
235
253
  }
254
+ if (gpu && service.gpuCapable) {
255
+ runArgs.push('--gpus', 'all');
256
+ }
236
257
  runArgs.push(image);
237
258
  if (command) {
238
259
  runArgs.push(...command);
@@ -306,12 +327,13 @@ exports.default = async (argv, _prompter, _options) => {
306
327
  const password = args.password || 'password';
307
328
  const shmSize = args['shm-size'] || args.shmSize || '2g';
308
329
  const recreate = args.recreate === true;
330
+ const gpu = args.gpu === true;
309
331
  const includedServices = resolveServiceFlags(args);
310
332
  switch (subcommand) {
311
333
  case 'start':
312
334
  await startContainer({ name, image, port, user, password, shmSize, recreate });
313
335
  for (const service of includedServices) {
314
- await startService(service, recreate);
336
+ await startService(service, recreate, gpu);
315
337
  }
316
338
  break;
317
339
  case 'stop':
@@ -22,7 +22,9 @@ PostgreSQL Options:
22
22
  --shm-size <size> Shared memory size for container (default: 2g)
23
23
 
24
24
  Additional Services:
25
- --minio Include MinIO S3-compatible object storage (port 9000)
25
+ --minio Include MinIO S3-compatible object storage (API: 9000, Console: 9001)
26
+ --ollama Include Ollama LLM inference server (API: 11434)
27
+ --gpu Enable NVIDIA GPU passthrough for Ollama (requires NVIDIA Container Toolkit)
26
28
 
27
29
  General Options:
28
30
  --help, -h Show this help message
@@ -31,26 +33,42 @@ General Options:
31
33
  Examples:
32
34
  pgpm docker start Start PostgreSQL only
33
35
  pgpm docker start --minio Start PostgreSQL + MinIO
36
+ pgpm docker start --ollama Start PostgreSQL + Ollama (CPU)
37
+ pgpm docker start --ollama --gpu Start PostgreSQL + Ollama (NVIDIA GPU)
34
38
  pgpm docker start --port 5433 Start on custom port
35
39
  pgpm docker start --shm-size 4g Start with 4GB shared memory
36
40
  pgpm docker start --recreate Remove and recreate containers
37
41
  pgpm docker start --recreate --minio Recreate PostgreSQL + MinIO
38
42
  pgpm docker stop Stop PostgreSQL
39
43
  pgpm docker stop --minio Stop PostgreSQL + MinIO
44
+ pgpm docker stop --ollama Stop PostgreSQL + Ollama
40
45
  pgpm docker ls List services and status
41
46
  `;
42
47
  const ADDITIONAL_SERVICES = {
43
48
  minio: {
44
49
  name: 'minio',
45
50
  image: 'minio/minio',
46
- ports: [{ host: 9000, container: 9000 }],
51
+ ports: [
52
+ { host: 9000, container: 9000 },
53
+ { host: 9001, container: 9001 },
54
+ ],
47
55
  env: {
48
- MINIO_ACCESS_KEY: 'minioadmin',
49
- MINIO_SECRET_KEY: 'minioadmin',
56
+ MINIO_ROOT_USER: 'minioadmin',
57
+ MINIO_ROOT_PASSWORD: 'minioadmin',
50
58
  },
51
- command: ['server', '/data'],
59
+ command: ['server', '/data', '--console-address', ':9001'],
52
60
  volumes: [{ name: 'minio-data', containerPath: '/data' }],
53
61
  },
62
+ ollama: {
63
+ name: 'ollama',
64
+ image: 'ollama/ollama',
65
+ ports: [
66
+ { host: 11434, container: 11434 },
67
+ ],
68
+ env: {},
69
+ volumes: [{ name: 'ollama-data', containerPath: '/root/.ollama' }],
70
+ gpuCapable: true,
71
+ },
54
72
  };
55
73
  function run(command, args, options = {}) {
56
74
  return new Promise((resolve, reject) => {
@@ -187,7 +205,7 @@ async function stopContainer(name) {
187
205
  await cliExitWithError(`Failed to stop container "${name}"`);
188
206
  }
189
207
  }
190
- async function startService(service, recreate) {
208
+ async function startService(service, recreate, gpu = false) {
191
209
  const { name, image, ports, env: serviceEnv, command } = service;
192
210
  const exists = await containerExists(name);
193
211
  const running = await isContainerRunning(name);
@@ -231,6 +249,9 @@ async function startService(service, recreate) {
231
249
  runArgs.push('-v', `${vol.name}:${vol.containerPath}`);
232
250
  }
233
251
  }
252
+ if (gpu && service.gpuCapable) {
253
+ runArgs.push('--gpus', 'all');
254
+ }
234
255
  runArgs.push(image);
235
256
  if (command) {
236
257
  runArgs.push(...command);
@@ -304,12 +325,13 @@ export default async (argv, _prompter, _options) => {
304
325
  const password = args.password || 'password';
305
326
  const shmSize = args['shm-size'] || args.shmSize || '2g';
306
327
  const recreate = args.recreate === true;
328
+ const gpu = args.gpu === true;
307
329
  const includedServices = resolveServiceFlags(args);
308
330
  switch (subcommand) {
309
331
  case 'start':
310
332
  await startContainer({ name, image, port, user, password, shmSize, recreate });
311
333
  for (const service of includedServices) {
312
- await startService(service, recreate);
334
+ await startService(service, recreate, gpu);
313
335
  }
314
336
  break;
315
337
  case 'stop':
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pgpm",
3
- "version": "4.14.0",
3
+ "version": "4.15.0",
4
4
  "author": "Constructive <developers@constructive.io>",
5
5
  "description": "PostgreSQL Package Manager - Database migration and package management CLI",
6
6
  "main": "index.js",
@@ -76,5 +76,5 @@
76
76
  "pg",
77
77
  "pgsql"
78
78
  ],
79
- "gitHead": "2572aaf6c2a3298917362e80ed68276c88a88f82"
79
+ "gitHead": "d4ab16de23b2434617e820fcffaec0f008a7b6a0"
80
80
  }