Files
DocuMind-G4/docker-compose.yml
2026-03-13 21:49:46 +01:00

98 lines
2.2 KiB
YAML

version: '3.8'
services:
# Continer für PostgreSQL Datenbank
postgres:
image: postgres:15
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_MULTIPLE_DATABASES: paperless,ragdb
volumes:
- postgres_data:/var/lib/postgresql/data
- ./init-scripts/init-databases.sh:/docker-entrypoint-initdb.d/init-databases.sh:ro
ports:
- "5432:5432"
# Container für Vectordatenbank
chromadb:
image: chromadb/chroma:latest
volumes:
- chroma_data:/chroma/chroma
ports:
- "8000:8000"
# Container für ollama
ollama:
image: ollama/ollama:latest
volumes:
- ollama_data:/root/.ollama
- ./init-scripts/init_ollama.sh:/init_ollama.sh:ro
entrypoint: ["/usr/bin/env", "bash", "/init_ollama.sh"]
ports:
- "11434:11434"
# Container für Streamlit UI
streamlit:
build: .
command: streamlit run src/app.py --server.port=8501 --server.address=0.0.0.0
ports:
- "8501:8501"
env_file: .env
depends_on:
- postgres
- chromadb
- ollama
# Container für den Telegram Bot
telegram-bot:
build: .
command: python src/telegram_bot.py
env_file: .env
depends_on:
- postgres
- chromadb
- ollama
# Container für den Ingest-Scheduler
scheduler:
build: .
command: python src/run_scheduler.py
env_file: .env
depends_on:
- postgres
- chromadb
- ollama
# Container für Paperless-ngx redis Broker
broker:
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
# Container für Paperless-ngx
paperless:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- db
- broker
ports:
- "8000:8000"
volumes:
- paperless_data:/usr/src/paperless/data
- paperless_media:/usr/src/paperless/media
env_file: .env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: ${POSTGRES_HOST}
PAPERLESS_DBNAME: paperless
volumes:
postgres_data:
chroma_data:
ollama_data:
redisdata:
paperless_data:
paperless_media: