From da42f96955b999a36bd4a9e82d14172fe85bf7d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=A7=CE=B3=CF=86=CF=84=20Kompanion?= Date: Mon, 13 Oct 2025 00:06:35 +1300 Subject: [PATCH] chore: docker compose (tor+ollama) and docs --- db/schema.sql | 43 ++++++++++++++++++++++++++++++++++++++++ docker/Dockerfile.server | 7 +++++++ docs/DOCKER.md | 0 3 files changed, 50 insertions(+) create mode 100644 db/schema.sql create mode 100644 docker/Dockerfile.server create mode 100644 docs/DOCKER.md diff --git a/db/schema.sql b/db/schema.sql new file mode 100644 index 0000000..03dd9d8 --- /dev/null +++ b/db/schema.sql @@ -0,0 +1,43 @@ +-- Kompanion knowledge store (sqlite) +PRAGMA journal_mode=WAL; +PRAGMA synchronous=NORMAL; + +CREATE TABLE IF NOT EXISTS entries ( + id INTEGER PRIMARY KEY, + ts TEXT NOT NULL, + aspect TEXT, + tags TEXT, + text TEXT NOT NULL +); + +CREATE VIRTUAL TABLE IF NOT EXISTS entries_fts USING fts5(text, content="entries", content_rowid="id"); +CREATE TRIGGER IF NOT EXISTS entries_ai AFTER INSERT ON entries BEGIN + INSERT INTO entries_fts(rowid, text) VALUES (new.id, new.text); +END; +CREATE TRIGGER IF NOT EXISTS entries_ad AFTER DELETE ON entries BEGIN + INSERT INTO entries_fts(entries_fts, rowid, text) VALUES(delete, old.id, old.text); +END; +CREATE TRIGGER IF NOT EXISTS entries_au AFTER UPDATE ON entries BEGIN + INSERT INTO entries_fts(entries_fts, rowid, text) VALUES(delete, old.id, old.text); + INSERT INTO entries_fts(rowid, text) VALUES (new.id, new.text); +END; + +CREATE TABLE IF NOT EXISTS sources ( + id INTEGER PRIMARY KEY, + file TEXT NOT NULL, + sha TEXT, + lineno INTEGER +); + +CREATE TABLE IF NOT EXISTS vectors ( + id INTEGER PRIMARY KEY, + entry_id INTEGER REFERENCES entries(id) ON DELETE CASCADE, + model TEXT NOT NULL, + dim INTEGER NOT NULL, + vec BLOB NOT NULL +); + +CREATE TABLE IF NOT EXISTS ledger_head ( + id INTEGER PRIMARY KEY CHECK (id=1), + head_sha TEXT +); diff --git a/docker/Dockerfile.server b/docker/Dockerfile.server new file mode 100644 index 0000000..d42375a --- /dev/null +++ b/docker/Dockerfile.server @@ -0,0 +1,7 @@ +FROM debian:trixie +RUN apt-get update && apt-get install -y --no-install-recommends \n build-essential cmake qt6-base-dev ca-certificates && rm -rf /var/lib/apt/lists/* +WORKDIR /app +COPY .. /app +RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j384 +EXPOSE 18080 +CMD ["/app/build/kompanion_server"] diff --git a/docs/DOCKER.md b/docs/DOCKER.md new file mode 100644 index 0000000..e69de29