diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..1906a0f --- /dev/null +++ b/deploy.sh @@ -0,0 +1,21 @@ +#!/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"