diff --git a/data/dmarcparser.conf b/data/dmarcparser.conf new file mode 100644 index 000000000..2bf611d6a --- /dev/null +++ b/data/dmarcparser.conf @@ -0,0 +1,36 @@ +server { + ssl_certificate /etc/ssl/mail/cert.pem; + ssl_certificate_key /etc/ssl/mail/key.pem; + ssl_protocols TLSv1.2 TLSv1.3; + ssl_prefer_server_ciphers on; + ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305; + ssl_ecdh_curve X25519:X448:secp384r1:secp256k1; + ssl_session_cache shared:SSL:50m; + ssl_session_timeout 1d; + ssl_session_tickets off; + index index.php index.html; + client_max_body_size 0; + root /web; + include /etc/nginx/conf.d/listen_plain.active; + include /etc/nginx/conf.d/listen_ssl.active; + server_name dmarcparse.derlinkman.de; + server_tokens off; + + location ^~ /.well-known/acme-challenge/ { + allow all; + default_type "text/plain"; + } + + if ($scheme = http) { + return 301 https://$host$request_uri; + } + + location / { + proxy_pass http://dmarcparser:8080/; + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + client_max_body_size 0; + } +} \ No newline at end of file diff --git a/test.conf b/test.conf new file mode 100644 index 000000000..4cad7795b --- /dev/null +++ b/test.conf @@ -0,0 +1,3 @@ +# Solr heap size in MB, there is no recommendation, please see Solr docs. +# Solr is a prone to run OOM and should be monitored. Unmonitored Solr setups are not recommended. +# Solr will refuse to start with total system memory below or equal to 2 GB. \ No newline at end of file diff --git a/test.sh b/test.sh new file mode 100644 index 000000000..1e38b3907 --- /dev/null +++ b/test.sh @@ -0,0 +1,59 @@ +#!/bin/bash +source mailcow.conf +SOLR_OPTIONS=( + "SOLR_HEAP" + "SOLR_PORT" + "SKIP_SOLR" + ) +remove_solr_config_options() { + sed -i --follow-symlinks '$a\' mailcow.conf + for option in "${SOLR_OPTIONS[@]}"; do + if [[ $option == "SOLR_HEAP" ]]; then + if grep -q "${option}" mailcow.conf; then + echo "Replacing SOLR_HEAP with \"${option}\" in mailcow.conf" + sed -i '/# Solr heap size in MB\b/c\# Dovecot Indexing (FTS) Process heap size in MB, there is no recommendation, please see Dovecot docs.' mailcow.conf + sed -i '/# Solr is a prone to run\b/c\# Flatcurve is replacing solr as FTS Indexer completely. It is supposed to be much more efficient in CPU and RAM consumption.' mailcow.conf + sed -i 's/SOLR_HEAP/FTS_HEAP/g' mailcow.conf + fi + fi + if [[ $option == "SKIP_SOLR" ]]; then + if grep -q "${option}" mailcow.conf; then + echo "Replacing $option in mailcow.conf with SKIP_FLATCURVE" + sed -i '/\bSkip Solr on low-memory\b/c\# Skip Flatcurve (FTS) on low-memory systems or if you simply want to disable it.' mailcow.conf + sed -i '/\bSolr is disabled by default\b/d' mailcow.conf + sed -i '/\bDisable Solr or\b/d' mailcow.conf + sed -i 's/SKIP_SOLR/SKIP_FLATCURVE/g' mailcow.conf + fi + fi + if [[ $option == "SOLR_PORT" ]]; then + if grep -q "${option}" mailcow.conf; then + echo "Removing ${option} in mailcow.conf" + sed -i '/\bSOLR_PORT\b/d' mailcow.conf + fi + fi + done + + solr_volume=$(docker volume ls -qf name=^${COMPOSE_PROJECT_NAME}_solr-vol-1) + if [[ -n $solr_volume ]]; then + echo -e "\e[34mSolr has been replaced within mailcow since 2024-XX.\e[0m" + sleep 1 + echo -e "\e[34mTherefore the volume $solr_volume is unused.\e[0m" + sleep 1 + read -r -p "Would you like to remove the $solr_volume? " response + if [[ "$response" =~ ^([yY][eE][sS]|[yY])+$ ]]; then + echo -e "\e[33mRemoving $solr_volume...\e[0m" + docker volume rm $solr_volume + if [[ $? != 0 ]]; then + echo -e "\e[31mCould not remove the volume... Please remove it manually!\e[0m" + else + echo -e "\e[32mSucessfully removed $solr_volume!\e[0m" + fi + else + echo "Ok! Not removing $solr_volume then." + echo "Once you decided on removing the volume simply run docker volume rm $solr_volume to remove it manually." + echo "This can be done anytime. mailcow does not use this volume anymore." + fi + fi +} + +remove_solr_config_options \ No newline at end of file