Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions docker/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
WEB_PORT=8000
RESULT_PORT=2042
PG_PORT=5432
MONGO_PORT=27017

POSTGRES_USER=cape
POSTGRES_PASSWORD=cape
POSTGRES_DB=cape
23 changes: 23 additions & 0 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
FROM mirror.gcr.io/library/python:3.11-bookworm

RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y --no-install-recommends git libgraphviz-dev tcpdump libcap2-bin iproute2

RUN useradd -ms /bin/bash cape

COPY pcap.sh pcap.sh
RUN bash pcap.sh

COPY install.sh install.sh
RUN bash install.sh

WORKDIR /cape

RUN bash conf/copy_configs.sh
RUN chown -R cape:cape /cape

COPY run.sh run.sh

USER cape
ENTRYPOINT ["bash", "run.sh"]
57 changes: 57 additions & 0 deletions docker/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
services:
cape-db:
image: postgres:bookworm
hostname: cape-db
restart: always
ports:
- "127.0.0.1:${PG_PORT:-5432}:5432"
environment:
POSTGRES_USER: ${POSTGRES_USER:-cape}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-cape}
POSTGRES_DB: ${POSTGRES_DB:-cape}
PGDATA: /var/lib/postgresql/data/pgdata
volumes:
- ../pg-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-cape} -d ${POSTGRES_DB:-cape}"]
interval: 5s
timeout: 5s
retries: 10
start_period: 30s


mongodb:
image: mongo:6
command: ["--bind_ip_all"]
volumes:
- ../mongodata:/data/db
ports:
- "127.0.0.1:${MONGO_PORT:-27017}:27017"
restart: unless-stopped
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.runCommand({ ping: 1 })"]
interval: 10s
timeout: 5s
retries: 12
start_period: 20s

cape-server:
build: ./
hostname: cape-server
restart: unless-stopped
depends_on:
cape-db:
condition: service_healthy
mongodb:
condition: service_healthy
environment:
- WEB_PORT=${WEB_PORT:-8000}
ports:
- "127.0.0.1:${RESULT_PORT:-2042}:2042" # result server
- "127.0.0.1:${WEB_PORT:-8000}:8000" # web ui
volumes:
- ../custom:/cape/custom
- ../custom/conf:/cape/custom/conf
cap_add:
- NET_ADMIN
- NET_RAW
11 changes: 11 additions & 0 deletions docker/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
git clone https://github.com/nbdy/CAPEv2 cape
cd cape

bash extra/yara_installer.sh
bash extra/libvirt_installer.sh

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -r extra/optional_dependencies.txt
pip install -U flare-floss
4 changes: 4 additions & 0 deletions docker/pcap.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
groupadd pcap
usermod -a -G pcap cape
chgrp pcap /usr/bin/tcpdump
setcap cap_net_raw,cap_net_admin=eip /usr/bin/tcpdump
9 changes: 9 additions & 0 deletions docker/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
source venv/bin/activate
python cuckoo.py &

cd web

: "${WEB_PORT:=8000}"

python manage.py migrate
python manage.py runserver 0.0.0.0:${WEB_PORT}