diff --git a/DEPLOY.md b/DEPLOY.md index d128461..68007f2 100755 --- a/DEPLOY.md +++ b/DEPLOY.md @@ -1,4 +1,4 @@ -# Wild Dragon Site - Deployment Guide +# Wild Dragon Site — Deployment Guide ## Quick Deploy to TrueNAS Docker @@ -10,31 +10,76 @@ SSH into TrueNAS or use Portainer terminal: ```bash cd /mnt/NVME/Docker/wilddragon-site +git pull +docker compose down docker compose up -d --build ``` -The site will be available at `http://10.0.0.25:43036` +The site will be available at `http://10.0.0.25:43036`. -### 3. Set up Nginx Proxy Manager -In your Nginx Proxy Manager (http://10.0.0.25:30020): -- Add a new Proxy Host -- Domain: `wilddragon.net` and `www.wilddragon.net` +> Build can take ~120s on first build because of Next.js compile + image optimization. + +### 3. Set up Nginx Proxy Manager — IMPORTANT FOR SEO + +The canonical hostname is **`wilddragon.net`** (apex, no www). Configure NPM as follows: + +**Proxy host 1 — Apex (serves the site):** +- Domain: `wilddragon.net` - Forward to: `10.0.0.25:43036` -- Enable SSL (Let's Encrypt) +- SSL: Let's Encrypt +- Block Common Exploits: on +- Websockets Support: on + +**Proxy host 2 — www (301 redirects to apex):** +- Domain: `www.wilddragon.net` +- SSL: Let's Encrypt (same cert) +- Use the **Custom locations / Advanced** tab and add: + ``` + return 301 https://wilddragon.net$request_uri; + ``` + +The Next.js app also has a fallback `host=www.wilddragon.net` redirect baked into +`next.config.ts`, but doing it at the proxy is faster and cleaner. + +### 4. Old-build cleanup — IMPORTANT FOR SEO + +Until ~May 2026 the apex was serving an older Babel-in-browser React build +(separate `index.html`, broken nested `` tag, `robots.txt` with literal +`\n` strings, `Disallow: /*.js$`). If any old static files are still in the +NPM webroot or any other Nginx location, **remove them** and ensure the only +upstream is the Next.js container at port 43036. After deploying: + +```bash +# From TrueNAS, sanity-check that nothing else is serving wilddragon.net: +curl -sI https://wilddragon.net/ | grep -i server +curl -s https://wilddragon.net/robots.txt | head -5 +curl -s https://wilddragon.net/sitemap.xml | head -3 +``` + +`robots.txt` should be a few lines of plain text. `sitemap.xml` should be valid +XML with `<urlset>` and one `<url>` per project. If either still has literal +`\n` strings, the old build is still being served. + +### 5. Search Console (post-deploy) + +- Submit `https://wilddragon.net/sitemap.xml` in Google Search Console +- Submit the same in Bing Webmaster Tools +- Add the `verification.google` / `verification.other` values to + `src/app/layout.tsx` once you have the property verification tokens +- Use the URL Inspection tool to request indexing on `/`, `/services`, and the + project pages ## Adding Your Photos ### Leica BTS Photos Drop your photos into `public/images/` with these names: -- `commanders-thumb.jpg` - Washington Commanders project -- `betmgm-thumb.jpg` - BetMGM project -- `cvs-thumb.jpg` - CVS/Aetna project -- `blue-origin-thumb.jpg` - Blue Origin project -- `ubs-thumb.jpg` - UBS project -- `teneo-thumb.jpg` - Teneo project -- `intuit-thumb.jpg` - Intuit XR project +- `commanders-thumb.jpg` — Washington Commanders project +- `betmgm-thumb.jpg` — BetMGM project +- `cvs-thumb.jpg` — CVS/Aetna project +- `ubs-thumb.jpg` — UBS project +- `intuit-thumb.jpg` — Intuit XR project -Recommended: 1200x800px, optimized for web (under 500KB each) +Recommended: 1200x800px, optimized for web (under 500KB each). ### BMG Line Drawings You can add line drawings to individual project pages by placing them in: @@ -46,7 +91,9 @@ All project content lives in a single file: `src/data/projects.ts` To add a new project, copy an existing entry and modify the fields. -Then rebuild: `docker compose up -d --build` +Then rebuild: `docker compose up -d --build`. + +The sitemap and the homepage `Projects` grid pick up new entries automatically. ## Local Development ```bash