Skip to content

infra: add QA Docker Compose stack with Postgres + Ollama#229

Merged
cmeans merged 3 commits into
mainfrom
infra/qa-docker-compose-v2
Apr 9, 2026
Merged

infra: add QA Docker Compose stack with Postgres + Ollama#229
cmeans merged 3 commits into
mainfrom
infra/qa-docker-compose-v2

Conversation

@cmeans
Copy link
Copy Markdown
Owner

@cmeans cmeans commented Apr 9, 2026

Summary

Self-contained QA testing environment with full embedding support:

  • Postgres (pgvector/pg17) — isolated awareness_qa database, UTF-8, named volume
  • Ollama (nomic-embed-text) — auto-pulls model on first start, cached in volume
  • mcp-awareness — built from local source, port 8421 (alongside production on 8420)

One command up, one command teardown. No more ad-hoc docker run commands for QA.

Usage

# Stand up
docker compose -f docker-compose.qa.yaml up -d --build

# Test
curl -s http://localhost:8421/health | python3 -m json.tool

# Tear down (deletes data)
docker compose -f docker-compose.qa.yaml down -v

QA

Verified

    • Stack starts cleanly (Postgres healthy → Ollama healthy → app starts)
    • Health endpoint responds on port 8421
    • remember creates entries
    • semantic_search returns results with similarity scores (Ollama embeddings working)
    • down -v tears down cleanly (containers, volumes, network)

🤖 Generated with Claude Code

Self-contained QA testing environment: Postgres (pgvector), Ollama
(nomic-embed-text), and mcp-awareness built from local source.
Runs on port 8421 alongside production on 8420.

Usage: docker compose -f docker-compose.qa.yaml up -d --build
Teardown: docker compose -f docker-compose.qa.yaml down -v

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added the Awaiting CI Dev complete, waiting for CI/Codecov to pass before QA label Apr 9, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 9, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copy link
Copy Markdown
Owner Author

@cmeans cmeans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@github-actions github-actions Bot added Ready for QA Dev work complete — QA can begin review and removed Awaiting CI Dev complete, waiting for CI/Codecov to pass before QA labels Apr 9, 2026
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added Awaiting CI Dev complete, waiting for CI/Codecov to pass before QA and removed Ready for QA Dev work complete — QA can begin review labels Apr 9, 2026
Copy link
Copy Markdown
Owner Author

@cmeans cmeans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@github-actions github-actions Bot added Ready for QA Dev work complete — QA can begin review and removed Awaiting CI Dev complete, waiting for CI/Codecov to pass before QA labels Apr 9, 2026
Copy link
Copy Markdown
Contributor

@cmeans-claude-dev cmeans-claude-dev Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev Review — PR #229

Clean, self-contained QA stack. No blockers. A few observations for QA to consider:

Observations

1. [Minor] Hardcoded credentials in repo
awareness-qa password is in the compose file. Fine for a local ephemeral stack — just noting it's committed to the repo. No action needed.

2. [Minor] Ollama version pinned to 0.19.0
Good for reproducibility, will go stale over time. Could add a comment noting when to bump, or use a floating tag. Low priority.

3. [Informational] No AWARENESS_DEFAULT_OWNER set
Will default to getpass.getuser() inside the container (likely root). Not a problem, but entries will have owner_id=root rather than a named user. Could set to qa for clarity.

4. [Informational] Auth disabled
AWARENESS_AUTH_REQUIRED not set, so auth is off. Correct for QA ease of use. Just means auth-path testing still needs the production instance or a separate config.

5. [Low risk] Ollama cold-start timing
Healthcheck gives ~360s total (start_period: 60s + 10 retries × 30s). Should cover most cases, but a first-ever pull of nomic-embed-text on a slow connection could exceed this. The cached volume solves repeat starts.

Verdict

Ship it. Nice addition to the QA workflow.

Dev review feedback — avoids owner_id=root inside container.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@cmeans
Copy link
Copy Markdown
Owner Author

cmeans commented Apr 9, 2026

Thanks for the review. Addressed observation #3 — added AWARENESS_DEFAULT_OWNER=qa so QA entries are identifiable. Other observations noted and accepted as-is (hardcoded creds fine for ephemeral local stack, version pin comment is fair, auth-off is intentional, cold-start timing covered by cached volume).

@github-actions github-actions Bot added Awaiting CI Dev complete, waiting for CI/Codecov to pass before QA Ready for QA Dev work complete — QA can begin review and removed Ready for QA Dev work complete — QA can begin review Awaiting CI Dev complete, waiting for CI/Codecov to pass before QA labels Apr 9, 2026
@cmeans cmeans added QA Approved Manual QA testing completed and passed and removed Ready for QA Dev work complete — QA can begin review labels Apr 9, 2026
@cmeans cmeans merged commit 5d35d64 into main Apr 9, 2026
19 checks passed
@cmeans cmeans deleted the infra/qa-docker-compose-v2 branch April 9, 2026 20:36
@cmeans cmeans mentioned this pull request Apr 10, 2026
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

QA Approved Manual QA testing completed and passed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant