61 lines
2.6 KiB
Bash
61 lines
2.6 KiB
Bash
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
cd "$(dirname "$0")"
|
||
source ./lib.sh
|
||
require_root
|
||
header
|
||
|
||
# ── Defaults ────────────────────────────────────────────────────────────────
|
||
APP_NAME="${APP_NAME:-MailWolt}"
|
||
APP_USER="${APP_USER:-mailwolt}"
|
||
APP_GROUP="${APP_GROUP:-www-data}"
|
||
APP_USER_PREFIX="${APP_USER_PREFIX:-mw}"
|
||
APP_DIR="${APP_DIR:-/var/www/${APP_USER}}"
|
||
|
||
BASE_DOMAIN="${BASE_DOMAIN:-example.com}"
|
||
UI_SUB="${UI_SUB:-ui}"
|
||
WEBMAIL_SUB="${WEBMAIL_SUB:-webmail}"
|
||
MTA_SUB="${MTA_SUB:-mx}"
|
||
SYSTEM_SUB="${SYSTEM_SUB:-system}"
|
||
|
||
ADMIN_USER="${ADMIN_USER:-${APP_USER}}"
|
||
ADMIN_EMAIL="${ADMIN_EMAIL:-admin@localhost}"
|
||
ADMIN_PASS="${ADMIN_PASS:-ChangeMe}"
|
||
|
||
DB_NAME="${DB_NAME:-${APP_USER}}"
|
||
DB_USER="${DB_USER:-${APP_USER}}"
|
||
DB_PASS="${DB_PASS:-$(openssl rand -hex 16)}"
|
||
|
||
SERVER_PUBLIC_IPV4="$(detect_ip)"
|
||
SERVER_PUBLIC_IPV6="$(detect_ipv6)"
|
||
DEFAULT_TZ="$(detect_timezone)"
|
||
DEFAULT_LOCALE="$(guess_locale_from_tz "$DEFAULT_TZ")"
|
||
|
||
echo -e "${GREY}Erkannte IP (v4): ${SERVER_PUBLIC_IPV4} v6: ${SERVER_PUBLIC_IPV6:-–}${NC}"
|
||
|
||
read -r -p "Basisdomain (Enter=${BASE_DOMAIN}): " INP; BASE_DOMAIN="${INP:-$BASE_DOMAIN}"
|
||
read -r -p "UI Subdomain (Enter=${UI_SUB}): " INP; UI_SUB="${INP:-$UI_SUB}"
|
||
read -r -p "Webmail Subdomain (Enter=${WEBMAIL_SUB}): " INP; WEBMAIL_SUB="${INP:-$WEBMAIL_SUB}"
|
||
read -r -p "Mailserver Subdomain (Enter=${MTA_SUB}): " INP; MTA_SUB="${INP:-$MTA_SUB}"
|
||
|
||
read -r -p "Zeitzone (Enter=${DEFAULT_TZ}): " INP; APP_TZ="${INP:-$DEFAULT_TZ}"
|
||
read -r -p "Sprache [de/en] (Enter=${DEFAULT_LOCALE}): " INP; APP_LOCALE="${INP:-$DEFAULT_LOCALE}"
|
||
|
||
UI_HOST="$(join_host "$UI_SUB" "$BASE_DOMAIN")"
|
||
WEBMAIL_HOST="$(join_host "$WEBMAIL_SUB" "$BASE_DOMAIN")"
|
||
MAIL_HOSTNAME="$(join_host "$MTA_SUB" "$BASE_DOMAIN")"
|
||
SYSTEM_HOSTNAME="$(join_host "$SYSTEM_SUB" "$BASE_DOMAIN")"
|
||
|
||
export APP_NAME APP_USER APP_GROUP APP_USER_PREFIX APP_DIR
|
||
export BASE_DOMAIN UI_SUB WEBMAIL_SUB MTA_SUB SYSTEM_SUB
|
||
export UI_HOST WEBMAIL_HOST MAIL_HOSTNAME SYSTEM_HOSTNAME
|
||
export ADMIN_USER ADMIN_EMAIL ADMIN_PASS
|
||
export DB_NAME DB_USER DB_PASS
|
||
export SERVER_PUBLIC_IPV4 SERVER_PUBLIC_IPV6 APP_TZ APP_LOCALE
|
||
|
||
# ── Sequenz ────────────────────────────────────────────────────────────────
|
||
for STEP in 10-provision 20-ssl 30-db 40-postfix 50-dovecot 60-rspamd-opendkim 70-nginx 80-app 90-services 95-monit 98-motd 99-summary
|
||
do
|
||
log ">>> Running ${STEP}.sh"
|
||
bash "./${STEP}.sh"
|
||
done |