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:
2026-02-17 15:42:32 -07:00
parent 58dc1942ec
commit 99a6abab06
1511 changed files with 14551 additions and 1625410 deletions

View File

@@ -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

View File

@@ -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: