v0.6.0: bundled Postgres option, isolated test stack, built-in frontend, new branding - #13
Merged
Conversation
New braindb_db service (pgvector/pg17) guarded by the internal-db compose profile. .env.example ships COMPOSE_PROFILES=internal-db, so a fresh clone gets a working database with plain `docker compose up -d` - nothing to install. Without that line the service does not exist and existing setups run exactly as before: DATABASE_URL keeps pointing at your own Postgres. DATABASE_URL defaults to the bundled DSN via nested interpolation; an explicit value always wins. Optional knobs: POSTGRES_PORT (host inspection port, loopback-only, default 5435), POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD. The api waits on the DB healthcheck via depends_on with required: false, so one compose file serves both modes. Requires Compose >= 2.20. Closes #12.
…user's The suite previously ran against the live personal stack at :8000 and relied on pattern-matched cleanup of what it created; the cleanup silently failed from the host and test keywords leaked into real data. Deleting rows from whatever database the user has configured is the wrong design regardless of pattern. Now: docker-compose.test.yml runs a self-contained stack (API on 8002, throwaway Postgres braindb_test on host port 5436, own project namespace, no watcher/scheduler so tests are deterministic). conftest defaults to it and fails fast with instructions if it isn't up - bare pytest can no longer reach a personal database. The session-end deletion sweep is removed entirely; `down -v` wipes all test data. Ingest tests write into data_test/ (the test stack's data dir), the direct-DB graph tests default to the test Postgres and skip with a clear reason when it is unreachable, and test keywords consistently use the _pytest_ prefix.
…n header - New always-on `frontend` service: nginx:alpine over the static frontend/ directory, published loopback-only at 127.0.0.1:8642 (FRONTEND_PORT knob). No build step, no Dockerfile; `docker compose up -d` now includes the browser UI with zero manual steps. Loopback is deliberate: the UI calls the API at http://localhost:8000 from the browser, so wider publishing would not make it usable remotely anyway. - Logo in the frontend header (replaces the text brand) + SVG favicon. - frontend/README.md updated: compose is the default route, any static server still works. - Relocated the wiki_scheduler comment block that had ended up stranded above braindb_db.
- BrainDB logo (SVG) centered at the top of the README, replacing the plain-text H1. - Five architecture diagrams placed in their sections: keyword-graph mechanism (Why BrainDB?), retrieval pipeline (How Retrieval Works), save/ingest lanes (File Ingestion), maintainer loop + writer pipeline (Autonomous Wiki Maintenance). All self-contained SVGs with explicit dark backgrounds, so they render identically on GitHub light and dark themes. - docs/assets/social-preview.png (1280x640): the link-share card for the repo. GitHub Settings -> General -> Social preview accepts PNG/JPG only, so this is the one raster asset; everything rendered in the repo is SVG. - Frontend README section: now served by the stack at localhost:8642.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What's in this PR
Bundled internal Postgres — one flag in
.env(closes #12)braindb_dbservice (pgvector/pg17) guarded by a compose profile..env.examplenow shipsCOMPOSE_PROFILES=internal-db, so a fresh clone gets a working database with plaindocker compose up -d— nothing to install.DATABASE_URL. Existing deployments are untouched — without the flag the bundled service does not exist. Optional knobs for the host port, db name, and credentials.Tests now run on an isolated stack — never your database
docker-compose.test.yml: its own API (port 8002) and its own throwaway Postgres (port 5436) on a private network.up -d→pytest→down -vwipes everything.pytestwithout the test stack now fails fast with instructions instead of touching anything.Frontend served by the stack
frontendservice (nginx over the staticfrontend/directory) joinsdocker compose up -d— the read-only browser UI is athttp://localhost:8642right after startup (loopback-only;FRONTEND_PORTto change it). The manual static-server route still works.Branding
docs/assets/social-preview.pngadded for the repo's link-share card.Verification