# mcqemu docs — targets follow the warehacking cookie-cutter. SHELL := /usr/bin/env bash .SHELLFLAGS := -eu -o pipefail -c .DEFAULT_GOAL := help .PHONY: help help: ## Show this help @awk 'BEGIN {FS = ":.*##"} /^[a-zA-Z0-9_-]+:.*##/ {printf " \033[36m%-12s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) .PHONY: prod prod: ## Build + run the production docs container (Caddy serves dist/) docker compose up -d --build docs .PHONY: dev dev: ## Run the Astro dev server with HMR (--profile dev) docker compose --profile dev up --build docs-dev .PHONY: down down: ## Stop and remove the docs containers docker compose --profile dev down docker compose down .PHONY: logs logs: ## Tail logs (works for whichever profile is up) docker compose logs -f --tail=100 .PHONY: build build: ## Build the static site without bringing up Caddy (CI gate) docker compose build docs # ---- Production deploy -------------------------------------------------- # # Pulls origin/main on the warehack.ing prod host and rebuilds the docs # container. Agent forwarding (-A) lets the remote git pull use the # operator's key for Gitea, so nothing persistent is provisioned there. # # Use docker-2.supportedsystems.net, not warehack.ing: the latter resolves # to an IPv4 whose port 22 is unreachable from some networks. DEPLOY_HOST ?= warehack-ing@docker-2.supportedsystems.net DEPLOY_PATH ?= ~/mcqemu .PHONY: deploy deploy: ## Pull main + rebuild the docs container on the prod host @echo "==> deploying $(DEPLOY_HOST):$(DEPLOY_PATH)" ssh -A $(DEPLOY_HOST) "cd $(DEPLOY_PATH) && git fetch origin main && git reset --hard origin/main && cd docs-site && make prod" @echo "==> verifying by content (these sites return 200 for every path)" @curl -sS https://mcqemu.warehack.ing/ | grep -oE "