Skip to content

Landing Page Deployment

Overview

The landing page lives at apps/landing/ and is a single static HTML file served by an nginx:1.27-alpine container. There is no build step — nginx serves index.html directly from a bind mount.

Files

FilePurpose
apps/landing/index.htmlThe landing page (plain HTML + inline CSS)
apps/landing/nginx.confnginx virtual host config
apps/landing/docker-compose.ymlService definition with Traefik labels
scripts/deploy-landing.shDeploy script (also starts Traefik)

Deploy

Terminal window
chmod +x scripts/deploy-landing.sh
./scripts/deploy-landing.sh

The script:

  1. Creates the web Docker network if it does not exist
  2. Starts Traefik (infrastructure/traefik/)
  3. Starts the landing container (apps/landing/)
  4. Prints running containers

Updating Content

Edit apps/landing/index.html directly, then restart the container:

Terminal window
cd apps/landing
docker compose up -d

nginx picks up the updated file immediately (bind mount). No rebuild needed.

Traefik Labels

The landing page handles both apex and www:

- "traefik.http.routers.wb-landing.rule=Host(`weekendbuilder.io`) || Host(`www.weekendbuilder.io`)"

All other apps use a single subdomain rule.