Add video card insert feature + MkDocs video hydration + fixes
- New video card block for GrapesJS landing pages, email templates, MkDocs export, and documentation editor Insert dropdown - Shared HTML generators in admin/src/utils/videoCardHtml.ts - MkDocs video-player.js hydrates .video-card-block elements: thumbnail fix via MEDIA_API_URL, click-to-play inline, Gallery link - Media API CORS: auto-add MkDocs + docs subdomain origins - env_config_hook.py: smart Docker hostname detection, ADMIN_PORT resolution, pass env vars to MkDocs container - Gallery URL uses /gallery?expanded=ID format - VideoPickerModal: fix double /api prefix and Docker hostname thumbs - Seed: default-video-card PageBlock - Remove V1 legacy code (influence/, map/) Bunker Admin
This commit is contained in:
@@ -1,125 +1,163 @@
|
||||
---
|
||||
# Homepage Services Configuration
|
||||
# Tab 1: Production URLs (external/public access)
|
||||
# Tab 2: Local Development URLs (localhost with ports from config.sh)
|
||||
# Homepage Services Configuration — V2
|
||||
# Tab 1: Production URLs (external via Pangolin tunnel)
|
||||
# Tab 2: Local Development URLs (localhost with mapped ports)
|
||||
|
||||
#####################################
|
||||
# PRODUCTION - External URLs
|
||||
#####################################
|
||||
|
||||
- Production - Essential Tools:
|
||||
- Production - Application:
|
||||
|
||||
- Code Server:
|
||||
icon: mdi-code-braces
|
||||
href: "https://code.bnkserve.org"
|
||||
description: VS Code in the browser - Platform Editor
|
||||
container: code-server-changemaker
|
||||
- Admin GUI:
|
||||
icon: mdi-view-dashboard
|
||||
href: "https://app.cmlite.org"
|
||||
description: Admin dashboard & public pages
|
||||
container: changemaker-v2-admin
|
||||
|
||||
- Express API:
|
||||
icon: mdi-api
|
||||
href: "https://api.cmlite.org/api/health"
|
||||
description: Main V2 API (Prisma + PostgreSQL)
|
||||
container: changemaker-v2-api
|
||||
|
||||
- Media API:
|
||||
icon: mdi-movie-open
|
||||
href: "https://media.cmlite.org/health"
|
||||
description: Video library API (Fastify + Prisma)
|
||||
container: changemaker-media-api
|
||||
|
||||
- NocoDB:
|
||||
icon: mdi-database
|
||||
href: "https://db.bnkserve.org"
|
||||
description: No-code database platform
|
||||
container: changemakerlite-nocodb-1
|
||||
|
||||
- Map Server:
|
||||
icon: mdi-map
|
||||
href: "https://map.bnkserve.org"
|
||||
description: Map server for geospatial data
|
||||
container: nocodb-map-viewer
|
||||
|
||||
- Influence:
|
||||
icon: mdi-account-group
|
||||
href: "https://influence.bnkserve.org"
|
||||
description: Political influence and campaign management
|
||||
container: influence-app-1
|
||||
href: "https://db.cmlite.org"
|
||||
description: Read-only data browser
|
||||
container: changemaker-v2-nocodb
|
||||
|
||||
- Production - Content & Docs:
|
||||
|
||||
- Main Site:
|
||||
icon: mdi-web
|
||||
href: "https://bnkserve.org"
|
||||
description: CM-lite campaign website
|
||||
href: "https://cmlite.org"
|
||||
description: Documentation & marketing site (MkDocs)
|
||||
container: mkdocs-site-server-changemaker
|
||||
|
||||
- MkDocs (Live):
|
||||
icon: mdi-book-open-page-variant
|
||||
href: "https://docs.cmlite.org"
|
||||
description: Live documentation server with hot reload
|
||||
description: Live documentation with hot reload
|
||||
container: mkdocs-changemaker
|
||||
|
||||
- Code Server:
|
||||
icon: mdi-code-braces
|
||||
href: "https://code.cmlite.org"
|
||||
description: VS Code in the browser
|
||||
container: code-server-changemaker
|
||||
|
||||
- Mini QR:
|
||||
icon: mdi-qrcode
|
||||
href: "https://qr.bnkserve.org"
|
||||
href: "https://qr.cmlite.org"
|
||||
description: QR code generator
|
||||
container: mini-qr
|
||||
|
||||
- Excalidraw:
|
||||
icon: mdi-draw
|
||||
href: "https://draw.cmlite.org"
|
||||
description: Collaborative whiteboard
|
||||
container: excalidraw-changemaker
|
||||
|
||||
- Production - Automation & Services:
|
||||
|
||||
- Listmonk:
|
||||
icon: mdi-email-newsletter
|
||||
href: "https://listmonk.bnkserve.org"
|
||||
href: "https://listmonk.cmlite.org"
|
||||
description: Newsletter & mailing list manager
|
||||
container: listmonk_app
|
||||
|
||||
- Production - Automation:
|
||||
container: listmonk-app
|
||||
|
||||
- n8n:
|
||||
icon: mdi-robot-industrial
|
||||
href: "https://n8n.bnkserve.org"
|
||||
href: "https://n8n.cmlite.org"
|
||||
description: Workflow automation platform
|
||||
container: n8n-changemaker
|
||||
|
||||
- Gitea:
|
||||
icon: mdi-git
|
||||
href: "https://git.bnkserve.org"
|
||||
href: "https://git.cmlite.org"
|
||||
description: Git repository hosting
|
||||
container: gitea_changemaker
|
||||
container: gitea-changemaker
|
||||
|
||||
- MailHog:
|
||||
icon: mdi-email-check
|
||||
href: "https://mail.cmlite.org"
|
||||
description: Dev email capture (test mode)
|
||||
container: mailhog-changemaker
|
||||
|
||||
- Production - Infrastructure:
|
||||
|
||||
- Nginx:
|
||||
icon: mdi-server-network
|
||||
href: "#"
|
||||
description: Reverse proxy & subdomain routing
|
||||
container: changemaker-v2-nginx
|
||||
|
||||
- PostgreSQL (V2):
|
||||
icon: mdi-database-outline
|
||||
href: "#"
|
||||
description: Main application database
|
||||
container: changemaker-v2-postgres
|
||||
|
||||
- PostgreSQL (Listmonk):
|
||||
icon: mdi-database-outline
|
||||
href: "#"
|
||||
description: Database for Listmonk
|
||||
container: listmonk_db
|
||||
container: listmonk-db
|
||||
|
||||
- PostgreSQL (NocoDB):
|
||||
- MySQL (Gitea):
|
||||
icon: mdi-database-outline
|
||||
href: "#"
|
||||
description: Database for NocoDB
|
||||
container: changemakerlite-root_db-1
|
||||
description: Database for Gitea
|
||||
container: gitea-mysql
|
||||
|
||||
- Redis:
|
||||
icon: mdi-database-sync
|
||||
href: "#"
|
||||
description: Shared cache & session storage
|
||||
description: Cache, rate limiting & BullMQ
|
||||
container: redis-changemaker
|
||||
|
||||
- Newt:
|
||||
icon: mdi-tunnel
|
||||
href: "#"
|
||||
description: Pangolin tunnel connector
|
||||
container: newt-changemaker
|
||||
|
||||
- Production - Monitoring:
|
||||
|
||||
- Prometheus:
|
||||
icon: mdi-chart-line
|
||||
href: "https://prometheus.bnkserve.org"
|
||||
description: Metrics collection & time-series database
|
||||
container: prometheus-changemaker
|
||||
|
||||
- Grafana:
|
||||
icon: mdi-chart-box
|
||||
href: "https://grafana.bnkserve.org"
|
||||
href: "https://grafana.cmlite.org"
|
||||
description: Monitoring dashboards & visualizations
|
||||
container: grafana-changemaker
|
||||
|
||||
- Prometheus:
|
||||
icon: mdi-chart-line
|
||||
href: "#"
|
||||
description: Metrics collection & time-series database
|
||||
container: prometheus-changemaker
|
||||
|
||||
- Alertmanager:
|
||||
icon: mdi-bell-alert
|
||||
href: "https://alertmanager.bnkserve.org"
|
||||
href: "#"
|
||||
description: Alert routing & notification management
|
||||
container: alertmanager-changemaker
|
||||
|
||||
- Gotify:
|
||||
icon: mdi-cellphone-message
|
||||
href: "https://gotify.bnkserve.org"
|
||||
href: "#"
|
||||
description: Self-hosted push notifications
|
||||
container: gotify-changemaker
|
||||
|
||||
- cAdvisor:
|
||||
icon: mdi-docker
|
||||
href: "https://cadvisor.bnkserve.org"
|
||||
href: "#"
|
||||
description: Container resource metrics
|
||||
container: cadvisor-changemaker
|
||||
|
||||
@@ -139,31 +177,31 @@
|
||||
# LOCAL DEVELOPMENT - Localhost URLs
|
||||
#####################################
|
||||
|
||||
- Local - Essential Tools:
|
||||
- Local - Application:
|
||||
|
||||
- Code Server:
|
||||
icon: mdi-code-braces
|
||||
href: "http://localhost:8888"
|
||||
description: VS Code in the browser (port 8888)
|
||||
container: code-server-changemaker
|
||||
- Admin GUI:
|
||||
icon: mdi-view-dashboard
|
||||
href: "http://localhost:3000"
|
||||
description: Admin dashboard & public pages (port 3000)
|
||||
container: changemaker-v2-admin
|
||||
|
||||
- Express API:
|
||||
icon: mdi-api
|
||||
href: "http://localhost:4000/api/health"
|
||||
description: Main V2 API (port 4000)
|
||||
container: changemaker-v2-api
|
||||
|
||||
- Media API:
|
||||
icon: mdi-movie-open
|
||||
href: "http://localhost:4100/health"
|
||||
description: Video library API (port 4100)
|
||||
container: changemaker-media-api
|
||||
|
||||
- NocoDB:
|
||||
icon: mdi-database
|
||||
href: "http://localhost:8090"
|
||||
description: No-code database platform (port 8090)
|
||||
container: changemakerlite-nocodb-1
|
||||
|
||||
- Map Server:
|
||||
icon: mdi-map
|
||||
href: "http://localhost:3000"
|
||||
description: Map server for geospatial data (port 3000)
|
||||
container: nocodb-map-viewer
|
||||
|
||||
- Influence:
|
||||
icon: mdi-account-group
|
||||
href: "http://localhost:3333"
|
||||
description: Political influence and campaign management (port 3333)
|
||||
container: influence-app-1
|
||||
href: "http://localhost:8091"
|
||||
description: Read-only data browser (port 8091)
|
||||
container: changemaker-v2-nocodb
|
||||
|
||||
- Homepage:
|
||||
icon: mdi-home
|
||||
@@ -175,29 +213,41 @@
|
||||
|
||||
- Main Site:
|
||||
icon: mdi-web
|
||||
href: "http://localhost:4001"
|
||||
description: CM-lite campaign website (port 4001)
|
||||
href: "http://localhost:4004"
|
||||
description: Documentation site (port 4004)
|
||||
container: mkdocs-site-server-changemaker
|
||||
|
||||
- MkDocs (Live):
|
||||
icon: mdi-book-open-page-variant
|
||||
href: "http://localhost:4000"
|
||||
description: Live documentation with hot reload (port 4000)
|
||||
href: "http://localhost:4003"
|
||||
description: Live documentation with hot reload (port 4003)
|
||||
container: mkdocs-changemaker
|
||||
|
||||
- Code Server:
|
||||
icon: mdi-code-braces
|
||||
href: "http://localhost:8888"
|
||||
description: VS Code in the browser (port 8888)
|
||||
container: code-server-changemaker
|
||||
|
||||
- Mini QR:
|
||||
icon: mdi-qrcode
|
||||
href: "http://localhost:8089"
|
||||
description: QR code generator (port 8089)
|
||||
container: mini-qr
|
||||
|
||||
- Excalidraw:
|
||||
icon: mdi-draw
|
||||
href: "http://localhost:8090"
|
||||
description: Collaborative whiteboard (port 8090)
|
||||
container: excalidraw-changemaker
|
||||
|
||||
- Local - Automation & Services:
|
||||
|
||||
- Listmonk:
|
||||
icon: mdi-email-newsletter
|
||||
href: "http://localhost:9000"
|
||||
description: Newsletter & mailing list manager (port 9000)
|
||||
container: listmonk_app
|
||||
|
||||
- Local - Automation:
|
||||
href: "http://localhost:9001"
|
||||
description: Newsletter & mailing list manager (port 9001)
|
||||
container: listmonk-app
|
||||
|
||||
- n8n:
|
||||
icon: mdi-robot-industrial
|
||||
@@ -209,50 +259,76 @@
|
||||
icon: mdi-git
|
||||
href: "http://localhost:3030"
|
||||
description: Git repository hosting (port 3030)
|
||||
container: gitea_changemaker
|
||||
container: gitea-changemaker
|
||||
|
||||
- MailHog:
|
||||
icon: mdi-email-check
|
||||
href: "http://localhost:8025"
|
||||
description: Dev email capture (port 8025)
|
||||
container: mailhog-changemaker
|
||||
|
||||
- Local - Infrastructure:
|
||||
|
||||
- Nginx:
|
||||
icon: mdi-server-network
|
||||
href: "http://localhost:80"
|
||||
description: Reverse proxy & subdomain routing (port 80)
|
||||
container: changemaker-v2-nginx
|
||||
|
||||
- PostgreSQL (V2):
|
||||
icon: mdi-database-outline
|
||||
href: "#"
|
||||
description: Main application database (port 5433)
|
||||
container: changemaker-v2-postgres
|
||||
|
||||
- PostgreSQL (Listmonk):
|
||||
icon: mdi-database-outline
|
||||
href: "#"
|
||||
description: Database for Listmonk (port 5432)
|
||||
container: listmonk_db
|
||||
container: listmonk-db
|
||||
|
||||
- PostgreSQL (NocoDB):
|
||||
- MySQL (Gitea):
|
||||
icon: mdi-database-outline
|
||||
href: "#"
|
||||
description: Database for NocoDB
|
||||
container: changemakerlite-root_db-1
|
||||
description: Database for Gitea (internal)
|
||||
container: gitea-mysql
|
||||
|
||||
- Redis:
|
||||
icon: mdi-database-sync
|
||||
href: "#"
|
||||
description: Shared cache & session storage (port 6379)
|
||||
description: Cache, rate limiting & BullMQ (port 6379)
|
||||
container: redis-changemaker
|
||||
|
||||
- Local - Monitoring:
|
||||
- Newt:
|
||||
icon: mdi-tunnel
|
||||
href: "#"
|
||||
description: Pangolin tunnel connector
|
||||
container: newt-changemaker
|
||||
|
||||
- Prometheus:
|
||||
icon: mdi-chart-line
|
||||
href: "http://localhost:9090"
|
||||
description: Metrics collection & time-series database (port 9090)
|
||||
container: prometheus-changemaker
|
||||
- Local - Monitoring:
|
||||
|
||||
- Grafana:
|
||||
icon: mdi-chart-box
|
||||
href: "http://localhost:3001"
|
||||
description: Monitoring dashboards & visualizations (port 3001)
|
||||
description: Monitoring dashboards (port 3001)
|
||||
container: grafana-changemaker
|
||||
|
||||
- Prometheus:
|
||||
icon: mdi-chart-line
|
||||
href: "http://localhost:9090"
|
||||
description: Metrics collection (port 9090)
|
||||
container: prometheus-changemaker
|
||||
|
||||
- Alertmanager:
|
||||
icon: mdi-bell-alert
|
||||
href: "http://localhost:9093"
|
||||
description: Alert routing & notification management (port 9093)
|
||||
description: Alert routing (port 9093)
|
||||
container: alertmanager-changemaker
|
||||
|
||||
- Gotify:
|
||||
icon: mdi-cellphone-message
|
||||
href: "http://localhost:8889"
|
||||
description: Self-hosted push notifications (port 8889)
|
||||
description: Push notifications (port 8889)
|
||||
container: gotify-changemaker
|
||||
|
||||
- cAdvisor:
|
||||
@@ -264,11 +340,11 @@
|
||||
- Node Exporter:
|
||||
icon: mdi-server
|
||||
href: "http://localhost:9100/metrics"
|
||||
description: System-level metrics exporter (port 9100)
|
||||
description: System-level metrics (port 9100)
|
||||
container: node-exporter-changemaker
|
||||
|
||||
- Redis Exporter:
|
||||
icon: mdi-database-export
|
||||
href: "http://localhost:9121/metrics"
|
||||
description: Redis metrics exporter (port 9121)
|
||||
description: Redis metrics (port 9121)
|
||||
container: redis-exporter-changemaker
|
||||
|
||||
@@ -18,28 +18,34 @@ cardBlur: xl # xs, md,
|
||||
headerStyle: boxed
|
||||
|
||||
layout:
|
||||
# Production Tab Groups - displayed as vertical columns
|
||||
Production - Essential Tools:
|
||||
# Production Tab Groups
|
||||
Production - Application:
|
||||
tab: Production
|
||||
style: column
|
||||
Production - Content & Docs:
|
||||
tab: Production
|
||||
style: column
|
||||
Production - Automation:
|
||||
Production - Automation & Services:
|
||||
tab: Production
|
||||
style: column
|
||||
Production - Infrastructure:
|
||||
tab: Production
|
||||
style: column
|
||||
Production - Monitoring:
|
||||
tab: Production
|
||||
style: column
|
||||
|
||||
# Local Development Tab Groups - displayed as vertical columns
|
||||
Local - Essential Tools:
|
||||
# Local Development Tab Groups
|
||||
Local - Application:
|
||||
tab: Local
|
||||
style: column
|
||||
Local - Content & Docs:
|
||||
tab: Local
|
||||
style: column
|
||||
Local - Automation:
|
||||
Local - Automation & Services:
|
||||
tab: Local
|
||||
style: column
|
||||
Local - Infrastructure:
|
||||
tab: Local
|
||||
style: column
|
||||
Local - Monitoring:
|
||||
|
||||
Reference in New Issue
Block a user