From 57e72de0216ddff58b50996ffffd9bc12cfabe24 Mon Sep 17 00:00:00 2001 From: Andrea Manzi Date: Wed, 28 Oct 2026 12:53:45 +0100 Subject: [PATCH] =?UTF-8?q?make=20deploy-vps:=20la=20stessa=20immagine=20g?= =?UTF-8?q?i=C3=A0=20provata=20da=20make=20deploy=20anche=20sul=20VPS=20(V?= =?UTF-8?q?PS=5FHOST,=20VPS=5FDIR=20in=20deploy.local.mk)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GiECdCPptNRwbVzjzHbohi --- Makefile | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 8a4d202..ba6977e 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ CROP ?= COLORS ?= 64 .PHONY: help serve open test browser verify check-public bump voci voci-elenco sfondi sfondi-genera sfondi-confronto background character \ - build up down restart logs ps shell image-size deploy deploy-logs clean distclean + build up down restart logs ps shell image-size deploy deploy-vps deploy-logs clean distclean ## ------------------------------------------------------------ sviluppo @@ -124,6 +124,8 @@ image-size: ## Dimensione dell'immagine # Host e indirizzo stanno in deploy.local.mk, fuori da git, per esempio: # DEPLOY_HOST = root@mio-server # DEPLOY_URL = https://gioco.esempio +# VPS_HOST = mio-vps (facoltativo: una seconda copia, con make deploy-vps) +# VPS_DIR = docker/leggenda-regolo -include deploy.local.mk DEPLOY_DIR ?= /root/leggenda-regolo DEPLOY_TMP := $(shell mktemp -d -u /tmp/regolo-deploy.XXXXXX) @@ -151,6 +153,16 @@ deploy: ## Pubblica l'ultimo commit: test, immagine costruita e provata qui, spe xargs -r -I{} docker image rm -f $(IMAGE):{} >/dev/null @echo "→ $(DEPLOY_URL) ($$(git log -1 --format='%h %s'))" +deploy-vps: ## Spedisce al VPS (VPS_HOST, VPS_DIR in deploy.local.mk) l'immagine dell'ultimo commit già provata da make deploy + @test -n "$(VPS_HOST)" -a -n "$(VPS_DIR)" || { echo "mancano VPS_HOST e VPS_DIR: scrivili in deploy.local.mk"; exit 2; } + @docker image inspect $(IMAGE):$$(git rev-parse --short HEAD) >/dev/null 2>&1 || \ + { echo "manca l'immagine dell'ultimo commit ($$(git rev-parse --short HEAD)): prima make deploy"; exit 1; } + ssh $(VPS_HOST) 'mkdir -p $(VPS_DIR)' + git show HEAD:docker-compose.homeserver.yml | ssh $(VPS_HOST) 'cat > $(VPS_DIR)/docker-compose.yml' + docker save $(IMAGE):$$(git rev-parse --short HEAD) $(IMAGE):latest | gzip | \ + ssh $(VPS_HOST) 'gunzip | docker load -q && cd $(VPS_DIR) && docker compose up -d && docker image prune -f >/dev/null' + @ssh $(VPS_HOST) "docker exec $(IMAGE) grep -o \"VERSION = '[^']*'\" /usr/share/nginx/html/src/version.js" | sed 's/^/→ $(VPS_HOST): /' + deploy-logs: ## Log del container sul server di deploy @test -n "$(DEPLOY_HOST)" || { echo "manca DEPLOY_HOST: scrivilo in deploy.local.mk"; exit 2; } ssh $(DEPLOY_HOST) 'cd $(DEPLOY_DIR) && docker compose logs -f --tail 50'