Skip to content

Instantly share code, notes, and snippets.

@zommiommy
Created October 4, 2022 15:41
Show Gist options
  • Save zommiommy/ddc17879c8e4ba6b84ff7a9a8bf14389 to your computer and use it in GitHub Desktop.
Save zommiommy/ddc17879c8e4ba6b84ff7a9a8bf14389 to your computer and use it in GitHub Desktop.
Elastic + Kibana + TheHive + Cortex
# Version of Elastic products
STACK_VERSION=8.4.2
# Port to expose Elasticsearch HTTP API to the host
ES_PORT=9200
# Port to expose Kibana to the host
KIBANA_PORT=5601
# RAM for each service 4GB
MEM_LIMIT=4294967296
version: '3.8'
services:
cortex:
image: thehiveproject/cortex:latest
container_name: cortex
depends_on:
elasticsearch:
condition: service_healthy
ports:
- "0.0.0.0:9001:9001"
mem_limit: ${MEM_LIMIT}
healthcheck:
test:
[
"CMD-SHELL",
"curl -s http://localhost:9001",
]
interval: 10s
timeout: 10s
retries: 120
thehive:
image: thehiveproject/thehive:latest
container_name: thehive
depends_on:
- cortex
ports:
- "0.0.0.0:9000:9000"
mem_limit: ${MEM_LIMIT}
healthcheck:
test:
[
"CMD-SHELL",
"curl -s http://localhost:9000",
]
interval: 10s
timeout: 10s
retries: 120
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
container_name: elasticsearch
ports:
- ${ES_PORT}:9200
mem_limit: ${MEM_LIMIT}
environment:
- cluster.name=my_elasticsearch_cluster
- bootstrap.memory_lock=true
- discovery.type=single-node
- http.host=0.0.0.0
- transport.host=0.0.0.0
- xpack.security.enabled=false
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
healthcheck:
test:
[
"CMD-SHELL",
"curl -s http://localhost:9200",
]
interval: 10s
timeout: 10s
retries: 120
kibana:
image: docker.elastic.co/kibana/kibana:${STACK_VERSION}
container_name: kibana
ports:
- ${KIBANA_PORT}:5601
mem_limit: ${MEM_LIMIT}
depends_on:
elasticsearch:
condition: service_healthy
environment:
- xpack.security.enabled=false
- SERVERNAME=kibana
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
- ELASTICSEARCH_USERNAME=kibana_system
- ELASTICSEARCH_PASSWORD=${ELASTIC_PASSWORD}
healthcheck:
test:
[
"CMD-SHELL",
"curl -s -I http://localhost:5601 | grep -q 'HTTP/1.1 302 Found'",
]
interval: 10s
timeout: 10s
retries: 120
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment