54 lines
2.1 KiB
Bash
Executable File
54 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
export SESSION_COOKIE_SECURE="1"
|
|
export INSTANCE_TLS_MODE="production"
|
|
export INSTANCE_PARENT_DOMAIN="${INSTANCE_PARENT_DOMAIN:-meine-domain}"
|
|
export INSTANCE_WILDCARD_CERT_FILE="${INSTANCE_WILDCARD_CERT_FILE:-/etc/nginx/certs/wildcard.meine-domain.crt}"
|
|
export INSTANCE_WILDCARD_KEY_FILE="${INSTANCE_WILDCARD_KEY_FILE:-/etc/nginx/certs/wildcard.meine-domain.key}"
|
|
|
|
if [[ ! -f "$INSTANCE_WILDCARD_CERT_FILE" || ! -f "$INSTANCE_WILDCARD_KEY_FILE" ]]; then
|
|
echo "Error: Wildcard certificate missing for production mode"
|
|
echo " CERT: $INSTANCE_WILDCARD_CERT_FILE"
|
|
echo " KEY: $INSTANCE_WILDCARD_KEY_FILE"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Launching PRODUCTION stack"
|
|
echo " SESSION_COOKIE_SECURE=$SESSION_COOKIE_SECURE"
|
|
echo " INSTANCE_TLS_MODE=$INSTANCE_TLS_MODE"
|
|
echo " INSTANCE_PARENT_DOMAIN=$INSTANCE_PARENT_DOMAIN"
|
|
echo " INSTANCE_WILDCARD_CERT_FILE=$INSTANCE_WILDCARD_CERT_FILE"
|
|
echo " INSTANCE_WILDCARD_KEY_FILE=$INSTANCE_WILDCARD_KEY_FILE"
|
|
|
|
docker compose build website
|
|
docker compose up -d
|
|
|
|
NGINX_SCRIPT="$SCRIPT_DIR/../nginx.sh"
|
|
if [[ -x "$NGINX_SCRIPT" ]]; then
|
|
echo "Aktualisiere Nginx Reverse Proxy..."
|
|
sudo "$NGINX_SCRIPT" apply || echo "Warnung: Nginx konnte nicht automatisch aktualisiert werden."
|
|
fi
|
|
|
|
# Automatically sync hosts after container start
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
if [[ -x "$SCRIPT_DIR/sync_dev_hosts.sh" ]]; then
|
|
echo "Warte auf MongoDB-Verfügbarkeit..."
|
|
sleep 5
|
|
"$SCRIPT_DIR/sync_dev_hosts.sh" || true
|
|
echo "Production Hosts werden synchronisiert (stündlich)"
|
|
|
|
# Starte Background-Daemon für stündliche Sync
|
|
if [[ "${PROD_HOSTS_REFRESH_INTERVAL}" != "0" ]]; then
|
|
nohup bash -lc "while true; do '$SCRIPT_DIR/sync_dev_hosts.sh' >/dev/null 2>&1 || true; sleep ${PROD_HOSTS_REFRESH_INTERVAL:-3600}; done" \
|
|
>"$SCRIPT_DIR/prod-hosts-sync.log" 2>&1 &
|
|
echo " Prod-Hosts-Sync läuft im Hintergrund (Log: $SCRIPT_DIR/prod-hosts-sync.log)"
|
|
fi
|
|
fi
|
|
|
|
echo "Production stack is running on http://localhost:4999"
|
|
echo "Provisioning expects wildcard certificate for all subdomains."
|