mirror of
git://f0xx.org/ac/ac-deploy
synced 2026-07-29 06:17:57 +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:
@@ -44,3 +44,26 @@ Suggested public URL after deploy sync:
|
||||
`https://apps.f0xx.org/app/androidcast_project/crashes/THIRD_PARTY_LICENSES.md`
|
||||
|
||||
(or render an HTML excerpt on the hub legal page linking mobile + BE lists).
|
||||
|
||||
## Nuevo Player (Video.js + Nuevo Plugin)
|
||||
|
||||
**Component:** HTML5 video player embedded in VOD/restreaming service (DR: `ac-docs/drafts/20260616_VOD_and_restreaming_service.txt`)
|
||||
**Files:** `public/assets/vendor/nuevo-player/js/` and `public/assets/vendor/nuevo-player/vdjs/`
|
||||
|
||||
| File | Library | License |
|
||||
|------|---------|---------|
|
||||
| `video.min.js` | [Video.js](https://videojs.com) | Apache-2.0 |
|
||||
| `videojs-contrib-hls.min.js` | videojs-contrib-hls | Apache-2.0 |
|
||||
| `videojs-landscape-fullscreen.min.js` | videojs-landscape-fullscreen | MIT |
|
||||
| `nuevo.min.js` | [Nuevo Player](https://www.nuevodevel.com) | **Commercial license** — purchased; see `tmp/nuevo-player.tar.xz` (not in repo) |
|
||||
| `nsvideo.min.js` | Nuevo Player (nsVideo module) | **Commercial license** (same purchase) |
|
||||
| `vdjs/v10.0.0/skins/treso/videojs.min.css` | Treso skin (Nuevo) | **Commercial license** (same purchase) |
|
||||
|
||||
**Note:** `nuevo.min.js` and `nsvideo.min.js` are proprietary (Nuevo Player commercial license). Binary distribution requires a valid Nuevo Player license. These files are included in the repo under the purchased license and must **not** be redistributed or open-sourced. The `video.min.js` (Video.js core) and HLS plugin are separately Apache-2.0 licensed and may be replaced with upstream npm builds.
|
||||
|
||||
## TipTap Editor
|
||||
|
||||
**Component:** Rich text editor in Broadcast admin compose view (`ac-ms-broadcast/views/admin/compose.php`)
|
||||
**License:** MIT
|
||||
**URL:** https://tiptap.dev | https://github.com/ueberdosis/tiptap
|
||||
**Note:** Only open-source core extensions used. No Pro cloud extensions. Loaded from unpkg CDN in current implementation — for production, pin version and self-host bundle.
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 131 KiB |
BIN
sim/cluster0/lab-seeds/backend/public/assets/favicon.ico
Normal file
BIN
sim/cluster0/lab-seeds/backend/public/assets/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
3
sim/cluster0/lab-seeds/backend/public/assets/vendor/nuevo-player/js/nsvideo.min.js
vendored
Normal file
3
sim/cluster0/lab-seeds/backend/public/assets/vendor/nuevo-player/js/nsvideo.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
sim/cluster0/lab-seeds/backend/public/assets/vendor/nuevo-player/js/nuevo.min.js
vendored
Normal file
1
sim/cluster0/lab-seeds/backend/public/assets/vendor/nuevo-player/js/nuevo.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
21
sim/cluster0/lab-seeds/backend/public/assets/vendor/nuevo-player/js/video.min.js
vendored
Normal file
21
sim/cluster0/lab-seeds/backend/public/assets/vendor/nuevo-player/js/video.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
|
||||
/*! @name videojs-landscape-fullscreen @version 11.1111.0 @license ISC */
|
||||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("video.js"),require("global/window")):"function"==typeof define&&define.amd?define(["video.js","global/window"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).videojsLandscapeFullscreen=n(e.videojs,e.window)}(this,(function(e,n){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=t(e),i=t(n),r={fullscreen:{enterOnRotate:!0,exitOnRotate:!0,alwaysInLandscapeMode:!0,iOS:!0}},l=i.default.screen;l.lockOrientationUniversal=function(e){return l.orientation&&l.orientation.lock(e).then((function(){}),(function(e){return console.log(e)}))||l.mozLockOrientation&&l.mozLockOrientation(e)||l.msLockOrientation&&l.msLockOrientation(e)};var a=function(){return"number"==typeof i.default.orientation||l&&l.orientation&&l.orientation.angle?i.default.orientation:(o.default.log("angle unknown"),0)},u=o.default.registerPlugin||o.default.plugin,s=function(e){var n=this;(o.default.browser.IS_ANDROID||o.default.browser.IS_IOS)&&this.ready((function(){!function(e,n){e.addClass("vjs-landscape-fullscreen"),n.fullscreen.iOS&&o.default.browser.IS_IOS&&o.default.browser.IOS_VERSION>9&&!e.el_.ownerDocument.querySelector(".bc-iframe")&&(e.tech_.el_.setAttribute("playsinline","playsinline"),e.tech_.supportsFullScreen=function(){return!1});var t=function(){var t=a();90!==t&&270!==t&&-90!==t||n.fullscreen.enterOnRotate&&!1===e.paused()&&(e.requestFullscreen(),l.lockOrientationUniversal("landscape")),0!==t&&180!==t||n.fullscreen.exitOnRotate&&e.isFullscreen()&&e.exitFullscreen()};o.default.browser.IS_IOS?i.default.addEventListener("orientationchange",t):l&&l.orientation&&(l.orientation.onchange=t),e.on("fullscreenchange",(function(t){(o.default.browser.IS_ANDROID||o.default.browser.IS_IOS)&&!a()&&e.isFullscreen()&&n.fullscreen.alwaysInLandscapeMode&&l.lockOrientationUniversal("landscape")})),e.on("dispose",(function(){i.default.removeEventListener("orientationchange",t)}))}(n,o.default.mergeOptions(r,e))}))};return u("landscapeFullscreen",s),s.VERSION="11.1111.0",s}));
|
||||
File diff suppressed because one or more lines are too long
@@ -25,6 +25,8 @@
|
||||
if (l === 'en' || l === 'ru') document.documentElement.setAttribute('lang', l);
|
||||
})();
|
||||
</script>
|
||||
<link rel="icon" type="image/x-icon" href="<?= h(Auth::basePath()) ?>/assets/favicon.ico">
|
||||
<link rel="apple-touch-icon" href="<?= h(Auth::basePath()) ?>/assets/apple-touch-icon.ico">
|
||||
<link rel="stylesheet" href="<?= h(Auth::basePath()) ?>/assets/css/app.css">
|
||||
<script src="<?= h(Auth::basePath()) ?>/assets/js/nav_shell.js" defer></script>
|
||||
<script src="<?= h(Auth::basePath()) ?>/assets/js/i18n.js" defer></script>
|
||||
|
||||
Reference in New Issue
Block a user