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 #!/usr/bin/env bash
set -e set -e
# Sicherstellen, dass das Skript als root ausgeführt wird
if [ "$EUID" -ne 0 ]; then if [ "$EUID" -ne 0 ]; then
echo "Bitte als root ausführen (sudo ./install.sh)" echo "Bitte als root ausführen (sudo ./install.sh)"
exit 1 exit 1
fi 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..." 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-venv
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
# 2. Python-Pakete installieren # 2. Virtuelle Python-Umgebung erstellen (Kein pip-Meckern mehr!)
echo "--> Installiere Python-Pakete..." echo "--> Erstelle isolierte virtuelle Umgebung..."
pip3 install pymilter dkimpy authres cryptography --break-system-packages || pip3 install pymilter dkimpy authres cryptography mkdir -p /usr/share/pyarc-venv
python3 -m venv /usr/share/pyarc-venv
# 3. Ordnerstrukturen anlegen # 3. Pakete innerhalb der venv installieren
echo "--> Erstelle Verzeichnisse und setze Rechte..." 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 /etc/pyarc/certs
mkdir -p /var/log/pyarc mkdir -p /var/log/pyarc
# 4. Dateien kopieren # 5. Skripte kopieren
echo "--> Kopiere Skripte und Konfiguration..." echo "--> Kopiere Skripte..."
cp usr/local/bin/my_arc_milter.py /usr/local/bin/ cp usr/local/bin/pyarc-milter /usr/local/bin/
cp usr/local/bin/pyarc-gen /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-milter
chmod '+x' /usr/local/bin/pyarc-gen 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 if [ ! -f /etc/pyarc/milter.conf ]; then
cp etc/pyarc/milter.conf.template /etc/pyarc/milter.conf cp etc/pyarc/milter.conf.template /etc/pyarc/milter.conf
echo "✔ Standard-Konfiguration unter /etc/pyarc/milter.conf angelegt." echo "✔ Standard-Konfiguration unter /etc/pyarc/milter.conf angelegt."
else
echo " /etc/pyarc/milter.conf existiert bereits. Übersprungen."
fi fi
# Rechte für Postfix anpassen # Rechte für Postfix anpassen
@@ -47,19 +46,27 @@ chown -R postfix:postfix /var/log/pyarc
chmod 750 /etc/pyarc chmod 750 /etc/pyarc
chmod 755 /var/log/pyarc chmod 755 /var/log/pyarc
# 5. Systemd Service einrichten # 6. Systemd Service anpassen und erstellen
echo "--> Erstelle Systemd-Service..." 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 daemon-reload
systemctl enable pyarc-milter systemctl enable pyarc-milter
echo "==================================================" echo "=================================================="
echo "✔ Installation abgeschlossen!" echo "✔ Installation sauber und meckerfrei 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 "==================================================" echo "=================================================="