# garymcphee

## Project Info
- Type: custom — plain **static site** (nginx:alpine, stock image, no build step)
- Internal port: 80 → host `172.17.0.1:3107`
- Domain: https://garymcphee.com (+ www → apex redirect). DNS-only (not Cloudflare-proxied).
- Created: 2026-06-22. Backend retired 2026-07-10 (service concluded — see below).

## Description
Celebration-of-Life memorial site for Gary Pierson McPhee (1932–2025). A single static
page (`public/index.html`): portrait, order of service, "Going Home" lyrics, Special
Thanks, the slideshow video, a download link for the full service recording, and the
guestbook messages family/friends left during the event (now baked in as static, read-only
HTML — see below).

## Architecture — intentionally simple
Plain **nginx:alpine** serving `./public` read-only (`docker-compose.yml` + `nginx.conf`,
directory listing off). No backend, no database, no admin login, no write endpoints.
`.env` holds only `PROJECT_NAME`/`PORT`. To change content: edit files under `./public/`,
then `srv-gw deploy --project garymcphee` (static files also apply live without a deploy;
`deploy` just guarantees compose/nginx.conf changes take effect).

## History: the FastAPI admin backend (retired 2026-07-10)
For the live event, this project ran a small FastAPI app (`/admin`) so Bev (non-technical,
Gary's daughter) could self-serve: guestbook moderation, a livestream-link switcher, email
notifications, and file uploads, all behind one password. Once the service concluded, the
whole backend was **removed** per rian's request (disable + delete entirely, disable
comments, keep only the static site) — no more moving parts, no more attack surface, no
password to keep secure. What happened to each piece:
- **Guestbook**: the 5 real messages left during the event were baked directly into
  `index.html` as static HTML (read-only, no submission form anymore). A backup copy of the
  raw data lives at `guestbook-archive.json` in the project root (chmod 640, NOT under
  `public/`, so not web-accessible) in case they're ever needed again.
- **Livestream**: the event is over, so the livestream section was removed from the page
  entirely (it depended on `/api/stream`, which no longer exists).
- **Email notifications / uploader**: removed along with the backend. `.env` no longer
  holds `SMTP_PASS` / `UPLOAD_PASSWORD` / etc. — those secrets are gone from the server.
- The old backend code is not kept in this repo (it was deleted, not archived) — if similar
  functionality is ever needed again for another memorial site, treat it as a fresh build
  rather than hunting for old code here.

## Media assets (`public/assets/`)
- **`Celebration of Life for Gary McPhee (2).mp4`** (~592 MB) — full recording of the
  service. Downloadable via the "Download the service recording" button on the page (plain
  `<a download>` link, no backend needed — nginx serves it with range-request support so
  large downloads can resume). Already 720p at a modest bitrate; the original is also
  preserved on YouTube in full HD, so this file was deliberately left uncompressed.
- **`gary_s_slideshow_final_v4.0_26-jun-24.m4v`** (~48 MB) — the ~11-minute photo/music
  slideshow, embedded inline via `<video>`. Originally 1080p at 737 MB; recompressed
  2026-07-10 to 1280×720 (libx264, CRF 22) — visually verified against the original at
  multiple timestamps before the swap, ~93% size reduction, same filename (no HTML change
  needed). The 1080p original was **not** kept (not otherwise archived — recompress from
  scratch if a higher-res master is ever needed and the source footage still exists
  elsewhere).
- `slideshow_poster.jpeg`, `gary_car_50s.jpg` — poster frame / hero portrait, untouched.

## Getting Started
1. Edit files in `./public/` directly (or via SFTP/`sg garymcphee-dev`).
2. Deploy: `srv-gw deploy --project garymcphee`
3. Visit: https://garymcphee.com

## Managing the Container
Use `srv-gw` commands (NOT docker/podman directly):
```bash
srv-gw deploy --project garymcphee     # Deploy/redeploy (reads docker-compose.yml)
srv-gw status --project garymcphee     # Check status
srv-gw logs --project garymcphee       # View logs
srv-gw restart --project garymcphee    # Restart
srv-gw stop --project garymcphee       # Stop
srv-gw start --project garymcphee      # Start
```

## Customizing
Edit `docker-compose.yml` to change the container setup. Then run `srv-gw deploy`.
