services:
  gitea: # Имя сервиса
    image: gitea/gitea:latest # Имя образа
    container_name: gitea # Имя контейнера, может быть произовольным
    ports:
      - "3000:3000"  # Проброс порта Gitea на хост
    volumes: # хранилище
      - data:/data
    environment: # переменные окружения
      USER_UID: 1000
      USER_GID: 1000

  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: always
    ports:
      - 7869:11434
    pull_policy: always
    tty: true
    volumes:
      - .:/code
      - ./ollama/ollama:/root/.ollama  # Директория для данных Ollama
    environment:
      - OLLAMA_KEEP_ALIVE=24h
      - OLLAMA_HOST=0.0.0.0  # Указываем хост для API Ollama
    networks:
      - ollama-docker
    command: ["serve"]  # Запускаем Ollama в режиме сервера

  ollama-webui:
    image: ghcr.io/open-webui/open-webui:main  # Образ Open Web UI
    container_name: ollama-webui
    restart: unless-stopped
    volumes:
      - ./ollama/ollama-webui:/app/backend/data
    ports:
      - 8080:8080  # Порт для веб-интерфейса
    environment: # https://docs.openwebui.com/getting-started/env-configuration#default_models
      - OLLAMA_BASE_URLS=http://host.docker.internal:7869
      - ENV=dev
      - WEBUI_AUTH=False
      - WEBUI_NAME=Viltskaa AI
      - WEBUI_URL=http://localhost:8080
      - WEBUI_SECRET_KEY=t0p-s3cr3t
    depends_on:
      - ollama
    extra_hosts:
      - host.docker.internal:host-gateway
    networks:
      - ollama-docker

networks:
  ollama-docker:
    external: false

volumes:
  ollama:
    driver: local
  data:
    driver: local