jmopines/scripts/serve.sh
Jean-Michel Tremblay d70d897470
All checks were successful
Build Website / build (push) Successful in 1s
adding file to get effing date in git
fix dates / git, resume CI/CD.
2026-04-23 16:46:05 -04:00

35 lines
1 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
# Serve the Hugo site locally using Docker.
# Usage: ./scripts/serve.sh
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/../.env"
PORT="${1:-$PORT}"
if [[ ! -d "${SITE_DIR}" ]]; then
echo "[serve] Site directory not found: ${SITE_DIR}"
echo "[serve] Run ./scripts/setup.sh first."
exit 1
fi
echo "[serve] Serving site at http://localhost:${PORT}/"
echo "[serve] Press Ctrl+C to stop."
# Use the prebuilt/pushed Hugo image (hardcoded to the image created by
# scripts/push_hugo_image.sh). This simplifies the serve script and avoids
# local image build logic.
HUGO_GIT_IMAGE="forgejo.jmopines.com/jm/hugo-git:latest"
USE_IMAGE="${HUGO_GIT_IMAGE}"
# Run Hugo server. Mount the repo .git read-only so git-based info is available
# inside the container when `enableGitInfo = true`.
docker run --rm \
-v "${SITE_DIR}:/src" \
-v "${PROJECT_ROOT}/.git:/src/.git:ro" \
-w /src \
-p "${PORT}:1313" \
"${USE_IMAGE}" server \
--bind 0.0.0.0 \
--baseURL "http://localhost:${PORT}/" \
--appendPort=false