rengine Docker & Self-Hosted Deployment

GitHub

ReNgine is an automated reconnaissance framework for web applications with a focus on highly configurable streamlined recon process via Engines, recon data...

RAW Compose
1. Pull Image (DOCKERHUB) docker pull docker.pkg.github.com/yogeshojha/rengine/rengine
2. Docker Run (1-Click Launch) docker run -d --name rengine -p 5432:5432 --restart always docker.pkg.github.com/yogeshojha/rengine/rengine:latest
3. Podman Run podman run -d --name rengine -p 5432:5432 --restart always docker.pkg.github.com/yogeshojha/rengine/rengine:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/docker.pkg.github.com/yogeshojha/rengine/rengine:latest
5. ORAS Pull (OCI Artifact) oras pull docker.pkg.github.com/yogeshojha/rengine/rengine:latest
6. Compose Deployment docker compose up -d
docker-compose.dev.yml
Download .yml
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}
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    networks:
      - rengine_network
    ports:
      - "5432:5432"

  redis:
    image: "redis:alpine"
    hostname: redis
    networks:
      - rengine_network

  celery:
    build:
      context: ./web
    restart: always
    entrypoint: /usr/src/app/celery-entrypoint.sh
    # command: watchmedo auto-restart --recursive --pattern="*.py" --directory="/usr/src/app/reNgine/" -- celery -A reNgine.tasks worker --autoscale=10,0 -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
    environment:
      - DEBUG=1
      - 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
    depends_on:
      - celery
      - db
    environment:
      - DEBUG=1
      - 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}
    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=1
      - 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}
    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
    ports:
      - "8000:8000"
    depends_on:
      - db
      - celery
      - celery-beat
    networks:
      - rengine_network
  ollama:
    image: ollama/ollama
    volumes:
      - ollama_data:/root/.ollama
    networks:
      - rengine_network
    restart: always

networks:
  rengine_network:
volumes:
  tool_config:
  postgres_data:
  gf_patterns:
  nuclei_templates:
  github_repos:
  wordlist:
  scan_results:
  ollama_data: