version: "3.9" x-logging: &default-logging driver: "json-file" options: max-size: "1M" max-file: "10" services: fedisearch-storage: image: skorpil/fedistore:latest build: context: ./build/fedistore target: prod volumes: - ./build/fedistore/application:/srv environment: - 'ELASTIC_URL=http://elastic:9200' - 'ELASTIC_PASSWORD=${FEDISEARCH_ELASTIC_PASSWORD}' - 'ACCESS_WRITE=${FEDISEARCH_KEY_CRAWLER},${FEDISEARCH_KEY_ADMIN}' - 'CORS_ALLOWED_ORIGINS=${FEDISEARCH_CORS_ALLOWED_ORIGINS}' networks: fedisearch: logging: *default-logging depends_on: - fedisearch-elasticsearch fedisearch-crawler: image: skorpil/fedicrawl:latest restart: always build: context: ./build/fedicrawl target: prod environment: - 'SEED_NODE_DOMAIN=${FEDISEARCH_SEED}' - 'TZ=${FEDISEARCH_TIMEZONE}' - 'REATTEMPT_MINUTES=${FEDISEARCH_REATTEMPT_MINUTES}' - 'REFRESH_HOURS=${FEDISEARCH_REFRESH_HOURS}' - 'WAIT_FOR_JOB_MINUTES=${FEDISEARCH_WAIT_FOR_JOB_MINUTES}' - 'DEFAULT_TIMEOUT_MILLISECONDS=${FEDISEARCH_DEFAULT_TIMEOUT_MILLISECONDS}' - 'SEED_TIMEOUT_MILLISECONDS=${FEDISEARCH_SEED_TIMEOUT_MILLISECONDS}' - 'ELASTIC_URL=http://elastic:9200' - 'ELASTIC_PASSWORD=${FEDISEARCH_ELASTIC_PASSWORD}' - 'BANNED_DOMAINS=${FEDISEARCH_BANNED_DOMAINS}' - 'MAX_CRAWLING_DEPTH=${FEDISEARCH_MAX_CRAWLING_DEPTH}' - 'CRAWLING_VERSION=${FEDISEARCH_CRAWLING_VERSION}' - 'STORE_KEY=${FEDISEARCH_KEY_CRAWLER}' networks: fedisearch: logging: *default-logging depends_on: - fedisearch-storage fedisearch-searcher: image: skorpil/fedisearch:latest restart: always build: context: ./build/fedisearch target: prod environment: - 'MATOMO_URL=${FEDISEARCH_MATOMO_URL}' - 'MATOMO_SITE_ID=${FEDISEARCH_MATOMO_SITE_ID}' - 'STATS_CACHE_MINUTES=${FEDISEARCH_STATS_CACHE_MINUTES}' - 'TZ=${FEDISEARCH_TIMEZONE}' - 'GRAPHQL_URL=http://localhost:4000/api/graphql' networks: fedisearch: logging: *default-logging depends_on: - fedisearch-storage fedisearch-elasticsearch: image: elasticsearch:8.4.1 restart: always environment: - xpack.security.enrollment.enabled=true - discovery.type=single-node - ELASTIC_PASSWORD=${FEDISEARCH_ELASTIC_PASSWORD} - 'TZ=${FEDISEARCH_TIMEZONE}' volumes: - fedisearch-elasticsearch-data:/usr/share/elasticsearch/data networks: fedisearch: aliases: - elastic networks: fedisearch: volumes: fedisearch-elasticsearch-data: