mirror of
https://github.com/turnstonelabs/turnstone.git
synced 2026-08-12 23:12:23 -06:00
2b58c127b1
* Add pluggable storage backend (SQLite + PostgreSQL) and deployment packaging Database abstraction: StorageBackend protocol with 21 methods, SQLAlchemy Core schema, SQLite backend (FTS5), PostgreSQL backend (tsvector/ILIKE), Alembic migrations, singleton registry. memory.py reduced to thin facade. Session.py open_db() calls replaced with generic KV methods. [database] config section with env var support. Deployment: Docker Compose production profile with PostgreSQL, Dockerfile with postgres extras and migration entrypoint, Helm chart with bitnami subcharts, Terraform AWS ECS/Fargate module with RDS + ElastiCache + ALB. 39 new storage tests (934 total). mypy strict clean. Docs and diagrams updated. * Address PR #20 review feedback (16 items) - Backends only call create_all() when Alembic migrations are disabled - Helm configmap uses correct TURNSTONE_DB_BACKEND env var; DB URL constructed via env expansion with secret reference instead of ConfigMap - Migration errors fail fast for PostgreSQL (only non-fatal for SQLite) - save_memory/delete_memory wrapped in exception handling like other facade fns - pool_size passed through from config/env to init_storage() in cli + server - Terraform: DB URL moved to Secrets Manager, auth enabled flag set, optional TLS listeners with certificate_arn, Redis transit encryption on - Docker entrypoint no longer suppresses migration output - Diagram fixes: removed StaticPool claim, removed non-existent migration ref - compose.yaml/README: clarified production profile requires DB env vars
29 lines
1.1 KiB
Bash
29 lines
1.1 KiB
Bash
# =============================================================================
|
|
# Turnstone Environment Variables
|
|
# Copy to .env and adjust values for your deployment
|
|
# =============================================================================
|
|
|
|
# -- LLM Backend --------------------------------------------------------------
|
|
LLM_BASE_URL=http://host.docker.internal:8000/v1
|
|
OPENAI_API_KEY=sk-...
|
|
# ANTHROPIC_API_KEY=sk-ant-... # Set instead for Anthropic provider
|
|
# TAVILY_API_KEY=tvly-... # For web search fallback (local models only)
|
|
|
|
# -- Database (production profile) --------------------------------------------
|
|
# DB_BACKEND=postgresql
|
|
# POSTGRES_USER=turnstone
|
|
# POSTGRES_PASSWORD=changeme
|
|
# DATABASE_URL=postgresql+psycopg://turnstone:changeme@postgres:5432/turnstone
|
|
|
|
# -- Redis ---------------------------------------------------------------------
|
|
# REDIS_PASSWORD=
|
|
# REDIS_PORT=6379
|
|
|
|
# -- Authentication ------------------------------------------------------------
|
|
# TURNSTONE_AUTH_ENABLED=true
|
|
# TURNSTONE_AUTH_TOKEN=your-secret-token
|
|
|
|
# -- Ports ---------------------------------------------------------------------
|
|
# SERVER_PORT=8080
|
|
# CONSOLE_PORT=8090
|