#!/usr/bin/env bash # Redeploy Ledgerline on the server: pull the latest code and (re)start the # stack behind Traefik. Run from your own machine: # # ./deploy.sh # # Override the target with env vars, e.g. DEPLOY_HOST=other ./deploy.sh set -euo pipefail DEPLOY_HOST="${DEPLOY_HOST:-czy}" DEPLOY_DIR="${DEPLOY_DIR:-/opt/apps/LedgerLine}" # Always both files: the base file alone would publish every service port. COMPOSE="docker compose -f docker-compose.yml -f docker-compose.traefik.yml" # The server pulls from the remote, so unpushed commits would not be deployed. if [ -n "$(git log '@{u}..HEAD' --oneline 2>/dev/null)" ]; then echo "warning: local commits are not pushed; the server will not see them" >&2 fi ssh "$DEPLOY_HOST" "cd '$DEPLOY_DIR' && git pull --ff-only && $COMPOSE up -d --build && $COMPOSE ps"