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: