spb/internetpressure
Public
1#!/usr/bin/env bash2# Shared helpers for deploy scripts. Server = BHS64b (ubuntu@51.161.112.66), reached through the laptop's SSH alias.3set -euo pipefail45IP_SERVER="${IP_SERVER:-BHS64b}"6IP_REMOTE_DIR="${IP_REMOTE_DIR:-/opt/internetpressure}"7IP_GATEWAY="${IP_GATEWAY:-BHS64}" # MacLustr Tunnel gateway (Caddy + WireGuard hub)8IP_DOMAIN="${IP_DOMAIN:-www.internetpressure.io}"9IP_WG_IP="${IP_WG_IP:-10.67.0.61}"10REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"1112log() { printf '\033[1;36m▸\033[0m %s\n' "$*"; }13ok() { printf '\033[1;32m✔\033[0m %s\n' "$*"; }14warn() { printf '\033[1;33m!\033[0m %s\n' "$*" >&2; }15die() { printf '\033[1;31m✘\033[0m %s\n' "$*" >&2; exit 1; }1617rssh() { ssh -n -o BatchMode=yes -o ConnectTimeout=15 "$IP_SERVER" "$@"; }1819sync_repo() {20 log "rsync repo → $IP_SERVER:$IP_REMOTE_DIR"21 rssh "sudo mkdir -p $IP_REMOTE_DIR && sudo chown \$(id -un):\$(id -gn) $IP_REMOTE_DIR"22 rsync -az --delete \23 --exclude-from="$REPO_ROOT/deploy/rsync-exclude.txt" \24 "$REPO_ROOT/" "$IP_SERVER:$IP_REMOTE_DIR/"25}2627compose() { rssh "cd $IP_REMOTE_DIR && docker compose -f infra/compose.yml --env-file deploy/.env $*"; }28