refactor(coolify): externalize postgres, qdrant, S3
Some checks failed
Deploy to Coolify / deploy (push) Has been cancelled

- Replace bp-core-postgres with POSTGRES_HOST env var
- Replace bp-core-qdrant with QDRANT_URL env var
- Replace bp-core-minio with S3_ENDPOINT/S3_ACCESS_KEY/S3_SECRET_KEY

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Sharang Parnerkar
2026-03-03 09:23:32 +01:00
parent 41a8f3b183
commit ef6237ffdf
2 changed files with 25 additions and 16 deletions

View File

@@ -5,7 +5,9 @@
# for the breakpilot-lehrer Docker Compose resource. # for the breakpilot-lehrer Docker Compose resource.
# ========================================================= # =========================================================
# --- Database (shared with Core) --- # --- External PostgreSQL (Coolify-managed, same as Core) ---
POSTGRES_HOST=<coolify-postgres-hostname>
POSTGRES_PORT=5432
POSTGRES_USER=breakpilot POSTGRES_USER=breakpilot
POSTGRES_PASSWORD=CHANGE_ME_SAME_AS_CORE POSTGRES_PASSWORD=CHANGE_ME_SAME_AS_CORE
POSTGRES_DB=breakpilot_db POSTGRES_DB=breakpilot_db
@@ -13,10 +15,15 @@ POSTGRES_DB=breakpilot_db
# --- Security --- # --- Security ---
JWT_SECRET=CHANGE_ME_SAME_AS_CORE JWT_SECRET=CHANGE_ME_SAME_AS_CORE
# --- MinIO (from Core) --- # --- External S3 Storage (same as Core) ---
MINIO_ROOT_USER=breakpilot S3_ENDPOINT=<s3-endpoint-host:port>
MINIO_ROOT_PASSWORD=CHANGE_ME_SAME_AS_CORE S3_ACCESS_KEY=CHANGE_ME_SAME_AS_CORE
MINIO_BUCKET=breakpilot-rag S3_SECRET_KEY=CHANGE_ME_SAME_AS_CORE
S3_BUCKET=breakpilot-rag
S3_SECURE=true
# --- External Qdrant (Coolify-managed, same as Core) ---
QDRANT_URL=http://<coolify-qdrant-hostname>:6333
# --- Session --- # --- Session ---
SESSION_TTL_HOURS=24 SESSION_TTL_HOURS=24

View File

@@ -3,6 +3,8 @@
# ========================================================= # =========================================================
# Requires: breakpilot-core must be running # Requires: breakpilot-core must be running
# Deployed via Coolify. SSL termination handled by Traefik. # Deployed via Coolify. SSL termination handled by Traefik.
# External services (managed separately in Coolify):
# - PostgreSQL, Qdrant, S3-compatible storage
# ========================================================= # =========================================================
networks: networks:
@@ -132,7 +134,7 @@ services:
- lehrer_backend_data:/app/data - lehrer_backend_data:/app/data
environment: environment:
PORT: 8001 PORT: 8001
DATABASE_URL: postgresql+asyncpg://${POSTGRES_USER}:${POSTGRES_PASSWORD}@bp-core-postgres:5432/${POSTGRES_DB}?options=-csearch_path%3Dlehrer,core,public DATABASE_URL: postgresql+asyncpg://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT:-5432}/${POSTGRES_DB}?options=-csearch_path%3Dlehrer,core,public
JWT_SECRET: ${JWT_SECRET} JWT_SECRET: ${JWT_SECRET}
ENVIRONMENT: production ENVIRONMENT: production
CONSENT_SERVICE_URL: http://bp-core-consent-service:8081 CONSENT_SERVICE_URL: http://bp-core-consent-service:8081
@@ -195,14 +197,14 @@ services:
BACKEND_URL: http://backend-lehrer:8001 BACKEND_URL: http://backend-lehrer:8001
SCHOOL_SERVICE_URL: http://school-service:8084 SCHOOL_SERVICE_URL: http://school-service:8084
ENVIRONMENT: production ENVIRONMENT: production
DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@bp-core-postgres:5432/${POSTGRES_DB} DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT:-5432}/${POSTGRES_DB}
EMBEDDING_SERVICE_URL: http://bp-core-embedding-service:8087 EMBEDDING_SERVICE_URL: http://bp-core-embedding-service:8087
QDRANT_URL: http://bp-core-qdrant:6333 QDRANT_URL: ${QDRANT_URL}
MINIO_ENDPOINT: bp-core-minio:9000 MINIO_ENDPOINT: ${S3_ENDPOINT}
MINIO_ACCESS_KEY: ${MINIO_ROOT_USER} MINIO_ACCESS_KEY: ${S3_ACCESS_KEY}
MINIO_SECRET_KEY: ${MINIO_ROOT_PASSWORD} MINIO_SECRET_KEY: ${S3_SECRET_KEY}
MINIO_BUCKET: ${MINIO_BUCKET:-breakpilot-rag} MINIO_BUCKET: ${S3_BUCKET:-breakpilot-rag}
MINIO_SECURE: "false" MINIO_SECURE: ${S3_SECURE:-true}
PADDLEOCR_SERVICE_URL: ${PADDLEOCR_SERVICE_URL:-} PADDLEOCR_SERVICE_URL: ${PADDLEOCR_SERVICE_URL:-}
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-} ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
OLLAMA_BASE_URL: ${OLLAMA_BASE_URL:-} OLLAMA_BASE_URL: ${OLLAMA_BASE_URL:-}
@@ -239,7 +241,7 @@ services:
expose: expose:
- "8084" - "8084"
environment: environment:
DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@bp-core-postgres:5432/${POSTGRES_DB} DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT:-5432}/${POSTGRES_DB}
JWT_SECRET: ${JWT_SECRET} JWT_SECRET: ${JWT_SECRET}
PORT: 8084 PORT: 8084
ENVIRONMENT: production ENVIRONMENT: production
@@ -300,8 +302,8 @@ services:
RATE_LIMIT_PER_SEC: "0.2" RATE_LIMIT_PER_SEC: "0.2"
MAX_DEPTH: "4" MAX_DEPTH: "4"
MAX_PAGES_PER_RUN: "500" MAX_PAGES_PER_RUN: "500"
DB_HOST: bp-core-postgres DB_HOST: ${POSTGRES_HOST}
DB_PORT: "5432" DB_PORT: ${POSTGRES_PORT:-5432}
DB_USER: ${POSTGRES_USER} DB_USER: ${POSTGRES_USER}
DB_PASSWORD: ${POSTGRES_PASSWORD} DB_PASSWORD: ${POSTGRES_PASSWORD}
DB_NAME: ${POSTGRES_DB} DB_NAME: ${POSTGRES_DB}