#!/bin/sh # Deploy ac-ms-broadcast service to /var/www/ac/broadcast/ # Creates DB schema on primary node; copies files on all nodes. set -eu ROOT="$(cd "$(dirname "$0")/.." && pwd)" # shellcheck source=/dev/null . "$ROOT/scripts/lib/common.sh" load_cluster_env WS="${AC_WORKSPACE_ROOT:-/var/www/ac/workspace}" BROADCAST_DEST="/var/www/ac/broadcast" # Prefer NFS monorepo path (ac-ms-broadcast is a directory in the main ac monorepo, not a separate submodule) AC_REPO="${AC_MONOREPO_ROOT:-/mnt/repos/ac}" if [ -d "${AC_REPO}/ac-ms-broadcast" ]; then BROADCAST_SRC="${AC_REPO}/ac-ms-broadcast" elif [ -d "${WS}/ac-ms-broadcast" ]; then BROADCAST_SRC="${WS}/ac-ms-broadcast" else log "skip deploy-ac-broadcast: ac-ms-broadcast not found" return 0 fi log "deploy ac-ms-broadcast → ${BROADCAST_DEST}" mkdir -p "$BROADCAST_DEST" rsync -a --delete \ --exclude='.git' \ --exclude='config/config.php' \ "${BROADCAST_SRC}/" "${BROADCAST_DEST}/" 2>/dev/null || \ { mkdir -p "$BROADCAST_DEST"; cp -r "${BROADCAST_SRC}/." "${BROADCAST_DEST}/"; } # Config from cluster env / secrets DB_PASS="$(read_cred mariadb_app password 2>/dev/null || echo 'CHANGE_ME')" SHORTENER_BEARER="$(read_cred shortener_bearer token 2>/dev/null || echo 'CHANGE_ME')" TELEGRAM_TOKEN="$(read_cred telegram_bot token 2>/dev/null || echo '')" TELEGRAM_CHAT="$(read_cred telegram_chat_id value 2>/dev/null || echo '')" cat > "${BROADCAST_DEST}/config/config.php" < [ 'host' => '${PRIMARY_DB_HOST:-127.0.0.1}', 'port' => 3306, 'name' => 'broadcast', 'user' => 'broadcast_svc', 'password' => '${DB_PASS}', ], 'public_base' => 'https://notify.f0xx.org', 'shortener_url' => 'http://10.7.16.236/api/v1/shorten', 'shortener_bearer' => '${SHORTENER_BEARER}', 'telegram_token' => '${TELEGRAM_TOKEN}', 'telegram_chat_id' => '${TELEGRAM_CHAT}', 'smtp_host' => 'smtp.gmail.com', 'smtp_port' => 587, 'smtp_user' => 'bestcastr@gmail.com', 'smtp_password' => 'wnxv caln tcmt ldpn', 'smtp_from' => 'bestcastr@gmail.com', 'smtp_from_name' => 'AndroidCast', 'vapid_public' => 'BNncoy2XgjxGUdvmXtqtaOIM16k0MpA31KKm2C8N3I7HK56NXgj69etBoseASxibS_ypPNHJ38tol8mL3AZNx3E', 'vapid_private' => 'sgNXNbD29znCJfAEFI5kHb4IzrbkpYJxgroKCx8YJjk', 'vapid_subject' => 'mailto:a.afanasieff@gmail.com', 'worker_interval' => 30, 'push_batch_size' => 100, 'max_retries' => 3, 'port' => 8201, ]; PHPEOF chown -R nginx:nginx "$BROADCAST_DEST" 2>/dev/null || true # DB schema + user — primary node only if is_primary_node; then log "broadcast: create DB + user on primary" DB_SCHEMA="${BROADCAST_SRC}/sql/schema.mariadb.sql" if [ -f "$DB_SCHEMA" ]; then mariadb -u root < "$DB_SCHEMA" || true mariadb -u root </dev/null || true else install -m 755 "${BROADCAST_DEST}/deploy/openrc/broadcast-worker" /etc/init.d/broadcast-worker # Point worker to correct PHP binary sed -i 's|/usr/bin/php83|'"$(which php83 2>/dev/null || echo /usr/bin/php83)"'|g' /etc/init.d/broadcast-worker rc-service broadcast-worker start 2>/dev/null || true rc-update add broadcast-worker default 2>/dev/null || true fi log "broadcast: worker (re)started" fi log "deploy-ac-broadcast_ok $(host_short)"