Fix docker-compose for Portainer deployment

- Use relative paths for build contexts
- Add OLLAMA_URL pointing to existing LXC (192.168.1.217)
- Configure ports to avoid conflicts
- Add PUBLIC_API_URL for web-ui
main
Clawd 3 weeks ago
parent bf5fcbdca9
commit e25a9c6316

@ -1,9 +1,15 @@
POSTGRES_PASSWORD=braindb2026
OLLAMA_URL=http://192.168.1.217:11434
EMBEDDING_MODEL=nomic-embed-text
CHAT_MODEL=qwen3:8b
LOG_LEVEL=INFO
SEARCH_TOP_K=10
SEARCH_THRESHOLD=0.65
CORS_ORIGINS=http://localhost:3000,http://192.168.1.16:3001
CORS_ORIGINS=*
CHUNK_SIZE=700
CHUNK_OVERLAP=70
VAULT_PATH=./vault
PUBLIC_API_URL=http://192.168.1.16:8001
API_PORT=8001
UI_PORT=3001
POSTGRES_PORT=5433

@ -15,7 +15,7 @@ services:
- postgres_data:/var/lib/postgresql/data
- ./infra/database/schema.sql:/docker-entrypoint-initdb.d/01_schema.sql:ro
ports:
- "${POSTGRES_PORT:-5432}:5432"
- "${POSTGRES_PORT:-5433}:5432"
networks:
- brain-net
healthcheck:
@ -41,53 +41,6 @@ services:
timeout: 5s
retries: 5
# ---------------------------------------------------------------------------
# Ollama (local LLM inference)
# ---------------------------------------------------------------------------
ollama:
image: ollama/ollama:latest
container_name: second-brain-ollama
restart: unless-stopped
volumes:
- ollama_data:/root/.ollama
ports:
- "${OLLAMA_PORT:-11434}:11434"
networks:
- brain-net
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:11434/api/tags"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
# ---------------------------------------------------------------------------
# Ollama model bootstrap (pulls required models on first start)
# ---------------------------------------------------------------------------
ollama-bootstrap:
image: ollama/ollama:latest
container_name: second-brain-ollama-bootstrap
depends_on:
ollama:
condition: service_healthy
volumes:
- ollama_data:/root/.ollama
networks:
- brain-net
entrypoint: ["/bin/sh", "-c"]
command:
- |
OLLAMA_HOST=ollama:11434 ollama pull ${EMBEDDING_MODEL:-nomic-embed-text}
OLLAMA_HOST=ollama:11434 ollama pull ${CHAT_MODEL:-mistral}
restart: "no"
# ---------------------------------------------------------------------------
# RAG API (FastAPI)
# ---------------------------------------------------------------------------
@ -97,18 +50,20 @@ services:
dockerfile: Dockerfile
container_name: second-brain-rag-api
restart: unless-stopped
env_file:
- .env
environment:
DATABASE_URL: postgresql://brain:${POSTGRES_PASSWORD:-brain}@postgres:5432/second_brain
OLLAMA_URL: http://ollama:11434
OLLAMA_URL: ${OLLAMA_URL:-http://192.168.1.217:11434}
EMBEDDING_MODEL: ${EMBEDDING_MODEL:-nomic-embed-text}
CHAT_MODEL: ${CHAT_MODEL:-qwen3:8b}
LOG_LEVEL: ${LOG_LEVEL:-INFO}
SEARCH_TOP_K: ${SEARCH_TOP_K:-10}
SEARCH_THRESHOLD: ${SEARCH_THRESHOLD:-0.65}
CORS_ORIGINS: ${CORS_ORIGINS:-*}
depends_on:
postgres:
condition: service_healthy
ollama:
condition: service_healthy
ports:
- "${API_PORT:-8000}:8000"
- "${API_PORT:-8001}:8000"
networks:
- brain-net
healthcheck:
@ -127,19 +82,18 @@ services:
dockerfile: Dockerfile
container_name: second-brain-ingestion
restart: unless-stopped
env_file:
- .env
environment:
DATABASE_URL: postgresql://brain:${POSTGRES_PASSWORD:-brain}@postgres:5432/second_brain
OLLAMA_URL: http://ollama:11434
OLLAMA_URL: ${OLLAMA_URL:-http://192.168.1.217:11434}
VAULT_PATH: /vault
EMBEDDING_MODEL: ${EMBEDDING_MODEL:-nomic-embed-text}
CHUNK_SIZE: ${CHUNK_SIZE:-700}
CHUNK_OVERLAP: ${CHUNK_OVERLAP:-70}
volumes:
- ./vault:/vault:ro
- ${VAULT_PATH:-./vault}:/vault:ro
depends_on:
postgres:
condition: service_healthy
ollama:
condition: service_healthy
networks:
- brain-net
@ -152,19 +106,16 @@ services:
dockerfile: Dockerfile
container_name: second-brain-agents
restart: unless-stopped
env_file:
- .env
environment:
DATABASE_URL: postgresql://brain:${POSTGRES_PASSWORD:-brain}@postgres:5432/second_brain
OLLAMA_URL: http://ollama:11434
OLLAMA_URL: ${OLLAMA_URL:-http://192.168.1.217:11434}
VAULT_PATH: /vault
CHAT_MODEL: ${CHAT_MODEL:-qwen3:8b}
volumes:
- ./vault:/vault:ro
- ${VAULT_PATH:-./vault}:/vault:ro
depends_on:
postgres:
condition: service_healthy
rag-api:
condition: service_healthy
networks:
- brain-net
@ -178,19 +129,17 @@ services:
container_name: second-brain-ui
restart: unless-stopped
environment:
NEXT_PUBLIC_API_URL: http://localhost:${API_PORT:-8000}
NEXT_PUBLIC_API_URL: ${PUBLIC_API_URL:-http://localhost:8001}
depends_on:
rag-api:
condition: service_healthy
- rag-api
ports:
- "${UI_PORT:-3000}:3000"
- "${UI_PORT:-3001}:3000"
networks:
- brain-net
volumes:
postgres_data:
redis_data:
ollama_data:
networks:
brain-net:

Loading…
Cancel
Save

Powered by TurnKey Linux.