Files
hx-ki.com2/repos/hxki-inventory/chaos/install_mautic.sh
2026-03-06 15:22:40 +00:00

135 lines
4.3 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
set -e
echo "============================================"
echo " MAUTIC INSTALLER FERRARI EDITION "
echo "============================================"
###############################################
# 1) Update System
###############################################
apt update && apt upgrade -y
###############################################
# 2) Install Required Packages
###############################################
apt install -y software-properties-common gnupg2 unzip curl supervisor
###############################################
# 3) Install PHP 8.2 + Extensions
###############################################
add-apt-repository ppa:ondrej/php -y
apt update
apt install -y \
php8.2 php8.2-cli php8.2-fpm php8.2-common \
php8.2-mysql php8.2-xml php8.2-zip php8.2-mbstring php8.2-curl \
php8.2-intl php8.2-gd php8.2-imap php8.2-bcmath php8.2-opcache
###############################################
# 4) MariaDB installieren
###############################################
apt install -y mariadb-server mariadb-client
###############################################
# 5) MariaDB initial konfigurieren
###############################################
mysql -e "CREATE DATABASE mautic CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -e "CREATE USER 'mautic'@'localhost' IDENTIFIED BY 'Mautic123!';"
mysql -e "GRANT ALL PRIVILEGES ON mautic.* TO 'mautic'@'localhost';"
mysql -e "FLUSH PRIVILEGES;"
###############################################
# 6) Nginx installieren
###############################################
apt install -y nginx
###############################################
# 7) Mautic herunterladen
###############################################
cd /var/www
curl -L https://github.com/mautic/mautic/releases/latest/download/mautic.zip -o mautic.zip
unzip mautic.zip -d mautic
rm mautic.zip
###############################################
# 8) Berechtigungen setzen
###############################################
chown -R www-data:www-data /var/www/mautic
chmod -R 755 /var/www/mautic
###############################################
# 9) Nginx Virtual Host anlegen
###############################################
cat <<'EOF' >/etc/nginx/sites-available/mautic.conf
server {
listen 80;
server_name _;
root /var/www/mautic;
index index.php;
location / {
try_files $uri /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ {
expires max;
log_not_found off;
}
}
EOF
ln -sf /etc/nginx/sites-available/mautic.conf /etc/nginx/sites-enabled/mautic.conf
rm -f /etc/nginx/sites-enabled/default
nginx -t && systemctl restart nginx
###############################################
# 10) Supervisor Mautic Queue Worker
###############################################
cat <<'EOF' >/etc/supervisor/conf.d/mautic-worker.conf
[program:mautic-worker]
command=/usr/bin/php /var/www/mautic/bin/console mautic:messages:consume
autostart=true
autorestart=true
user=www-data
redirect_stderr=true
stdout_logfile=/var/log/supervisor/mautic-worker.log
EOF
supervisorctl reread
supervisorctl update
###############################################
# 11) PHP Tuning
###############################################
sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/8.2/fpm/php.ini
sed -i "s/upload_max_filesize = .*/upload_max_filesize = 64M/" /etc/php/8.2/fpm/php.ini
sed -i "s/post_max_size = .*/post_max_size = 64M/" /etc/php/8.2/fpm/php.ini
systemctl restart php8.2-fpm
###############################################
# 12) CRONJOBS hinzufügen
###############################################
cat <<'EOF' >/etc/cron.d/mautic
* * * * * www-data php /var/www/mautic/bin/console mautic:segments:update > /dev/null 2>&1
* * * * * www-data php /var/www/mautic/bin/console mautic:campaigns:trigger > /dev/null 2>&1
*/5 * * * * www-data php /var/www/mautic/bin/console mautic:emails:send > /dev/null 2>&1
EOF
###############################################
# READY
###############################################
echo ""
echo "============================================"
echo " MAUTIC INSTALLATION FERTIG FERRARI STYLE"
echo " URL: http://<dein-server>:80"
echo "============================================"