From 829d415324e6c0e74bc08e077136c9c4a4488f5f Mon Sep 17 00:00:00 2001 From: twotalesanimation <80506065+twotalesanimation@users.noreply.github.com> Date: Mon, 5 Oct 2026 19:59:16 +0200 Subject: [PATCH] Switch domain to twotalesvfx.com Site URL (sitemap, robots, Open Graph), footer and deploy guide now target twotalesvfx.com behind Cloudflare. Co-Authored-By: Claude Opus 5.5 --- DEPLOY.md | 52 ++++++++++++++++++++++++++++++------------- README.md | 2 +- components/Footer.tsx | 2 +- content/site.ts | 4 ++-- 4 files changed, 41 insertions(+), 19 deletions(-) diff --git a/DEPLOY.md b/DEPLOY.md index a658db4..054a341 100644 --- a/DEPLOY.md +++ b/DEPLOY.md @@ -1,4 +1,4 @@ -# Deploying ttvfx.com +# Deploying twotalesvfx.com The site is a fully static export, so there is no Node process to run in production. @@ -9,34 +9,51 @@ npm ci npm run build # outputs ./out ``` -## 2. DNS +Or build on the server straight from git: -`ttvfx.com` does not resolve yet. At the registrar or DNS host (Cloudflare, if -you want it alongside twotalesvfx.com), add: +```bash +git clone https://git.twotalesvfx.com/pinto/ttvfx.git /opt/ttvfx +cd /opt/ttvfx && npm ci && npm run build +``` -| Type | Name | Value | -|------|------|-------| -| A | `@` | `` | -| A | `www`| `` | +## 2. DNS (Cloudflare) + +`twotalesvfx.com` is already on Cloudflare (proxied). Point the apex and `www` +at the VPS and leave the existing `review` and `git` records alone: + +| Type | Name | Value | Proxy | +|------|-------|--------------|---------| +| A | `@` | `` | Proxied | +| A | `www` | `` | Proxied | + +At the time of writing the apex returned Cloudflare **522** (origin unreachable), +so the current `@` record needs updating. + +SSL/TLS mode: **Full (strict)**, using either certbot (below) or a Cloudflare +Origin Certificate installed in nginx. ## 3. Upload +If building locally: + ```bash -rsync -avz --delete out/ user@your-vps:/var/www/ttvfx.com/ +rsync -avz --delete out/ user@your-vps:/var/www/twotalesvfx.com/ ``` +If building on the server, copy or symlink `/opt/ttvfx/out` to `/var/www/twotalesvfx.com`. + ## 4. nginx -`/etc/nginx/sites-available/ttvfx.com`: +`/etc/nginx/sites-available/twotalesvfx.com`: ```nginx server { listen 80; - server_name ttvfx.com www.ttvfx.com; - root /var/www/ttvfx.com; + server_name twotalesvfx.com www.twotalesvfx.com; + root /var/www/twotalesvfx.com; # www -> apex - if ($host = www.ttvfx.com) { return 301 https://ttvfx.com$request_uri; } + if ($host = www.twotalesvfx.com) { return 301 https://twotalesvfx.com$request_uri; } location / { try_files $uri $uri/ $uri.html =404; @@ -47,6 +64,11 @@ server { add_header Cache-Control "public, max-age=31536000, immutable"; } + # Video: allow range requests to be cached + location ~* \.mp4$ { + add_header Cache-Control "public, max-age=604800"; + } + error_page 404 /404.html; gzip on; @@ -55,9 +77,9 @@ server { ``` ```bash -sudo ln -s /etc/nginx/sites-available/ttvfx.com /etc/nginx/sites-enabled/ +sudo ln -s /etc/nginx/sites-available/twotalesvfx.com /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx -sudo certbot --nginx -d ttvfx.com -d www.ttvfx.com # HTTPS via Let's Encrypt +sudo certbot --nginx -d twotalesvfx.com -d www.twotalesvfx.com # HTTPS via Let's Encrypt ``` (For Apache, set `DocumentRoot` to the same folder plus `ErrorDocument 404 /404.html`. diff --git a/README.md b/README.md index dfd7379..8c9fdec 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ttvfx.com +# twotalesvfx.com The marketing site for **Two Tales VFX**: Next.js 16 (App Router), Tailwind CSS v4, exported as static HTML. diff --git a/components/Footer.tsx b/components/Footer.tsx index 8622777..08865c0 100644 --- a/components/Footer.tsx +++ b/components/Footer.tsx @@ -36,7 +36,7 @@ export default function Footer() { © {new Date().getFullYear()} {site.name} - ttvfx.com + {site.url.replace(/^https?:\/\//, "")} ); diff --git a/content/site.ts b/content/site.ts index 9c8ef63..95b4198 100644 --- a/content/site.ts +++ b/content/site.ts @@ -4,13 +4,13 @@ export const site = { name: "Two Tales VFX", shortName: "TTVFX", - url: "https://ttvfx.com", + url: "https://twotalesvfx.com", // TODO: company profile says founded 2014; the logo lockup says "Est. 2015". founded: 2014, tagline: "Invisible work. Unforgettable frames.", description: "Two Tales VFX is a 3D animation and visual effects studio in Pretoria, South Africa, crafting VFX for film, series and commercials for clients across the globe.", - // TODO: switch to an @ttvfx.com address once the domain's mail is set up. + // TODO: switch to an @twotalesvfx.com address if preferred. email: "chris@twotalesanimation.com", location: "Pretoria, South Africa", // Muted background loop for the home hero (cut from the Summertide reel).