docker-compose.yml
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