update install.sh

This commit is contained in:
2026-05-26 12:45:38 +02:00
parent be4b1c1af8
commit 32e7d475c7
+38 -31
View File
@@ -1,44 +1,43 @@
#!/usr/bin/env bash
set -e
# Sicherstellen, dass das Skript als root ausgeführt wird
if [ "$EUID" -ne 0 ]; then
echo "Bitte als root ausführen (sudo ./install.sh)"
exit 1
fi
echo "=== Installiere pyarc-milter ==="
echo "=== Installiere pyarc-milter (Debian 12/13 konform) ==="
# 1. System-Abhängigkeiten installieren
# 1. System-Abhängigkeiten installieren (inklusive python3-venv)
echo "--> Installiere System-Abhängigkeiten..."
if [ -f /etc/debian_version ]; then
apt-get update && apt-get install -y libmilter-dev python3-dev build-essential python3-pip
elif [ -f /etc/redhat-release ]; then
dnf install -y sendmail-devel python3-devel gcc python3-pip
fi
apt-get update && apt-get install -y libmilter-dev python3-dev build-essential python3-venv
# 2. Python-Pakete installieren
echo "--> Installiere Python-Pakete..."
pip3 install pymilter dkimpy authres cryptography --break-system-packages || pip3 install pymilter dkimpy authres cryptography
# 2. Virtuelle Python-Umgebung erstellen (Kein pip-Meckern mehr!)
echo "--> Erstelle isolierte virtuelle Umgebung..."
mkdir -p /usr/share/pyarc-venv
python3 -m venv /usr/share/pyarc-venv
# 3. Ordnerstrukturen anlegen
echo "--> Erstelle Verzeichnisse und setze Rechte..."
# 3. Pakete innerhalb der venv installieren
echo "--> Installiere Python-Bibliotheken in die venv..."
/usr/share/pyarc-venv/bin/pip install --upgrade pip
/usr/share/pyarc-venv/bin/pip install pymilter dkimpy authres cryptography
# 4. Ordnerstrukturen anlegen
echo "--> Erstelle Verzeichnisse..."
mkdir -p /etc/pyarc/certs
mkdir -p /var/log/pyarc
# 4. Dateien kopieren
echo "--> Kopiere Skripte und Konfiguration..."
cp usr/local/bin/my_arc_milter.py /usr/local/bin/
# 5. Skripte kopieren
echo "--> Kopiere Skripte..."
cp usr/local/bin/pyarc-milter /usr/local/bin/
cp usr/local/bin/pyarc-gen /usr/local/bin/
chmod '+x' /usr/local/bin/my_arc_milter.py
chmod '+x' /usr/local/bin/pyarc-gen
chmod +x /usr/local/bin/pyarc-milter
chmod +x /usr/local/bin/pyarc-gen
# Nur kopieren, wenn noch keine Config existiert (Überschreibschutz)
# Config-Template kopieren falls nicht vorhanden
if [ ! -f /etc/pyarc/milter.conf ]; then
cp etc/pyarc/milter.conf.template /etc/pyarc/milter.conf
echo "✔ Standard-Konfiguration unter /etc/pyarc/milter.conf angelegt."
else
echo " /etc/pyarc/milter.conf existiert bereits. Übersprungen."
fi
# Rechte für Postfix anpassen
@@ -47,19 +46,27 @@ chown -R postfix:postfix /var/log/pyarc
chmod 750 /etc/pyarc
chmod 755 /var/log/pyarc
# 5. Systemd Service einrichten
# 6. Systemd Service anpassen und erstellen
echo "--> Erstelle Systemd-Service..."
cp pyarc-milter.service /etc/systemd/system/
cat <<EOF > /etc/systemd/system/pyarc-milter.service
[Unit]
Description=Custom Postfix ARC Milter
After=network.target
[Service]
Type=simple
# WICHTIG: Nutzt das Python aus der venv, damit alle Libs gefunden werden!
ExecStart=/usr/share/pyarc-venv/bin/python3 /usr/local/bin/pyarc-milter
Restart=on-failure
User=postfix
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable pyarc-milter
echo "=================================================="
echo "✔ Installation abgeschlossen!"
echo "=================================================="
echo "Nächste Schritte:"
echo "1. Passe /etc/pyarc/milter.conf an (auth_serv_id & Domains)."
echo "2. Generiere Keys mit: sudo pyarc-gen deine-domain.de"
echo "3. Starte den Service: sudo systemctl start pyarc-milter"
echo "4. Binde den Milter in die Postfix main.cf ein:"
echo " smtpd_milters = inet:127.0.0.1:8899"
echo "✔ Installation sauber und meckerfrei abgeschlossen!"
echo "=================================================="