64 lines
1.8 KiB
Bash
64 lines
1.8 KiB
Bash
#!/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
|