feat: add Docker deployment with Containerfile, entrypoints, and nginx

Multi-stage Containerfile for all Node.js services (single image,
different CMD per docker-compose service). ESM entrypoints for gateway,
config, text-completion, prompt, embeddings, agent, and librarian.

Workbench gets a separate Containerfile (nginx:alpine) with SPA routing
and API/WebSocket proxy to gateway.

Docker Compose updated with 6 app services (gateway, config-service,
text-completion, prompt, embeddings, workbench) using shared
trustgraph-ts:local image.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
elpresidank 2026-04-06 00:21:00 -05:00
parent f09ef4de45
commit d1f24cf759
13 changed files with 241 additions and 78 deletions

7
ts/entrypoints/agent.mjs Normal file
View file

@ -0,0 +1,7 @@
// Will work once the agent service is merged.
import("../packages/flow/dist/agent/react/service.js")
.then((m) => m.run())
.catch((err) => {
console.error(err);
process.exit(1);
});

View file

@ -0,0 +1,6 @@
import("../packages/flow/dist/config/service.js")
.then((m) => m.run())
.catch((err) => {
console.error(err);
process.exit(1);
});

View file

@ -0,0 +1,6 @@
import("../packages/flow/dist/embeddings/ollama.js")
.then((m) => m.run())
.catch((err) => {
console.error(err);
process.exit(1);
});

View file

@ -0,0 +1,6 @@
import("../packages/flow/dist/gateway/server.js")
.then((m) => m.run())
.catch((err) => {
console.error(err);
process.exit(1);
});

View file

@ -0,0 +1,7 @@
// Will work once the librarian service is merged.
import("../packages/flow/dist/librarian/service.js")
.then((m) => m.run())
.catch((err) => {
console.error(err);
process.exit(1);
});

View file

@ -0,0 +1,6 @@
import("../packages/flow/dist/prompt/template.js")
.then((m) => m.run())
.catch((err) => {
console.error(err);
process.exit(1);
});

View file

@ -0,0 +1,6 @@
import("../packages/flow/dist/model/text-completion/claude.js")
.then((m) => m.run())
.catch((err) => {
console.error(err);
process.exit(1);
});

View file

@ -0,0 +1,6 @@
import("../packages/flow/dist/model/text-completion/openai.js")
.then((m) => m.run())
.catch((err) => {
console.error(err);
process.exit(1);
});