mirror of
git://f0xx.org/ac/ac-deploy
synced 2026-07-29 02:57:38 +03:00
Align cluster0 deploy seeds and apps-port80 vhost for Grafana monitoring path. Co-authored-by: Cursor <cursoragent@cursor.com>
102 lines
4.0 KiB
Bash
Executable File
102 lines
4.0 KiB
Bash
Executable File
#!/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" <<PHPEOF
|
|
<?php
|
|
return [
|
|
'db' => [
|
|
'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 <<SQLEOF
|
|
CREATE USER IF NOT EXISTS 'broadcast_svc'@'%' IDENTIFIED BY '${DB_PASS}';
|
|
CREATE USER IF NOT EXISTS 'broadcast_svc'@'localhost' IDENTIFIED BY '${DB_PASS}';
|
|
CREATE USER IF NOT EXISTS 'broadcast_svc'@'${CAST01_HOST:-cast01}' IDENTIFIED BY '${DB_PASS}';
|
|
GRANT ALL PRIVILEGES ON broadcast.* TO 'broadcast_svc'@'%';
|
|
GRANT ALL PRIVILEGES ON broadcast.* TO 'broadcast_svc'@'localhost';
|
|
GRANT ALL PRIVILEGES ON broadcast.* TO 'broadcast_svc'@'${CAST01_HOST:-cast01}';
|
|
FLUSH PRIVILEGES;
|
|
SQLEOF
|
|
log "broadcast: DB schema applied"
|
|
fi
|
|
|
|
# Start / restart delivery worker
|
|
if [ -f /etc/init.d/broadcast-worker ]; then
|
|
rc-service broadcast-worker restart 2>/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)"
|