version: '3.6'

services:
  ollama:
    # Uncomment below for GPU support
    # deploy:
    #   resources:
    #     reservations:
    #       devices:
    #         - driver: nvidia
    #           count: 1
    #           capabilities:
    #             - gpu
    volumes:
      - ollama:/root/.ollama
    # Uncomment below to expose Ollama API outside the container stack
    # ports:
    #   - 11434:11434
    container_name: ollama
    pull_policy: always
    tty: true
    restart: unless-stopped
    image: ollama/ollama:latest


  # Uncomment below for WIP: Auth support
  # ollama-webui-db:
  #   image: mongo
  #   container_name: ollama-webui-db
  #   restart: always
  #   # Make sure to change the username/password!
  #   environment:
  #     MONGO_INITDB_ROOT_USERNAME: root
  #     MONGO_INITDB_ROOT_PASSWORD: example

  ollama-webui:
    build:
      context: .
      args:
        OLLAMA_API_BASE_URL: '/ollama/api'
      dockerfile: Dockerfile
    image: ollama-webui:latest
    container_name: ollama-webui
    depends_on:
      - ollama
      # Uncomment below for WIP: Auth support
      # - ollama-webui-db
    ports:
      - 3000:8080
    environment:
      - "OLLAMA_API_BASE_URL=http://ollama:11434/api"
      # Uncomment below for WIP: Auth support
      # - "WEBUI_AUTH=TRUE"
      # - "WEBUI_DB_URL=mongodb://root:example@ollama-webui-db:27017/"
      # - "WEBUI_JWT_SECRET_KEY=SECRET_KEY"
    extra_hosts:
      - host.docker.internal:host-gateway
    restart: unless-stopped

volumes:
  ollama: {}