services: fetcher_app_selenium: image: fetcher_app_selenium build: context: ./app_selenium args: - ARCH=${ARCH} # arm64, amd64 container_name: fetcher_app_selenium restart: unless-stopped shm_size: 512mb init: true # For zombie processes environment: - SELENIUM_SLEEP_PER_PAGE=${SELENIUM_SLEEP_PER_PAGE} - PATH_LOGS_DIRECTORY=${PATH_LOGS_DIRECTORY} ports: - 80 dns: - 1.1.1.1 - 1.0.0.1 fetcher_app_urls: image: fetcher_app_urls build: context: ./app_urls container_name: fetcher_app_urls restart: unless-stopped environment: # Initialization - INITIALIZE_DB=${INITIALIZE_DB} # Related to DB persistence - DJANGO_SUPERUSER_USERNAME=${DJANGO_SUPERUSER_USERNAME} - DJANGO_SUPERUSER_PASSWORD=${DJANGO_SUPERUSER_PASSWORD} - DJANGO_SUPERUSER_EMAIL=${DJANGO_SUPERUSER_EMAIL} # Django - DJANGO_ALLOWED_HOSTS=${DJANGO_ALLOWED_HOSTS} # host1,host2 - DJANGO_ALLOWED_ORIGINS=${DJANGO_ALLOWED_ORIGINS} # Reverse proxy - DJANGO_SECRET_KEY=${DJANGO_SECRET_KEY} - DJANGO_DEBUG=${DJANGO_DEBUG} - PATH_LOGS_DIRECTORY=${PATH_LOGS_DIRECTORY} # Database - DB_NAME=${DB_NAME} - DB_USER=${DB_USER} - DB_PASSWORD=${DB_PASSWORD} - DB_HOST=${DB_HOST} - DB_PORT=${DB_PORT} - REDIS_CACHE_HOST=${REDIS_CACHE_HOST} - REDIS_CACHE_PORT=${REDIS_CACHE_PORT} - REDIS_CELERY_HOST=${REDIS_CELERY_HOST} - REDIS_CELERY_PORT=${REDIS_CELERY_PORT} # Job timeout: 30 min - JOB_DEFAULT_TIMEOUT=${JOB_DEFAULT_TIMEOUT} # Fetcher - FETCHER_GNEWS_DECODE_SLEEP=${FETCHER_GNEWS_DECODE_SLEEP} - FETCHER_GOOGLE_GENERAL_PAGE_ITER_SLEEP=${FETCHER_GOOGLE_GENERAL_PAGE_ITER_SLEEP} - FETCHER_BETWEEN_SEARCHES_SLEEP=${FETCHER_BETWEEN_SEARCHES_SLEEP} # Sleep time between each search - FETCHER_URL_HOST_SLEEP=${FETCHER_URL_HOST_SLEEP} # Sleep time between requests to same URL host - FETCHER_LANGUAGE_DETECTION_MIN_CHAR=${FETCHER_LANGUAGE_DETECTION_MIN_CHAR} # Min amonut of characters to run language detection - FETCHER_INSERT_URL_CACHE_TIME=${FETCHER_INSERT_URL_CACHE_TIME} # Cache time: Insert raw URL - FETCHER_ERROR_URL_CACHE_TIME=${FETCHER_ERROR_URL_CACHE_TIME} # Cache time: Error on processing URL # Selenium - SELENIUM_ENDPOINT=${SELENIUM_ENDPOINT} - ENDPOINT_OLLAMA=${ENDPOINT_OLLAMA} # Ghost - GHOST_ADMIN_API_KEY=${GHOST_ADMIN_API_KEY} - GHOST_ADMIN_API_URL=${GHOST_ADMIN_API_URL} - PEXELS_API_KEY=${PEXELS_API_KEY} - OLLAMA_MODEL_DEFAULT=${OLLAMA_MODEL_DEFAULT} # Telegram - TELEGRAM_INFO_BOT_TOKEN=${TELEGRAM_INFO_BOT_TOKEN} - TELEGRAM_INFO_CHAT_ID=${TELEGRAM_INFO_CHAT_ID} - TELEGRAM_WARNING_BOT_TOKEN=${TELEGRAM_WARNING_BOT_TOKEN} - TELEGRAM_WARNING_CHAT_ID=${TELEGRAM_WARNING_CHAT_ID} ######################## ports: - 8000 depends_on: - fetcher_db - fetcher_redis_cache - fetcher_redis_celery - fetcher_app_selenium dns: - 1.1.1.1 - 1.0.0.1 fetcher_redis_cache: image: redis:alpine container_name: fetcher_redis_cache restart: unless-stopped ports: - 6379 fetcher_redis_celery: image: redis:alpine container_name: fetcher_redis_celery restart: unless-stopped ports: - 6379 fetcher_db: container_name: fetcher_db restart: unless-stopped fetcher_flower: image: mher/flower container_name: fetcher_flower ports: - 5555 environment: - CELERY_BROKER_URL=redis://fetcher_redis_celery:6379/0 - FLOWER_UNAUTHENTICATED_API=true depends_on: - fetcher_redis_celery