#!/usr/bin/env bash set -euo pipefail cd "$(dirname "$0")" source ./lib.sh require_root header # ── Pflicht: Mailserver-FQDN ────────────────────────────────────────────── MAIL_FQDN="${MAIL_FQDN:-}" if [[ -z "${MAIL_FQDN}" ]]; then read -r -p "Mailserver FQDN (z.B. mx.example.com): " MAIL_FQDN fi [[ "$MAIL_FQDN" == *.* ]] || die "MAIL_FQDN (z.B. mx.example.com) ist Pflicht." # Ableitungen MTA_SUB="${MAIL_FQDN%%.*}" BASE_DOMAIN="${MAIL_FQDN#*.}" UI_SUB="${UI_SUB:-ui}" WEBMAIL_SUB="${WEBMAIL_SUB:-webmail}" SYSTEM_SUB="${SYSTEM_SUB:-system}" # kommt aus Seeder (App), hier nur Derivate export APP_NAME="${APP_NAME:-MailWolt}" export APP_ENV="${APP_ENV:-production}" export APP_DEBUG="${APP_DEBUG:-false}" export BASE_DOMAIN UI_SUB WEBMAIL_SUB MTA_SUB SYSTEM_SUB export UI_HOST="${UI_SUB}.${BASE_DOMAIN}" export WEBMAIL_HOST="${WEBMAIL_SUB}.${BASE_DOMAIN}" export MAIL_HOSTNAME="${MAIL_FQDN}" export SYSTEM_HOSTNAME="${SYSTEM_SUB}.${BASE_DOMAIN}" export SERVER_PUBLIC_IPV4="$(detect_ip)" export SERVER_PUBLIC_IPV6="$(detect_ipv6)" # Zeitzone/Locale heuristisch (kannst du später per UI anpassen) export APP_TZ="$(detect_timezone)" export APP_LOCALE="$(guess_locale_from_tz "$APP_TZ")" # LE-Kontakt export LE_EMAIL="${LE_EMAIL:-admin@${BASE_DOMAIN}}" # Repo/Branch (für 80-app.sh) export GIT_REPO="${GIT_REPO:-https://git.nexlab.at/boban/mailwolt.git}" export GIT_BRANCH="${GIT_BRANCH:-main}" export APP_USER="${APP_USER:-mailwolt}" export APP_GROUP="${APP_GROUP:-www-data}" export APP_DIR="/var/www/${APP_USER}" export APP_USER_PREFIX="${APP_USER_PREFIX:-mw}" # Run modules ./10-provision.sh ./20-ssl.sh ./30-db.sh ./40-postfix.sh ./50-dovecot.sh ./60-rspamd-opendkim.sh ./70-nginx.sh ./80-app.sh ./90-services.sh ./95-monit.sh ./98-motd.sh ./99-summary.sh