Initial commit
This commit is contained in:
commit
397ddb0e2b
10 changed files with 275 additions and 0 deletions
8
data/Dockerfiles/parsedmarc-init/Dockerfile
Normal file
8
data/Dockerfiles/parsedmarc-init/Dockerfile
Normal file
|
@ -0,0 +1,8 @@
|
|||
FROM alpine:latest
|
||||
|
||||
ADD start.sh /start.sh
|
||||
|
||||
RUN apk add --no-cache curl openssl jq bash \
|
||||
&& chmod +x /start.sh
|
||||
|
||||
ENTRYPOINT [ "/start.sh" ]
|
62
data/Dockerfiles/parsedmarc-init/start.sh
Normal file
62
data/Dockerfiles/parsedmarc-init/start.sh
Normal file
|
@ -0,0 +1,62 @@
|
|||
#!/bin/bash
|
||||
set -x
|
||||
|
||||
echo "## ELASTICSEARCH"
|
||||
echo "Setting permissions..."
|
||||
chmod g+rwx -R /usr/share/elasticsearch/data/
|
||||
chgrp 0 -R /usr/share/elasticsearch/data/
|
||||
|
||||
echo "## NGINX"
|
||||
echo "Checking nginx certs..."
|
||||
cd /etc/nginx/ssl/
|
||||
if [ ! -f "/etc/nginx/ssl/kibana.crt" ] || [ ! -f "/etc/nginx/ssl/kibana.key" ]; then
|
||||
echo "No certs found. Generating..."
|
||||
openssl req -x509 -nodes -days 365 -newkey rsa:3072 -keyout kibana.key -out kibana.crt \
|
||||
-subj "/CN=parsedmarc" -addext "subjectAltName=DNS:parsedmarc"
|
||||
echo "Certs generated."
|
||||
fi
|
||||
|
||||
echo "## KIBANA"
|
||||
if [ ! -f /etc/parsedmarc/kibana_export.ndjson ]; then
|
||||
# trigger empty file to trigger below update logic.
|
||||
touch /etc/parsedmarc/kibana_export.ndjson
|
||||
fi
|
||||
echo "Downloading dashboard from GitHub..."
|
||||
rm /etc/parsedmarc/kibana_export.ndjson.tmp
|
||||
curl https://raw.githubusercontent.com/domainaware/parsedmarc/master/kibana/export.ndjson \
|
||||
-o /etc/parsedmarc/kibana_export.ndjson.tmp
|
||||
if [ ${?} -ne 0 ]; then
|
||||
echo "Downloading kibana export failed."
|
||||
else
|
||||
fileNew=$(wc -c "/etc/parsedmarc/kibana_export.ndjson.tmp") # always use quoted var
|
||||
fileOld=$(wc -c "/etc/parsedmarc/kibana_export.ndjson")
|
||||
|
||||
if [ $fileNew -eq $fileOld ]; then
|
||||
echo "File size is the same. Not proceeding."
|
||||
else
|
||||
echo "File size is different... updating..."
|
||||
|
||||
while ! curl -s -f -I http://kibana:5601 >/dev/null; do
|
||||
echo "Kibana not responding... waiting 5 secs..."
|
||||
sleep 5
|
||||
done
|
||||
|
||||
echo "Kibana responded. Waiting 10s, then proceeding with dashboard update..."
|
||||
sleep 10
|
||||
rm /etc/parsedmarc/kibana_export.ndjson
|
||||
mv /etc/parsedmarc/kibana_export.ndjson.tmp /etc/parsedmarc/kibana_export.ndjson
|
||||
RES=$(curl -X POST http://kibana:5601/api/saved_objects/_import?overwrite=true \
|
||||
-H "kbn-xsrf: true" --form file=@/etc/parsedmarc/kibana_export.ndjson)
|
||||
echo "Result: $RES"
|
||||
if [ ${?} -ne 0 ]; then
|
||||
echo "[!!!] Import might have failed. Manual check recommended."
|
||||
fi
|
||||
echo "Importing done."
|
||||
fi
|
||||
fi
|
||||
|
||||
sleep 3
|
||||
# Create empty file to let other containers know that we're ready.
|
||||
touch /ready
|
||||
sleep infinity # or while true; do sleep 86400; done
|
||||
exit 0
|
11
data/Dockerfiles/parsedmarc/Dockerfile
Normal file
11
data/Dockerfiles/parsedmarc/Dockerfile
Normal file
|
@ -0,0 +1,11 @@
|
|||
FROM pypy:3-slim
|
||||
|
||||
ADD start.sh /start.sh
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y libxslt-dev libz-dev libxml2-dev gcc libemail-outlook-message-perl \
|
||||
&& pip install -U parsedmarc \
|
||||
&& apt-get purge --yes gcc && apt autoremove --yes && apt-get clean \
|
||||
&& rm -Rf /var/lib/{apt,dpkg}/ && rm -Rf /root/.cache/ \
|
||||
&& chmod +x /start.sh
|
||||
|
||||
ENTRYPOINT [ "/start.sh" ]
|
3
data/Dockerfiles/parsedmarc/start.sh
Normal file
3
data/Dockerfiles/parsedmarc/start.sh
Normal file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
# Start parsedmarc
|
||||
parsedmarc -c /etc/parsedmarc/config.ini
|
Loading…
Add table
Add a link
Reference in a new issue