1
0
mirror of git://f0xx.org/ac/ac-deploy synced 2026-07-29 04:38:48 +03:00

deploy: favicon, nuevo-player, ac-ms-broadcast, nginx notify/monitor/broadcast

- favicon.ico (32px) + apple-touch-icon.ico (180px) added to composed backend seed
- layout.php: add <link rel="icon"> and <link rel="apple-touch-icon"> in <head>
- nuevo-player (Video.js + Nuevo licensed plugin) into assets/vendor/nuevo-player/
- THIRD_PARTY_LICENSES.md: add Nuevo Player (commercial) + TipTap (MIT) entries
- apps-port80.conf: full rewrite with all live fixes merged in:
    * map $http_upgrade $connection_upgrade (WebSocket upgrade)
    * 2FA location regex extended: api/two-factor
    * grafana-auth-check internal endpoint + @monitor_login_redirect
    * Grafana proxy (cast04:3000) + Alertmanager proxy (cast04:9093)
    * broadcast admin path /app/androidcast_project/broadcast/ (auth_request gated)
    * notify.f0xx.org server block: public /m/{slug} landing + API
    * favicon.ico at server root
- deploy-ac-broadcast.sh: new app-phase script (DB schema, user, worker, rsync)
- populate_lab_setup.sh: add deploy-ac-broadcast.sh to run_phase_app

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Anton Afanasyeu
2026-06-28 22:55:44 +02:00
parent b9925a6c74
commit 98f4ecc2c5
13 changed files with 280 additions and 5 deletions

View File

@@ -0,0 +1,89 @@
#!/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_SRC="${WS}/ac-ms-broadcast"
BROADCAST_DEST="/var/www/ac/broadcast"
[ -d "$BROADCAST_SRC" ] || { log "skip deploy-ac-broadcast: ac-ms-broadcast not in workspace"; return 0; }
log "deploy ac-ms-broadcast → ${BROADCAST_DEST}"
mkdir -p "$BROADCAST_DEST"
rsync -a --delete \
--exclude='.git' \
--exclude='config/config.php' \
"${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
sudo -u mysql mariadb --socket=/run/mysqld/mysqld.sock < "$DB_SCHEMA" || true
sudo -u mysql mariadb --socket=/run/mysqld/mysqld.sock <<SQLEOF
CREATE USER IF NOT EXISTS 'broadcast_svc'@'%' IDENTIFIED BY '${DB_PASS}';
GRANT ALL PRIVILEGES ON broadcast.* TO 'broadcast_svc'@'%';
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)"