Commit graph

2 commits

Author SHA1 Message Date
67b8b4c576 SEO: local AV/DC targeting, static service + case-study pages
- services-data.js: 4 service landing pages (commercial AV install DC,
  broadcast integration, LED/XR, conference room AV) with FAQ + areas
- build-pages.mjs: node-stdlib generator -> /services/<slug>/,
  /projects/<slug>/, index pages, sitemap.xml; Service/FAQPage/Article/
  BreadcrumbList JSON-LD on every page
- index.html: title/description/OG retargeted to 'Commercial AV &
  Broadcast Systems Integrator - Washington, DC'; ProfessionalService
  schema gains geo, areaServed (DMV cities), hasOfferCatalog; noscript
  fallback links the new pages
- components.jsx: hero copy + footer links point at real service pages
- nginx.conf/Dockerfile: ship generated pages, robots/sitemap types
- llms.txt: service pages + service area
2026-09-18 08:00:19 -04:00
6d901522d0 Add nginx Docker setup for persistent serving on :43036
- Dockerfile: nginx:1.27-alpine, copies static files + nginx.conf
- nginx.conf: gzip, long cache for images, short cache for HTML/JS,
  SPA fallback to index.html (hash router handles /#/projects/<slug>)
- docker-compose.yml: restart unless-stopped, healthcheck on :43036
- README: docker compose up -d --build

Keeps port 43036 so the existing nginx-proxy-manager route for
wilddragon.net (-> :43036) keeps working without reconfig.
2026-05-12 11:02:55 +00:00