From 287c4b5372d9d0d4825aa38be05fc6b540f65766 Mon Sep 17 00:00:00 2001 From: AdrianoDev Date: Wed, 29 Apr 2026 21:25:38 +0200 Subject: [PATCH] chore: rimuovi deploy.sh e cache registry buildx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - scripts/deploy.sh eliminato (sostituito da deploy-noclone.sh) - build-push.sh: rimossa cache-from/cache-to registry (cache buildx locale del laptop sufficiente, niente più image buildcache:* sul registry Gitea) - doc cleanup riferimenti orfani Co-Authored-By: Claude Opus 4.7 (1M context) --- DEPLOYMENT.md | 5 +- scripts/build-push.sh | 3 - scripts/deploy-noclone.sh | 7 +- scripts/deploy.sh | 171 -------------------------------------- 4 files changed, 7 insertions(+), 179 deletions(-) delete mode 100755 scripts/deploy.sh diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md index 625fee9..cbc9437 100644 --- a/DEPLOYMENT.md +++ b/DEPLOYMENT.md @@ -45,8 +45,9 @@ export GITEA_USER=adriano Lo script: - Fa `docker login git.tielogic.xyz`. -- Builda con `docker buildx build --push` (cache via registry stesso, - `buildcache:` per ognuna → build successivi 5-10× più veloci). +- Builda con `docker buildx build --push` (cache buildx locale del + laptop, niente cache registry: build successivi rapidi senza pesare + sul registry). - Tagga `:latest` + `:sha-`. - Per le mcp-* passa `BASE_IMAGE`/`BASE_TAG` come build-arg in modo da ereditare dall'image `base` appena pushata. diff --git a/scripts/build-push.sh b/scripts/build-push.sh index 0f0f0b3..ff0771b 100755 --- a/scripts/build-push.sh +++ b/scripts/build-push.sh @@ -56,15 +56,12 @@ build_one() { local tag_latest="$IMAGE_PREFIX/$name:latest" local tag_sha="$IMAGE_PREFIX/$name:sha-$SHA" - local cache_ref="$IMAGE_PREFIX/buildcache:$name" echo "=== [$name] build & push ===" local args=(buildx build --push -f "$file" -t "$tag_latest" -t "$tag_sha" - --cache-from "type=registry,ref=$cache_ref" - --cache-to "type=registry,ref=$cache_ref,mode=max" ) if [[ "$name" == mcp-* ]]; then args+=(--build-arg "BASE_IMAGE=$IMAGE_PREFIX/base" diff --git a/scripts/deploy-noclone.sh b/scripts/deploy-noclone.sh index 2082c2b..e7d6759 100755 --- a/scripts/deploy-noclone.sh +++ b/scripts/deploy-noclone.sh @@ -1,9 +1,10 @@ #!/usr/bin/env bash -# Cerbero_mcp — deploy script (no-clone) per VPS produzione. +# Cerbero_mcp — deploy script per VPS produzione. # -# Variante di deploy.sh che NON clona il repo; scarica solo i file +# Sul VPS NON viene clonato il repo: lo script scarica solo i file # strettamente necessari al runtime (compose, Caddyfile, public assets) -# via raw HTTP da Gitea. Image pre-built dal registry come deploy.sh. +# via raw HTTP da Gitea. Le image vengono pullate pre-built dal registry +# Gitea (buildate dal laptop dev con scripts/build-push.sh). # # Pre-requisiti sul VPS (NON gestiti da questo script): # 1. Docker Engine ≥ 24 + plugin docker compose installati. diff --git a/scripts/deploy.sh b/scripts/deploy.sh deleted file mode 100755 index eb16e35..0000000 --- a/scripts/deploy.sh +++ /dev/null @@ -1,171 +0,0 @@ -#!/usr/bin/env bash -# Cerbero_mcp — deploy script per VPS produzione. -# -# Pre-requisiti sul VPS (NON gestiti da questo script): -# 1. Docker Engine ≥ 24 + plugin docker compose installati. -# 2. DNS A record `cerbero-mcp.tielogic.xyz` → IP del VPS. -# 3. Porte 80 e 443 aperte sul firewall (per ACME + traffico HTTPS). -# 4. PAT Gitea con scope `read:package`, salvato in env `$GITEA_PAT`. -# 5. Username Gitea in env `$GITEA_USER` (default: adriano). -# 6. Secret JSON exchange + token bearer disponibili in $SECRETS_SRC -# (default: ~/cerbero-secrets/), che lo script copierà in -# $DEPLOY_DIR/secrets/ con permessi 600. -# -# Idempotente: rieseguibile per aggiornamenti. - -set -euo pipefail - -DEPLOY_DIR="${DEPLOY_DIR:-/opt/cerbero-mcp}" -SECRETS_SRC="${SECRETS_SRC:-$HOME/cerbero-secrets}" -GITEA_USER="${GITEA_USER:-adriano}" -GITEA_REPO_URL="${GITEA_REPO_URL:-ssh://git@git.tielogic.xyz:222/Adriano/Cerbero-mcp.git}" -REGISTRY="${REGISTRY:-git.tielogic.xyz}" -DOMAIN="${DOMAIN:-cerbero-mcp.tielogic.xyz}" -AUDIT_LOG_DIR="${AUDIT_LOG_DIR:-/var/log/cerbero-mcp}" - -echo "=== Cerbero_mcp deploy → $DEPLOY_DIR (domain $DOMAIN) ===" - -# ────────────────────────────────────────────────────────────── -# 1. Verifica pre-requisiti -# ────────────────────────────────────────────────────────────── -command -v docker >/dev/null || { echo "FATAL: docker non installato"; exit 1; } -docker compose version >/dev/null || { echo "FATAL: docker compose plugin assente"; exit 1; } - -if [ -z "${GITEA_PAT:-}" ]; then - echo "FATAL: env GITEA_PAT non settata. Export del PAT con scope read:package prima." - exit 1 -fi - -if [ ! -d "$SECRETS_SRC" ]; then - echo "FATAL: secrets src dir $SECRETS_SRC non esiste." - echo " Atteso contenere: deribit.json bybit.json hyperliquid.json alpaca.json" - echo " macro.json sentiment.json core.token observer.token" - exit 1 -fi - -# Check DNS resolution (warning only, non blocca) -ip_resolved=$(getent hosts "$DOMAIN" | awk '{print $1}' | head -1 || true) -if [ -z "$ip_resolved" ]; then - echo "WARN: $DOMAIN non risolve via DNS — TLS Let's Encrypt fallirà finché DNS non propaga." -else - echo "DNS $DOMAIN → $ip_resolved" -fi - -# ────────────────────────────────────────────────────────────── -# 2. Login al container registry -# ────────────────────────────────────────────────────────────── -echo "=== docker login $REGISTRY ===" -echo "$GITEA_PAT" | docker login "$REGISTRY" -u "$GITEA_USER" --password-stdin - -# ────────────────────────────────────────────────────────────── -# 3. Setup dir + clone/pull repo -# ────────────────────────────────────────────────────────────── -sudo mkdir -p "$DEPLOY_DIR" -sudo chown "$USER:$USER" "$DEPLOY_DIR" - -if [ -d "$DEPLOY_DIR/.git" ]; then - echo "=== Aggiornamento repo $DEPLOY_DIR ===" - git -C "$DEPLOY_DIR" pull --ff-only -else - echo "=== Clone repo $GITEA_REPO_URL → $DEPLOY_DIR ===" - git clone "$GITEA_REPO_URL" "$DEPLOY_DIR" -fi - -cd "$DEPLOY_DIR" - -# ────────────────────────────────────────────────────────────── -# 4. Copia secrets con permessi 600 -# ────────────────────────────────────────────────────────────── -mkdir -p secrets -echo "=== Copia secrets da $SECRETS_SRC ===" -for f in deribit.json bybit.json hyperliquid.json alpaca.json macro.json sentiment.json core.token observer.token; do - if [ -f "$SECRETS_SRC/$f" ]; then - cp "$SECRETS_SRC/$f" "secrets/$f" - chmod 600 "secrets/$f" - echo " ok: secrets/$f" - else - echo " WARN: $SECRETS_SRC/$f assente — il servizio relativo fallirà al boot." - fi -done - -# ────────────────────────────────────────────────────────────── -# 5. Crea/aggiorna .env (preserva esistente) -# ────────────────────────────────────────────────────────────── -if [ ! -f .env ]; then - echo "=== Creazione .env iniziale (testnet di default) ===" - cat > .env <" -echo " Audit: tail -f $AUDIT_LOG_DIR/*.audit.jsonl" -echo " Restart: docker compose ${COMPOSE_FILES[*]} --env-file .env restart " -echo " Stop: docker compose ${COMPOSE_FILES[*]} --env-file .env down"