Ctrl K
ComunidadGuías…

docker-compose.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
services:
  ocis:
    image: ${OCIS_IMAGE:-owncloud/ocis-rolling:latest}
    entrypoint: /bin/sh
    command: ['-c', 'ocis init || true && ocis server']
    extra_hosts:
      - host.docker.internal:${DOCKER_HOST:-host-gateway}
    environment:
      OCIS_URL: https://host.docker.internal:9200
      OCIS_INSECURE: true
      OCIS_LOG_LEVEL: error
      IDM_ADMIN_PASSWORD: admin
      PROXY_ENABLE_BASIC_AUTH: true
      PROXY_TLS: 'false'
      WEB_ASSET_APPS_PATH: /web/apps
      WEB_UI_CONFIG_FILE: /web/config.json
      PROXY_CSP_CONFIG_FILE_LOCATION: /etc/ocis/csp.yaml
      # fulltext search
      SEARCH_EXTRACTOR_TYPE: tika
      SEARCH_EXTRACTOR_TIKA_TIKA_URL: http://tika:9998
      FRONTEND_FULL_TEXT_SEARCH_ENABLED: "true"
    labels:
      traefik.enable: true
      traefik.http.routers.ocis.tls: true
      traefik.http.routers.ocis.rule: Host(`host.docker.internal`) && PathPrefix(`/`)
      traefik.http.routers.ocis.entrypoints: ocis
      traefik.http.services.ocis.loadbalancer.server.port: 9200
      traefik.http.routers.ocis.middlewares: cors
    volumes:
      - ocis-config:/etc/ocis
      - ./dev/docker/ocis.web.config.json:/web/config.json
      - ./dev/docker/ocis.apps.yaml:/etc/ocis/apps.yaml
      - ./dev/docker/csp.yaml:/etc/ocis/csp.yaml
      # apps
      - ./packages/web-app-advanced-search/dist:/web/apps/advanced-search
      - ./packages/web-app-cast/dist:/web/apps/cast
      - ./packages/web-app-draw-io/dist:/web/apps/draw-io
      - ./packages/web-app-external-sites/dist:/web/apps/external-sites
      - ./packages/web-app-external-sites/tests/config/manifest.json:/web/apps/external-sites/manifest.json
      - ./packages/web-app-importer/dist:/web/apps/importer
      - ./packages/web-app-json-viewer/dist:/web/apps/json-viewer
      - ./packages/web-app-photo-addon/dist:/web/apps/photo-addon
      - ./packages/web-app-progress-bars/dist:/web/apps/progress-bars
      - ./packages/web-app-unzip/dist:/web/apps/unzip
      - ./packages/web-app-ai-doc-summary/dist:/web/apps/ai-doc-summary
      - ./packages/web-app-ai-image-alt-text-sidebar/dist:/web/apps/ai-image-alt-text-sidebar
      - ./packages/web-app-ai-quick-draft-creator/dist:/web/apps/ai-quick-draft-creator
      - ./packages/web-app-chat-with-file/dist:/web/apps/chat-with-file
      - ./packages/web-app-version-changelog/dist:/web/apps/version-changelog
      - ./packages/web-app-group-management/dist:/web/apps/group-management
      - ./packages/web-app-file-comments/dist:/web/apps/file-comments
      - ./packages/web-app-ai-folder-brief-sidebar/dist:/web/apps/ai-folder-brief-sidebar
      - ./packages/web-app-ai-sensitive-data-scanner/dist:/web/apps/ai-sensitive-data-scanner
      - ./packages/web-app-ai-data-insights-sidebar/dist:/web/apps/ai-data-insights-sidebar
      - ./packages/web-app-ai-multi-doc-synthesizer/dist:/web/apps/ai-multi-doc-synthesizer
      - ./packages/web-app-ai-smart-file-tagger-qa/dist:/web/apps/ai-smart-file-tagger-qa
      - ./packages/web-app-vim-nav/dist:/web/apps/vim-nav
      - ./packages/web-app-ai-smart-collections-nav/dist:/web/apps/ai-smart-collections-nav
      - ./packages/web-app-ai-folder-readme-generator/dist:/web/apps/ai-folder-readme-generator
      - ./packages/web-app-jupyter/dist:/web/apps/jupyter
    depends_on:
      - traefik

  ai-llm-proxy:
    build:
      context: ./packages/ai-llm-proxy
      dockerfile: Dockerfile
    extra_hosts:
      - host.docker.internal:${DOCKER_HOST:-host-gateway}
    environment:
      NODE_TLS_REJECT_UNAUTHORIZED: '0'
      OCIS_URL: 'https://host.docker.internal:9200'
      LLM_ENDPOINT: '${AI_LLM_ENDPOINT:-http://host.docker.internal:11434/v1}'
      LLM_API_KEY: '${AI_LLM_API_KEY:-}'
      PORT: '3030'
    labels:
      traefik.enable: true
      traefik.http.routers.ai-llm-proxy.tls: true
      traefik.http.routers.ai-llm-proxy.rule: Host(`host.docker.internal`) && PathPrefix(`/ai-llm-proxy`)
      traefik.http.routers.ai-llm-proxy.entrypoints: ocis
      traefik.http.routers.ai-llm-proxy.middlewares: ai-llm-proxy-strip,cors
      traefik.http.middlewares.ai-llm-proxy-strip.stripPrefix.prefixes: /ai-llm-proxy
      traefik.http.services.ai-llm-proxy.loadbalancer.server.port: 3030
    depends_on:
      - traefik

  # tika is required for the photo and search extensions
  tika:
    image: apache/tika:latest-full
    # release notes: https://tika.apache.org
    depends_on:
      - traefik

  companion:
    image: transloadit/companion:6.2.0
    extra_hosts:
      - host.docker.internal:${DOCKER_HOST:-host-gateway}
    environment:
      NODE_TLS_REJECT_UNAUTHORIZED: 0
      COMPANION_CLIENT_ORIGINS: 'true'
      COMPANION_ALLOW_LOCAL_URLS: 'true'
      COMPANION_DATADIR: /tmp/companion/
      COMPANION_DOMAIN: host.docker.internal:9200
      COMPANION_PROTOCOL: https
      COMPANION_PATH: /companion
      COMPANION_ONEDRIVE_KEY: '${COMPANION_ONEDRIVE_KEY}'
      COMPANION_ONEDRIVE_SECRET: '${COMPANION_ONEDRIVE_SECRET}'
      COMPANION_TUS_DEFERRED_UPLOAD_LENGTH: 'false'
    volumes:
      - uppy_companion_datadir:/tmp/companion/
    labels:
      traefik.enable: true
      traefik.http.routers.companion.tls: true
      traefik.http.routers.companion.rule: Host(`host.docker.internal`) && PathPrefix(`/companion`)
      traefik.http.routers.companion.entrypoints: ocis
      traefik.http.services.companion.loadbalancer.server.port: 3020

  traefik:
    image: traefik:v3.6.10
    restart: unless-stopped
    entrypoint:
      [
        '/bin/sh',
        '-c',
        "[ -f /certificates/server.key ] && ./entrypoint.sh $$@ || (apk add openssl && openssl req -subj '/CN=ocis.test' -x509 -sha256 -nodes -days 3650 -newkey rsa:2048 -keyout /certificates/server.key -out /certificates/server.crt && chmod -R 777 /certificates && ./entrypoint.sh $$@)"
      ]
    command:
      - '--pilot.dashboard=false'
      - '--log.level=DEBUG'
      - '--api.dashboard=true'
      - '--api.insecure=true'
      - '--providers.file.directory=/configs'
      - '--providers.docker=true'
      - '--providers.docker.exposedbydefault=false'
      - '--entrypoints.web.address=:80'
      - '--entrypoints.ocis.address=:9200'
      - '--entrypoints.ocis-federated.address=:10200'
      - '--entrypoints.websecure.address=:443'
      - '--entrypoints.websecure.http.middlewares=https_config@docker'
      - '--entrypoints.websecure.http.tls.options=default'
    labels:
      traefik.enable: true
      traefik.http.routers.http_catchall.rule: HostRegexp(`{any:.+}`)
      traefik.http.routers.http_catchall.entrypoints: web
      traefik.http.routers.http_catchall.middlewares: https_config
      traefik.http.middlewares.https_config.headers.sslRedirect: true
      traefik.http.middlewares.https_config.headers.stsSeconds: 63072000
      traefik.http.middlewares.https_config.headers.stsIncludeSubdomains: true
      traefik.http.middlewares.cors.headers.accesscontrolallowmethods: '*'
      traefik.http.middlewares.cors.headers.accesscontrolallowheaders: '*'
      traefik.http.middlewares.cors.headers.accesscontrolalloworiginlist: '*'
      traefik.http.middlewares.cors.headers.accesscontrolexposeheaders: '*'
      traefik.http.middlewares.cors.headers.accesscontrolmaxage: 100
      traefik.http.middlewares.cors.headers.addvaryheader: true
    ports:
      - '9200:9200'
    volumes:
      - './dev/docker/traefik/certificates:/certificates'
      - './dev/docker/traefik/configs:/configs'
      - '/var/run/docker.sock:/var/run/docker.sock:ro'

volumes:
  ocis-config:
  uppy_companion_datadir: