Update deploy flow and asset UI

This commit is contained in:
Mikhail Chusavitin
2026-03-16 16:03:54 +03:00
parent d4f0175ce5
commit dfbd371f8e
14 changed files with 610 additions and 193 deletions

View File

@@ -3,12 +3,16 @@ set -euo pipefail
IMAGE="git.mchus.pro/reanimator/core"
TAG="${1:-latest}"
DEPLOY_DIR="/appdata/reanimator"
DEPLOY_DIR="${DEPLOY_DIR:-/appdata/reanimator}"
DEPLOY_PLATFORM="linux/amd64"
LOCAL_DEPLOY_DIR="$DEPLOY_DIR"
REPO_LOCAL_DEPLOY_DIR="$(cd "$(dirname "$0")" && pwd)/infra/reanimator"
echo "Deploy target:"
echo " 1) local"
echo " 2) remote (SSH)"
read -rp "Choice [1/2]: " choice
echo " 3) push only"
read -rp "Choice [1/2/3]: " choice
case "$choice" in
1)
@@ -18,19 +22,45 @@ case "$choice" in
read -rp "SSH target (login@hostname): " SSH_TARGET
TARGET="ssh"
;;
3)
TARGET="push-only"
;;
*)
echo "Invalid choice" >&2
exit 1
;;
esac
echo "==> Building and pushing $IMAGE:$TAG (linux/amd64)..."
docker buildx build --platform linux/amd64 -t "$IMAGE:$TAG" --push .
echo "==> Building and pushing $IMAGE:$TAG ($DEPLOY_PLATFORM)..."
docker buildx build --platform "$DEPLOY_PLATFORM" -t "$IMAGE:$TAG" --push .
if [ "$TARGET" = "push-only" ]; then
echo "==> Push complete. No deploy requested."
exit 0
fi
if [ "$TARGET" = "local" ]; then
echo "==> Deploying locally..."
docker pull "$IMAGE:$TAG"
cd "$DEPLOY_DIR"
export DOCKER_DEFAULT_PLATFORM="$DEPLOY_PLATFORM"
export REANIMATOR_IMAGE="$IMAGE"
export REANIMATOR_TAG="$TAG"
docker pull --platform "$DEPLOY_PLATFORM" "$IMAGE:$TAG"
if [ ! -d "$LOCAL_DEPLOY_DIR" ] && [ -d "$REPO_LOCAL_DEPLOY_DIR" ]; then
LOCAL_DEPLOY_DIR="$REPO_LOCAL_DEPLOY_DIR"
fi
if [ ! -d "$LOCAL_DEPLOY_DIR" ]; then
echo "Local deploy directory not found: $LOCAL_DEPLOY_DIR" >&2
exit 1
fi
if [ ! -f "$LOCAL_DEPLOY_DIR/reanimator.env" ]; then
echo "Local env file not found: $LOCAL_DEPLOY_DIR/reanimator.env" >&2
if [ -f "$LOCAL_DEPLOY_DIR/reanimator.env.example" ]; then
echo "Create it from: $LOCAL_DEPLOY_DIR/reanimator.env.example" >&2
fi
exit 1
fi
echo "==> Using local deploy dir: $LOCAL_DEPLOY_DIR"
cd "$LOCAL_DEPLOY_DIR"
docker compose pull
docker compose up -d --remove-orphans
echo "-- Status:"
@@ -40,6 +70,8 @@ else
echo "==> Deploying on $SSH_TARGET..."
ssh "$SSH_TARGET" "
set -euo pipefail
export REANIMATOR_IMAGE=$IMAGE
export REANIMATOR_TAG=$TAG
echo '-- Pulling image...'
docker pull $IMAGE:$TAG