mirror of
git://f0xx.org/ac/ac-deploy
synced 2026-07-29 08:18:09 +03:00
- 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>
90 lines
3.4 KiB
Bash
Executable File
90 lines
3.4 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_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)"
|