services: db: restart: always image: "postgres:12.3-alpine" environment: - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_PORT=${POSTGRES_PORT} ports: - "127.0.0.1:5432:5432" volumes: - postgres_data:/var/lib/postgresql/data/ networks: - rengine_network redis: restart: always image: "redis:alpine" hostname: redis networks: - rengine_network celery: build: context: ./web restart: always entrypoint: /usr/src/app/celery-entrypoint.sh # command: celery -A reNgine worker --autoscale=${MAX_CONCURRENCY},${MIN_CONCURRENCY} -l INFO volumes: - ./web:/usr/src/app - github_repos:/usr/src/github - wordlist:/usr/src/wordlist - scan_results:/usr/src/scan_results - gf_patterns:/root/.gf - nuclei_templates:/root/nuclei-templates - tool_config:/root/.config - static_volume:/usr/src/app/staticfiles/ environment: - DEBUG=0 - CELERY_BROKER=redis://redis:6379/0 - CELERY_BACKEND=redis://redis:6379/0 - DOMAIN_NAME=${DOMAIN_NAME} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_PORT=${POSTGRES_PORT} - POSTGRES_HOST=${POSTGRES_HOST} - MAX_CONCURRENCY=${MAX_CONCURRENCY} - MIN_CONCURRENCY=${MIN_CONCURRENCY} depends_on: - db - redis networks: - rengine_network celery-beat: build: ./web entrypoint: /usr/src/app/beat-entrypoint.sh command: celery -A reNgine beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler environment: - CELERY_BROKER=redis://redis:6379/0 - CELERY_BACKEND=redis://redis:6379/0 - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_PORT=${POSTGRES_PORT} - POSTGRES_HOST=${POSTGRES_HOST} depends_on: - celery - db volumes: - ./web:/usr/src/app - github_repos:/usr/src/github - wordlist:/usr/src/wordlist - scan_results:/usr/src/scan_results - gf_patterns:/root/.gf - nuclei_templates:/root/nuclei-templates - tool_config:/root/.config networks: - rengine_network web: build: context: ./web entrypoint: /usr/src/app/entrypoint.sh restart: always image: docker.pkg.github.com/yogeshojha/rengine/rengine:latest environment: - DEBUG=0 - CELERY_BROKER=redis://redis:6379/0 - CELERY_BACKEND=redis://redis:6379/0 - DOMAIN_NAME=${DOMAIN_NAME} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_PORT=${POSTGRES_PORT} - POSTGRES_HOST=${POSTGRES_HOST} - DJANGO_SUPERUSER_PASSWORD=${DJANGO_SUPERUSER_PASSWORD} volumes: - ./web:/usr/src/app - github_repos:/usr/src/github - wordlist:/usr/src/wordlist - scan_results:/usr/src/scan_results - gf_patterns:/root/.gf - nuclei_templates:/root/nuclei-templates - tool_config:/root/.config - static_volume:/usr/src/app/staticfiles/ ports: - "127.0.0.1:8000:8000" depends_on: - db - celery - celery-beat networks: rengine_network: aliases: - rengine proxy: restart: always image: nginx:alpine ports: - 8082:8082/tcp - 443:443/tcp depends_on: - web - db - redis secrets: - source: proxy.ca target: /etc/nginx/certs/rengine_chain.pem - source: proxy.cert target: /etc/nginx/certs/rengine.pem - source: proxy.key target: /etc/nginx/certs/rengine_rsa.key volumes: - ./config/nginx/rengine.conf:/etc/nginx/conf.d/rengine.conf:ro - static_volume:/usr/src/app/staticfiles/ - scan_results:/usr/src/scan_results networks: - rengine_network ollama: image: ollama/ollama container_name: ollama volumes: - ollama_data:/root/.ollama ports: - "11434:11434" networks: - rengine_network networks: rengine_network: volumes: tool_config: postgres_data: gf_patterns: nuclei_templates: github_repos: wordlist: scan_results: static_volume: ollama_data: secrets: proxy.ca: file: ./secrets/certs/rengine_chain.pem proxy.key: file: ./secrets/certs/rengine_rsa.key proxy.cert: file: ./secrets/certs/rengine.pem