We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 795f418 commit 0728a63Copy full SHA for 0728a63
apps/server/Dockerfile
@@ -28,14 +28,18 @@ RUN adduser --system --uid 1001 bunuser
28
USER bunuser
29
30
COPY --from=builder --chown=bunuser:kbnet /app/apps/server/dist ./
31
+COPY --from=builder --chown=bunuser:kbnet /app/packages/database /app/packages/database
32
COPY --from=builder --chown=bunuser:kbnet /app/packages/database/generated /app/generated
33
COPY --from=installer --chown=bunuser:kbnet /app/node_modules ./node_modules
34
COPY --from=builder --chown=bunuser:kbnet /app/package.json ./package.json
35
COPY --from=builder --chown=bunuser:kbnet /app/turbo.json ./turbo.json
36
37
+COPY --from=builder --chown=bunuser:kbnet /app/apps/server/entrypoint.sh ./entrypoint.sh
38
39
40
EXPOSE 8000
41
RUN chmod 700 ./bin
42
+RUN chmod +x ./entrypoint.sh
43
-CMD ["./bin"]
44
+
45
+CMD ["./entrypoint.sh"]
apps/server/entrypoint.sh
@@ -0,0 +1,15 @@
1
+#!/bin/sh
2
3
+# Change to the database package directory
4
+cd /app/packages/database || exit 1
5
6
+# Run Prisma database migration
7
+echo "Running Prisma database migration..."
8
+npx prisma db push --skip-generate
9
10
+# Return to the app root directory
11
+cd /app || exit 1
12
13
+# Start the application
14
+echo "Starting application..."
15
+exec ./bin
apps/server/src/index.ts
@@ -7,7 +7,7 @@ import { authClient, tokenToSession } from "./lib/auth-client";
import { createServer } from "http";
import { MessageType, pack } from "@kbnet/shared";
import { serve } from "@hono/node-server";
-import { runMindsDBQuery } from "@kbnet/shared/mindsdb";
+import { connectMindsDB, runMindsDBQuery } from "@kbnet/shared/mindsdb";
import { prisma } from "@kbnet/db";
config();
docker-compose.yml
@@ -1,5 +1,6 @@
services:
db:
+ container_name: kb_db
image: postgres:15-alpine
environment:
POSTGRES_USER: mindsdb
@@ -12,29 +13,47 @@ services:
networks:
- kbnet
mindsdb:
16
+ container_name: kb_mindsdb
17
image: mindsdb/mindsdb:latest
18
ports:
19
- "47334:47334"
20
- "47335:47335"
- - "47337:47337"
21
volumes:
22
- mindsdb_data:/root/mdb_storage
23
depends_on:
24
- db
25
26
27
- # server:
- # image: kbnet-server:latest
- # depends_on:
- # - mindsdb
- # - db
- # ports:
- # - "8000:8000"
- # env_file:
- # - .env
- # networks:
- # - kbnet
+ platform:
+ container_name: kb_platform
+ build:
+ context: .
+ dockerfile: ./apps/platform/Dockerfile
+ depends_on:
+ - server
+ - db
+ ports:
+ - "3000:3000"
+ env_file:
+ - .env
+ networks:
+ - kbnet
+ server:
+ container_name: kb_server
46
47
+ dockerfile: ./apps/server/Dockerfile
48
49
+ - mindsdb
50
51
52
+ - "8000:8000"
53
54
55
56
57
58
59
mindsdb_data:
packages/shared/src/lib/constants/configs.js
@@ -1,5 +1,4 @@
const PROJECT_NAME = "kbnet";
-const APPDB_DS = "appdb_ds";
export const MindsDBConfig = {
PROJECT_NAME: PROJECT_NAME,
@@ -9,12 +8,12 @@ export const MindsDBConfig = {
SUMMARY_JOB_NAME: `${PROJECT_NAME}.summary_job`,
PENDING_SUMMARY_VIEW_NAME: `${PROJECT_NAME}.pending_summary_view`,
- APPDB_DS: APPDB_DS,
- MAPS: `${APPDB_DS}.public.maps`,
- NODES: `${APPDB_DS}.public.nodes`,
- NAVIGATION_STEPS: `${APPDB_DS}.public.navigation_steps`,
- NODE_RELATIONSHIPS: `${APPDB_DS}.public.node_relationships`,
- MAPS_SUMMARIES: `${APPDB_DS}.public.maps_summaries`,
+ APPDB_DS: "appdb_ds",
+ MAPS: `appdb_ds.public.maps`,
+ NODES: `appdb_ds.public.nodes`,
+ NAVIGATION_STEPS: `appdb_ds.public.navigation_steps`,
+ NODE_RELATIONSHIPS: `appdb_ds.public.node_relationships`,
+ MAPS_SUMMARIES: `appdb_ds.public.maps_summaries`,
HACKERNEWS_DS: "hackernews_ds",
MEDIAWIKI_DS: "mediawiki_ds",
packages/shared/src/lib/mindsdb/index.ts
@@ -1 +1,32 @@
-export { connectMindsDB, runMindsDBQuery } from "./mindsdb";
+import mindsdb, { type SqlQueryResult } from "mindsdb-js-sdk";
+import dotenv from "dotenv";
+dotenv.config();
+const config = {
+ host: process.env.MINDSDB_HOST || "http://localhost:47334",
+ user: process.env.MINDSDB_USER || "mindsdb",
+ password: process.env.MINDSDB_PASSWORD || "mindsdb",
+};
+export async function connectMindsDB() {
+ try {
+ // @ts-ignore
+ await mindsdb.default.connect(config);
+ } catch (error) {
+ console.error("Failed to connect to MindsDB:", error);
+ throw error;
+ }
+}
+export async function runMindsDBQuery(query: string): Promise<SqlQueryResult> {
+ await connectMindsDB();
+ const result = await mindsdb.default.SQL.runQuery(query);
+ return result;
+ console.error("Error executing MindsDB query:", error);
packages/shared/src/lib/mindsdb/mindsdb.ts
self-host/.env.example
@@ -2,8 +2,8 @@
# Required environment variables for the KBNet self-hosted instance
DATABASE_URL=postgresql://mindsdb:mindsdb@kbnet_database:5432/mindsdb
-NEXT_PUBLIC_SERVER_URL=http://kbnet_server:8000
-NEXT_PUBLIC_WS_SERVER_URL=ws://kbnet_server:8000
+NEXT_PUBLIC_SERVER_URL=http://localhost:8000
+NEXT_PUBLIC_WS_SERVER_URL=ws://localhost:8000
BETTER_AUTH_SECRET=auth_secret_token
BETTER_AUTH_URL=http://localhost:3000
self-host/Makefile
@@ -54,6 +54,10 @@ check-db:
prisma-push:
@echo "🔄 Running Prisma DB push..."
+ export DATABASE_URL=$(grep DATABASE_URL .env | cut -d '=' -f2-)
+ @if [ -z "$$DATABASE_URL" ]; then echo "❌ DATABASE_URL is not set in .env file"; exit 1; fi
+ @echo "Using DATABASE_URL: $$DATABASE_URL"
60
+ @echo "Running Prisma DB push..."
61
npx prisma db push --skip-generate
62
63
check-mindsdb:
self-host/seed/src/index.js
@@ -8,12 +8,12 @@ import { connectMindsDB } from "./lib/mindsdb.js";
export async function seed() {
try {
await connectMindsDB();
+ await kb.createKB();
+ await datasources.createDatasource();
await jobs.createPendingSummaryView();
+ await ml.setup();
await jobs.createSummaryGenerationJob();
- await datasources.createDatasource();
- await kb.createKB();
await agents.createAgent();
- await ml.setup();
console.log("MindsDB setup completed successfully.");
} catch (error) {
console.log(error);
0 commit comments