# Lodge website Static site `www.thelonglakelodge.com` (apex → 301 → www). Source at `~/code/git/code.fritzlab.net/websites/thelonglakelodge.com`. Published via `action/site-publish@v1`: push to `main` → `aws s3 sync --delete` to Garage bucket `thelonglakelodge.com`, ArgoCD reconciles Traefik Ingress + cert. ## Welcome packet PDF (`/welcome`) `https://www.thelonglakelodge.com/welcome` is a real HTTP 301 redirect to `/welcome.pdf` (browser renders the PDF in its native viewer). Unlisted, not in nav. Both objects live in the Garage S3 bucket only, NOT in git: - `s3://thelonglakelodge.com/welcome` — empty object with `x-amz-website-redirect-location: /welcome.pdf` and `content-type: text/html` - `s3://thelonglakelodge.com/welcome.pdf` — the PDF itself Preserved across site-publish runs via `excludes: [welcome, welcome.pdf]` in `site.yaml` (the `--exclude` flag was added to `action/site-publish` for this case). ### Update the packet One command — change is live immediately, no git/CI involved: ```sh aws --profile sjc001 s3 cp /path/to/new.pdf \ s3://thelonglakelodge.com/welcome.pdf \ --content-type application/pdf ``` ### Recreate the /welcome redirect (rarely needed) ```sh aws --profile sjc001 s3api put-object \ --bucket thelonglakelodge.com \ --key welcome \ --website-redirect-location /welcome.pdf \ --content-type text/html ``` The `sjc001` aws-cli profile is documented in fritzlab `garage.md`.