mirror of
git://f0xx.org/ac/ac-deploy
synced 2026-07-29 05:19:12 +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:
89
sim/cluster0/scripts/deploy-ac-broadcast.sh
Executable file
89
sim/cluster0/scripts/deploy-ac-broadcast.sh
Executable 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)"
|
||||
Reference in New Issue
Block a user