From 8ea98bdc09401ae27855b7582673412991726307 Mon Sep 17 00:00:00 2001 From: "soroush.asadi" Date: Mon, 22 Jun 2026 18:58:38 +0330 Subject: [PATCH] =?UTF-8?q?fix(seo):=20website/koja=20base=20URL=20default?= =?UTF-8?q?ed=20to=20localhost=20=E2=86=92=20de-indexed=20in=20GSC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Production serves robots.txt Host/Sitemap, sitemap , and every page's canonical + og:url as http://localhost:3010 — so Google rejects all URLs ("URL not allowed") and indexes nothing. Cause: NEXT_PUBLIC_SITE_URL is baked in at BUILD time and was unset in prod, so it fell back to the localhost defaults in the compose files + website Dockerfile. Changes the defaults to the real domains (website → https://meezi.ir, koja → https://koja.meezi.ir) in docker-compose.yml, docker-compose.full.yml, the website Dockerfile ARG, and .env.example. Build-time var → the website image MUST be rebuilt + redeployed (CI does this on push), then purge the WCDN cache and resubmit the sitemap in Search Console. Co-Authored-By: Claude Opus 4.8 --- .env.example | 6 ++++-- docker-compose.full.yml | 4 ++-- docker-compose.yml | 8 ++++---- docker/website/Dockerfile | 2 +- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.env.example b/.env.example index 4f78e6a..793313e 100644 --- a/.env.example +++ b/.env.example @@ -23,8 +23,10 @@ JWT_KEY=change-me-64-char-random-string-use-openssl-rand-hex-32-output NEXT_PUBLIC_API_URL=http://171.22.25.73:5080 NEXT_PUBLIC_ADMIN_API_URL=http://171.22.25.73:5081 -NEXT_PUBLIC_SITE_URL=http://171.22.25.73:3010 -NEXT_PUBLIC_KOJA_URL=http://171.22.25.73:3103 +# Public site origin — MUST be the real domain in prod (used for canonical URLs, +# sitemap, robots, OG tags). A wrong value here de-indexes the whole site in GSC. +NEXT_PUBLIC_SITE_URL=https://meezi.ir +NEXT_PUBLIC_KOJA_URL=https://koja.meezi.ir APP_QR_BASE_URL=http://171.22.25.73:3101 BILLING_DASHBOARD_URL=http://171.22.25.73:3101 diff --git a/docker-compose.full.yml b/docker-compose.full.yml index 8a18528..624fa71 100644 --- a/docker-compose.full.yml +++ b/docker-compose.full.yml @@ -168,7 +168,7 @@ services: dockerfile: docker/website/Dockerfile args: MEEZI_API_URL: http://api:8080 - NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_SITE_URL:-http://localhost:3010} + NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_SITE_URL:-https://meezi.ir} container_name: meezi-website restart: unless-stopped depends_on: @@ -178,7 +178,7 @@ services: PORT: "3000" HOSTNAME: 0.0.0.0 MEEZI_API_URL: http://api:8080 - NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_SITE_URL:-http://localhost:3010} + NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_SITE_URL:-https://meezi.ir} ports: - "${WEBSITE_PORT:-3010}:3000" diff --git a/docker-compose.yml b/docker-compose.yml index 0b3de8d..7741582 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -139,7 +139,7 @@ services: NODE_IMAGE: ${NODE_IMAGE:-mirror.soroushasadi.com/node:20-alpine} NPM_REGISTRY: ${NPM_REGISTRY:-https://mirror.soroushasadi.com/repository/npm-group/} MEEZI_API_URL: http://api:8080 - NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_SITE_URL:-http://localhost:3010} + NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_SITE_URL:-https://meezi.ir} container_name: meezi-website restart: unless-stopped depends_on: @@ -149,7 +149,7 @@ services: PORT: "3000" HOSTNAME: 0.0.0.0 MEEZI_API_URL: http://api:8080 - NEXT_PUBLIC_SITE_URL: "${NEXT_PUBLIC_SITE_URL:-http://localhost:3010}" + NEXT_PUBLIC_SITE_URL: "${NEXT_PUBLIC_SITE_URL:-https://meezi.ir}" ports: - "${WEBSITE_PORT:-3010}:3000" @@ -163,7 +163,7 @@ services: NODE_IMAGE: ${NODE_IMAGE:-mirror.soroushasadi.com/node:20-alpine} NPM_REGISTRY: ${NPM_REGISTRY:-https://mirror.soroushasadi.com/repository/npm-group/} NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:5080} - NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_KOJA_URL:-http://localhost:3103} + NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_KOJA_URL:-https://koja.meezi.ir} container_name: meezi-koja restart: unless-stopped depends_on: @@ -173,7 +173,7 @@ services: PORT: "3000" HOSTNAME: 0.0.0.0 NEXT_PUBLIC_API_URL: "${NEXT_PUBLIC_API_URL:-http://localhost:5080}" - NEXT_PUBLIC_SITE_URL: "${NEXT_PUBLIC_KOJA_URL:-http://localhost:3103}" + NEXT_PUBLIC_SITE_URL: "${NEXT_PUBLIC_KOJA_URL:-https://koja.meezi.ir}" ports: - "${KOJA_PORT:-3103}:3000" diff --git a/docker/website/Dockerfile b/docker/website/Dockerfile index c6593a7..347fc37 100644 --- a/docker/website/Dockerfile +++ b/docker/website/Dockerfile @@ -23,7 +23,7 @@ FROM ${NODE_IMAGE} AS builder WORKDIR /app ARG MEEZI_API_URL=http://api:8080 -ARG NEXT_PUBLIC_SITE_URL=http://localhost:3010 +ARG NEXT_PUBLIC_SITE_URL=https://meezi.ir ENV MEEZI_API_URL=$MEEZI_API_URL ENV NEXT_PUBLIC_SITE_URL=$NEXT_PUBLIC_SITE_URL