Kaynağa Gözat

Updated Dovecot Image to use OpenSSL 3.0 fix

DerLinkman 1 yıl önce
ebeveyn
işleme
95ee29dd6d
3 değiştirilmiş dosya ile 98 ekleme ve 0 silme
  1. 36 0
      data/dmarcparser.conf
  2. 3 0
      test.conf
  3. 59 0
      test.sh

+ 36 - 0
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;
+  }
+}

+ 3 - 0
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.

+ 59 - 0
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