rengine\docker-compose.yml DIFF
165 lines
version: '3.8'
version: '3.8'
services:
services:
db:
db:
restart: always
restart: always
image: "postgres:12.3-alpine"
image: "postgres:12.3-alpine"
environment:
environment:
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_PORT=${POSTGRES_PORT}
ports:
- "5432:5432"
volumes:
volumes:
- postgres_data:/var/lib/postgresql/data/
- postgres_data:/var/lib/postgresql/data/
networks:
networks:
- rengine_network
- rengine_network
redis:
redis:
image: "redis:alpine"
image: "redis:alpine"
hostname: redis
hostname: redis
networks:
networks:
- rengine_network
- rengine_network
celery:
celery:
build:
build:
context: ./web
context: ./web
restart: always
restart: always
entrypoint: /usr/src/app/celery-entrypoint.sh
entrypoint: /usr/src/app/celery-entrypoint.sh
# command: celery -A reNgine worker --autoscale=${MAX_CONCURRENCY},${MIN_CONCURRENCY} -l INFO
command: watchmedo auto-restart --recursive --pattern="*.py" --directory="/usr/src/app/reNgine/" -- celery -A reNgine worker --autoscale=${MAX_CONCURRENCY},${MIN_CONCURRENCY} -l INFO
volumes:
volumes:
- ./web:/usr/src/app
- ./web:/usr/src/app
- github_repos:/usr/src/github
- github_repos:/usr/src/github
- wordlist:/usr/src/wordlist
- wordlist:/usr/src/wordlist
- scan_results:/usr/src/scan_results
- scan_results:/usr/src/scan_results
- gf_patterns:/root/.gf
- gf_patterns:/root/.gf
- nuclei_templates:/root/nuclei-templates
- nuclei_templates:/root/nuclei-templates
- tool_config:/root/.config
- tool_config:/root/.config
- static_volume:/usr/src/app/staticfiles/
- static_volume:/usr/src/app/staticfiles/
environment:
environment:
- DEBUG=0
- DEBUG=0
- CELERY_BROKER=redis://redis:6379/0
- CELERY_BROKER=redis://redis:6379/0
- CELERY_BACKEND=redis://redis:6379/0
- CELERY_BACKEND=redis://redis:6379/0
- DOMAIN_NAME=${DOMAIN_NAME}
- DOMAIN_NAME=${DOMAIN_NAME}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_HOST=${POSTGRES_HOST}
- POSTGRES_HOST=${POSTGRES_HOST}
- MAX_CONCURRENCY=${MAX_CONCURRENCY}
- MAX_CONCURRENCY=${MAX_CONCURRENCY}
- MIN_CONCURRENCY=${MIN_CONCURRENCY}
- MIN_CONCURRENCY=${MIN_CONCURRENCY}
depends_on:
depends_on:
- db
- db
- redis
- redis
networks:
networks:
- rengine_network
- rengine_network
celery-beat:
celery-beat:
build: ./web
build: ./web
entrypoint: /usr/src/app/beat-entrypoint.sh
entrypoint: /usr/src/app/beat-entrypoint.sh
command: celery -A reNgine beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler
command: celery -A reNgine beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler
environment:
environment:
- CELERY_BROKER=redis://redis:6379/0
- CELERY_BROKER=redis://redis:6379/0
- CELERY_BACKEND=redis://redis:6379/0
- CELERY_BACKEND=redis://redis:6379/0
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_HOST=${POSTGRES_HOST}
- POSTGRES_HOST=${POSTGRES_HOST}
depends_on:
depends_on:
- celery
- celery
volumes:
volumes:
- ./web:/usr/src/app
- ./web:/usr/src/app
- github_repos:/usr/src/github
- github_repos:/usr/src/github
- wordlist:/usr/src/wordlist
- wordlist:/usr/src/wordlist
- scan_results:/usr/src/scan_results
- scan_results:/usr/src/scan_results
- gf_patterns:/root/.gf
- gf_patterns:/root/.gf
- nuclei_templates:/root/nuclei-templates
- nuclei_templates:/root/nuclei-templates
- tool_config:/root/.config
- tool_config:/root/.config
networks:
networks:
- rengine_network
- rengine_network
web:
web:
build:
build:
context: ./web
context: ./web
entrypoint: /usr/src/app/entrypoint.sh
entrypoint: /usr/src/app/entrypoint.sh
restart: always
restart: always
image: docker.pkg.github.com/yogeshojha/rengine/rengine:latest
image: docker.pkg.github.com/yogeshojha/rengine/rengine:latest
environment:
environment:
- DEBUG=0
- DEBUG=0
- CELERY_BROKER=redis://redis:6379/0
- CELERY_BROKER=redis://redis:6379/0
- CELERY_BACKEND=redis://redis:6379/0
- CELERY_BACKEND=redis://redis:6379/0
- DOMAIN_NAME=${DOMAIN_NAME}
- DOMAIN_NAME=${DOMAIN_NAME}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_HOST=${POSTGRES_HOST}
- POSTGRES_HOST=${POSTGRES_HOST}
# THIS IS A MUST FOR CHECKING UPDATE, EVERYTIME A COMMIT IS MERGED INTO
# THIS IS A MUST FOR CHECKING UPDATE, EVERYTIME A COMMIT IS MERGED INTO
# MASTER, UPDATE THIS!!! MAJOR.MINOR.PATCH https://semver.org/
# MASTER, UPDATE THIS!!! MAJOR.MINOR.PATCH https://semver.org/
- RENGINE_CURRENT_VERSION='2.0.0'
- RENGINE_CURRENT_VERSION='2.0.0'
volumes:
volumes:
- ./web:/usr/src/app
- ./web:/usr/src/app
- github_repos:/usr/src/github
- github_repos:/usr/src/github
- wordlist:/usr/src/wordlist
- wordlist:/usr/src/wordlist
- scan_results:/usr/src/scan_results
- scan_results:/usr/src/scan_results
- gf_patterns:/root/.gf
- gf_patterns:/root/.gf
- nuclei_templates:/root/nuclei-templates
- nuclei_templates:/root/nuclei-templates
- tool_config:/root/.config
- tool_config:/root/.config
- static_volume:/usr/src/app/staticfiles/
- static_volume:/usr/src/app/staticfiles/
ports:
ports:
- "8000:8000"
- "8000:8000"
depends_on:
depends_on:
- db
- db
- celery
- celery
- celery-beat
- celery-beat
networks:
networks:
rengine_network:
rengine_network:
aliases:
aliases:
- rengine
- rengine
proxy:
proxy:
restart: always
restart: always
image: nginx:alpine
image: nginx:alpine
ports:
ports:
- 8082:8082/tcp
- 80:80/tcp
- 443:443/tcp
- 8090:8090/tcp
depends_on:
depends_on:
- web
- web
- db
- db
- redis
- 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:
volumes:
- ./config/nginx/rengine.conf:/etc/nginx/conf.d/rengine.conf:ro
- ./config/nginx/rengine.conf:/etc/nginx/conf.d/rengine.conf:ro
- static_volume:/usr/src/app/staticfiles/
- static_volume:/usr/src/app/staticfiles/
- scan_results:/usr/src/scan_results
- scan_results:/usr/src/scan_results
networks:
networks:
- rengine_network
- rengine_network
networks:
networks:
rengine_network:
rengine_network:
volumes:
volumes:
tool_config:
tool_config:
postgres_data:
postgres_data:
gf_patterns:
gf_patterns:
nuclei_templates:
nuclei_templates:
github_repos:
github_repos:
wordlist:
wordlist:
scan_results:
scan_results:
static_volume:
static_volume:
secrets:
proxy.ca:
file: ./secrets/certs/rengine_chain.pem
proxy.key:
file: ./secrets/certs/rengine_rsa.key
proxy.cert:
file: ./secrets/certs/rengine.pem