From fc6c17b54127732f79432f6c28eac9781aceaf15 Mon Sep 17 00:00:00 2001 From: venus Date: Sun, 13 Sep 2026 01:11:28 -0500 Subject: [PATCH] feat: throw explicit error when SITE_DOMAIN is unset - Throw fatal configuration error in src/_data/site.js if SITE_DOMAIN is missing - Require SITE_DOMAIN in docker-compose.yml without default fallback - Require SITE_DOMAIN ARG in Dockerfile with no default fallback --- Dockerfile | 8 ++++---- docker-compose.yml | 8 ++++---- src/_data/site.js | 12 +++++++++++- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index f1a4b1c..0758b2c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,11 +3,11 @@ FROM node:22-alpine AS builder WORKDIR /app -# Dynamic build arguments for domain & full URL -ARG SITE_URL=https://riverrooks.dev -ARG SITE_DOMAIN=riverrooks.dev -ENV SITE_URL=$SITE_URL +# Dynamic build arguments for domain & full URL (required, no fallback) +ARG SITE_DOMAIN +ARG SITE_URL ENV SITE_DOMAIN=$SITE_DOMAIN +ENV SITE_URL=$SITE_URL # Copy dependency definitions and install COPY package*.json ./ diff --git a/docker-compose.yml b/docker-compose.yml index d0584a5..bb65ac9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,14 +6,14 @@ services: context: . dockerfile: Dockerfile args: - SITE_URL: ${SITE_URL:-https://riverrooks.dev} - SITE_DOMAIN: ${SITE_DOMAIN:-riverrooks.dev} + SITE_DOMAIN: ${SITE_DOMAIN:?Error: SITE_DOMAIN is not set. Please define SITE_DOMAIN in .env} + SITE_URL: ${SITE_URL:-https://${SITE_DOMAIN}} image: river-rooks-blog:latest container_name: river_rooks_web restart: unless-stopped environment: - - SITE_URL=${SITE_URL:-https://riverrooks.dev} - - SITE_DOMAIN=${SITE_DOMAIN:-riverrooks.dev} + - SITE_DOMAIN=${SITE_DOMAIN:?Error: SITE_DOMAIN is not set. Please define SITE_DOMAIN in .env} + - SITE_URL=${SITE_URL:-https://${SITE_DOMAIN}} ports: - "8080:80" healthcheck: diff --git a/src/_data/site.js b/src/_data/site.js index 8f26429..335b7cd 100644 --- a/src/_data/site.js +++ b/src/_data/site.js @@ -21,7 +21,17 @@ try { // Silent fallback } -const siteDomain = process.env.SITE_DOMAIN || "riverrooks.dev"; +const siteDomain = process.env.SITE_DOMAIN; +if (!siteDomain) { + throw new Error( + "\n=======================================================================\n" + + "FATAL CONFIGURATION ERROR: SITE_DOMAIN environment variable is not set.\n" + + "The site domain must be explicitly defined in your .env file or environment.\n" + + "Example in .env:\n" + + " SITE_DOMAIN=riverrooks.dev\n" + + "=======================================================================\n" + ); +} const siteUrl = process.env.SITE_URL || `https://${siteDomain}`; export default {