ipfs-search/ipfs-search

View on GitHub
docker-compose.yml

Summary

Maintainability
Test Coverage
version: '3.9'
services:
  rabbitmq:
    image: library/rabbitmq:management-alpine
    ports:
      - 15672:15672
      - 5672:5672
    deploy:
      restart_policy:
        condition: on-failure
  redis:
    image: library/redis:7-alpine
    ports:
      - 6379:6379
    deploy:
      restart_policy:
        condition: on-failure
  opensearch:
    image: opensearchproject/opensearch:2.3.0
    ports:
      - 9200:9200
      - 9300:9300
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "DISABLE_INSTALL_DEMO_CONFIG=true"
      - "DISABLE_SECURITY_PLUGIN=true"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    deploy:
      restart_policy:
        condition: on-failure
  opensearch-dashboards:
    image: opensearchproject/opensearch-dashboards:2.3.0
    depends_on:
      - opensearch
    ports:
      - 5601:5601
    deploy:
      restart_policy:
        condition: on-failure
    environment:
      - 'OPENSEARCH_HOSTS=["http://opensearch:9200"]'
      - "DISABLE_SECURITY_DASHBOARDS_PLUGIN=true"
  ipfs:
    image: ipfs/kubo:v0.15.0
    ports:
      - 4001:4001
      - 5001:5001
      - 8080:8080
    deploy:
      restart_policy:
        condition: on-failure
  tika-extractor:
    image: ipfssearch/tika-extractor:latest
    ports:
      - 8081:8081
    depends_on:
      - ipfs
    deploy:
      restart_policy:
        condition: on-failure
  ipfs-crawler:
    build: .
    depends_on:
      rabbitmq:
        condition: service_started
      opensearch:
        condition: service_started
      tika-extractor:
        condition: service_started
      jaeger:
        condition: service_started
      redis:
        condition: service_started
      ipfs:
        condition: service_healthy
      nsfw-server:
        condition: service_healthy
    environment:
      - TIKA_EXTRACTOR=http://tika-extractor:8081
      - IPFS_API_URL=http://ipfs:5001
      - IPFS_GATEWAY_URL=http://ipfs:8080
      - OPENSEARCH_URL=http://opensearch:9200
      - NSFW_URL=http://nsfw-server:3000
      - AMQP_URL=amqp://guest:guest@rabbitmq:5672/
      - OTEL_EXPORTER_JAEGER_ENDPOINT=http://jaeger:14268/api/traces
      - OTEL_TRACE_SAMPLER_ARG=1.0
      - REDIS_ADDRESSES=redis:6379
    deploy:
      restart_policy:
        condition: on-failure
  ipfs-search-api:
    image: ipfssearch/ipfs-search-api:latest
    ports:
      - 9615:9615
    depends_on:
      - opensearch
    environment:
      - OPENSEARCH_URL=http://opensearch:9200
    deploy:
      restart_policy:
        condition: on-failure
  ipfs-sniffer:
    image: ipfssearch/ipfs-sniffer:latest
    depends_on:
      - rabbitmq
      - jaeger
    environment:
      - AMQP_URL=amqp://guest:guest@rabbitmq:5672/
      - OTEL_EXPORTER_JAEGER_ENDPOINT=http://jaeger:14268/api/traces
    deploy:
      restart_policy:
        condition: on-failure
  jaeger:
    image: jaegertracing/all-in-one
    environment:
      - SPAN_STORAGE_TYPE=opensearch
      - ES_SERVER_URLS=http://opensearch:9200
      - ES_VERSION=7
      - ES_TAGS_AS_FIELDS_ALL=true
    depends_on:
      - opensearch
    ports:
      - "14268:14268" # HTTP Collector
      - "16686:16686" # Frontend
    command: ["--es.num-shards=1", "--es.num-replicas=0"]
    deploy:
      restart_policy:
        condition: on-failure
  nsfw-server:
    image: registry.gitlab.com/ipfs-search.com/nsfw-server/main:latest
    ports:
      - 3000:3000
    depends_on:
      ipfs:
        condition: service_healthy
    environment:
      IPFS_GATEWAY_URL: http://ipfs:8080
    deploy:
      restart_policy:
        condition: on-failure