diff --git a/progress.md b/progress.md index a24afff..d5994bc 100644 --- a/progress.md +++ b/progress.md @@ -8,40 +8,38 @@ - [x] Mobile nav toggle + floating CTA button - [x] Phone number formatting + clickable tel: links - [x] Git repo created and pushed to Gitea -- [x] **SEO fundamentals** — OG tags, Twitter cards, structured data (LocalBusiness), canonical URL, robots meta, favicon (inline SVG), description/keywords meta +- [x] **SEO fundamentals** — OG tags, Twitter cards, structured data (LocalBusiness), canonical URL, robots meta, favicon, description/keywords meta - [x] **How It Works** section — 3-step visual process (Contact → Quote → Clean) -- [x] **Before & After Gallery** — 3 comparison cards (truck fleet, house, storefront) with hover reveal effect + placeholder images +- [x] **Before & After Gallery** — 3 comparison cards (truck fleet, house, storefront) with hover reveal effect - [x] **Testimonials** — 3 placeholder testimonial cards with star ratings -- [x] **Placeholder images** — Generated via ImageMagick (all image URLs in code point to real files) +- [x] **Placeholder images** — Generated via ImageMagick (all real files, replace with real photos before going live) - [x] **Service area** — Coshocton, OH & surrounding areas referenced throughout - [x] **Privacy-respecting analytics** — Script placeholder commented in ``, ready for Plausible/Umami +- [x] **Hosting deployment** — Site deployed to 10.10.9.230 (hostname: `dotnet`), nginx serving, PHP 8.2 FPM installed +- [x] **Nginx config** — `/etc/nginx/sites-available/WilliamsPressureWashingServices.com` active, security headers, static asset caching +- [x] **Site live on IP** — http://10.10.9.230 serving full site with all assets (200 OK) ## Pending ### 🚨 SEO (HIGH PRIORITY — must be done before going live) - [ ] **Real OG banner image** — replace placeholder `img/og-banner.jpg` with a proper 1200×630 branded image - [ ] **Real favicon** — generate a proper `.ico` / `.png` favicon from a pressure washing logo (currently using inline SVG emoji) -- [ ] **Sitemap.xml** — create `sitemap.xml` listing all sections/pages for search engine indexing -- [ ] **robots.txt** — create `robots.txt` file allowing crawler access - [ ] **Google Search Console verification** — add meta tag or HTML file after John purchases the domain - [ ] **Google Business Profile** — set up once domain is live (Walter's business listing) - [ ] **Alt text review** — ensure all real images have descriptive, keyword-rich alt text -- [ ] **Page load optimization** — compress real images, consider lazy loading beyond native, minify CSS/JS +- [ ] **Page load optimization** — compress real images, minify CSS/JS - [ ] **Content review** — Walter to review all copy for accuracy before going live ### Contact Form / Email -- [ ] **PHP hosting setup** — deploy site to 10.10.9.230 (PHP 8.x needed) -- [ ] **SMTP relay configuration** — connect PHP mail() to 10.10.9.31 (auth: none, from: contract@WilliamsPressureWashingServices.com) +- [ ] **SMTP relay configuration** — connect PHP `mail()` to 10.10.9.31 (auth: none, from: `contract@WilliamsPressureWashingServices.com`) - [ ] **Test form end-to-end** — verify email arrives at waltwilliams87@gmail.com -- [ ] **Form spam protection** — add honeypot field or reCAPTCHA (privacy-respecting preferred) +- [ ] **Form spam protection** — add honeypot field or privacy-respecting alternative to reCAPTCHA ### Hosting & Domain - [ ] **Purchase domain** — WilliamsPressureWashingServices.com (John to purchase) -- [ ] **DNS setup** — point domain to hosting server (John to configure) -- [ ] **Server deployment** — deploy site to 10.10.9.230 - - ⚠️ **BLOCKER:** SSH key not authorized on 10.10.9.230 — John needs to add `~/.ssh/id_ed25519.pub` to `~johnny/.ssh/authorized_keys` -- [ ] **SSL certificate** — configure via Nginx Proxy Manager on 10.10.9.230 -- [ ] **PHP configuration** — ensure `mail()` works or install PHPMailer for SMTP +- [ ] **DNS setup** — point domain to 10.10.9.230 (John to configure) +- [ ] **SSL certificate** — configure via Nginx Proxy Manager or Let's Encrypt on 10.10.9.230 +- [ ] **PHP `mail()` config** — verify Postfix on 10.10.9.31 can relay for this server (10.10.9.230) ### Content & Branding - [ ] **Walter's before/after photos** — replace placeholder images with real job photos @@ -64,11 +62,15 @@ - Hours of operation? ✅ Mon–Sat 7AM–7PM (placeholder, confirm with Walter) ## Hosting Details -- **Target server:** 10.10.9.230 (John's hosting machine) -- **SSH:** ⚠️ Key `~/.ssh/id_ed25519` not authorized on 10.10.9.230 — needs `~johnny/.ssh/authorized_keys` update -- **Existing services on 10.10.9.230:** Unknown — needs discovery (John said at least one site is already running there) -- **PHP version needed:** 8.x with `mail()` function or PHPMailer -- **Nginx Proxy Manager:** Should be running on this network for SSL/hostname routing +- **Target server:** 10.10.9.230 (hostname: `dotnet`) +- **SSH:** `sage@10.10.9.230` using `~/.ssh/id_ed25519` ✅ **AUTHORIZED** +- **OS:** Debian 12, bare metal, nginx 1.22.1, PHP 8.2 FPM, Postfix +- **Site files:** `/var/www/williamspw/` +- **Nginx config:** `/etc/nginx/sites-available/WilliamsPressureWashingServices.com` +- **Currently serving:** AssetTrackr.co (proxy to :5000), loperboys.com, WilliamsPressureWashingServices.com +- **Access:** `http://10.10.9.230` (serving correctly, all assets 200 OK) +- **Disk:** 50GB total, ~655MB used — plenty of space +- **Existing services:** AssetTrackr.co, loperboys.com (both nginx static/proxy) ## Analytics Options (Privacy-Respecting)