#!/usr/bin/env bash set -euo pipefail APP_DIR="/opt/iaai_scraper_project" REPO_URL="${1:-}" if [[ -z "${REPO_URL}" ]]; then echo "Usage: ./deploy_vps.sh " exit 1 fi export DEBIAN_FRONTEND=noninteractive apt-get update apt-get install -y --no-install-recommends \ ca-certificates \ curl \ git \ gnupg \ lsb-release install -m 0755 -d /etc/apt/keyrings if [[ ! -f /etc/apt/keyrings/docker.gpg ]]; then curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg fi chmod a+r /etc/apt/keyrings/docker.gpg ARCH="$(dpkg --print-architecture)" CODENAME="$(. /etc/os-release && echo "$VERSION_CODENAME")" echo \ "deb [arch=${ARCH} signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu ${CODENAME} stable" \ > /etc/apt/sources.list.d/docker.list apt-get update apt-get install -y --no-install-recommends \ docker-ce \ docker-ce-cli \ containerd.io \ docker-buildx-plugin \ docker-compose-plugin mkdir -p /opt if [[ -d "${APP_DIR}/.git" ]]; then git -C "${APP_DIR}" fetch --all --prune git -C "${APP_DIR}" reset --hard origin/HEAD else rm -rf "${APP_DIR}" git clone "${REPO_URL}" "${APP_DIR}" fi cd "${APP_DIR}" if [[ ! -f .env ]]; then cp .env.vps.example .env fi docker compose down --remove-orphans || true docker compose up -d --build postgres redis migrate api worker beat docker compose ps