Initial commit

This commit is contained in:
Ronald Huynen
2026-03-23 21:37:59 +01:00
commit 2547717edb
2193 changed files with 972171 additions and 0 deletions

70
scripts/mail-switch.sh Executable file
View File

@@ -0,0 +1,70 @@
#!/usr/bin/env bash
# mail-switch.sh — toggle between Mailpit (local testing) and real SMTP server
# Usage: ./scripts/mail-switch.sh [mailpit|real]
# Without argument: auto-detects current mode and toggles
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
APP_DIR="$(dirname "$SCRIPT_DIR")"
ENV_FILE="$APP_DIR/.env"
REAL_ENV="$SCRIPT_DIR/mail-real.env"
if [[ ! -f "$ENV_FILE" ]]; then
echo "ERROR: .env file not found at $ENV_FILE"
exit 1
fi
if [[ ! -f "$REAL_ENV" ]]; then
echo "ERROR: mail-real.env not found at $REAL_ENV"
echo "Create it with your real SMTP settings."
exit 1
fi
# Read current MAIL_HOST from .env
current_host=$(grep -E "^MAIL_HOST=" "$ENV_FILE" | cut -d= -f2 | tr -d '"' | tr -d "'")
# Determine target mode
if [[ "${1:-}" == "mailpit" ]]; then
target="mailpit"
elif [[ "${1:-}" == "real" ]]; then
target="real"
elif [[ "$current_host" == "localhost" || "$current_host" == "127.0.0.1" ]]; then
target="real"
echo "Current mode: Mailpit → switching to real SMTP"
else
target="mailpit"
echo "Current mode: real SMTP ($current_host) → switching to Mailpit"
fi
set_env_value() {
local key="$1"
local value="$2"
# Replace the key=value line in .env (handles empty values too)
sed -i "s|^${key}=.*|${key}=${value}|" "$ENV_FILE"
}
if [[ "$target" == "mailpit" ]]; then
set_env_value "MAIL_MAILER" "smtp"
set_env_value "MAIL_HOST" "localhost"
set_env_value "MAIL_PORT" "1025"
set_env_value "MAIL_USERNAME" ""
set_env_value "MAIL_PASSWORD" ""
set_env_value "MAIL_ENCRYPTION" "null"
echo "Mail switched to: Mailpit (localhost:1025)"
else
# Load real SMTP settings from mail-real.env
while IFS='=' read -r key value; do
# Skip comments and empty lines
[[ "$key" =~ ^#.*$ || -z "$key" ]] && continue
set_env_value "$key" "$value"
done < "$REAL_ENV"
real_host=$(grep -E "^MAIL_HOST=" "$REAL_ENV" | cut -d= -f2)
echo "Mail switched to: real SMTP ($real_host)"
fi
# Clear config cache and restart queue workers
cd "$APP_DIR"
php artisan config:clear
php artisan queue:restart
echo "Done. Config cleared and queue workers restarted."