From 4eb9c82b72700facc1e8b2186139fccebf99e92f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9=20=D0=9C=D0=B0?= =?UTF-8?q?=D0=BC=D0=B5=D0=B4=D0=BE=D0=B2?= Date: Wed, 10 Jun 2026 17:13:44 +0300 Subject: [PATCH] commit 6 --- install.sh | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/install.sh b/install.sh index e1a5b23..e28ba73 100644 --- a/install.sh +++ b/install.sh @@ -44,7 +44,7 @@ info "Detected: ${OS} ($(uname -m))" install_docker() { step "1/8 Installing Docker" if command -v docker &>/dev/null; then - info "Docker already installed ($(docker --version))" + info "Docker already installed ($($SUDO docker --version 2>/dev/null || docker --version))" else warn "Docker not found — installing..." if command -v apt-get &>/dev/null; then @@ -61,20 +61,20 @@ install_docker() { fi # Ensure Docker daemon is running - if ! docker info &>/dev/null; then + if ! $SUDO docker info &>/dev/null; then warn "Starting Docker daemon..." $SUDO systemctl enable --now docker 2>/dev/null || $SUDO dockerd &>/dev/null & sleep 3 fi info "Docker daemon is running" - if ! docker compose version &>/dev/null; then + if ! $SUDO docker compose version &>/dev/null; then warn "Docker Compose not found — installing plugin..." $SUDO mkdir -p /usr/local/lib/docker/cli-plugins $SUDO curl -fsSL "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/lib/docker/cli-plugins/docker-compose $SUDO chmod +x /usr/local/lib/docker/cli-plugins/docker-compose fi - info "Docker Compose: $(docker compose version 2>&1)" + info "Docker Compose: $($SUDO docker compose version 2>&1)" } # ─── 2. Node.js ───────────────────────────────────────────────── @@ -161,7 +161,10 @@ set -a; source .env; set +a # ─── 6. Docker infrastructure ──────────────────────────────────── step "5/8 Starting infrastructure (PostgreSQL, Redis, RabbitMQ)" -$SUDO docker compose up -d 2>&1 +if ! $SUDO docker compose up -d; then + $SUDO docker compose logs 2>/dev/null | tail -20 + error "Docker containers failed to start. Check '${INSTALL_DIR}/docker-compose.yml' and run '${SUDO}docker compose logs' manually." +fi info "Waiting for PostgreSQL..." for i in $(seq 1 30); do @@ -169,7 +172,11 @@ for i in $(seq 1 30); do info "PostgreSQL is ready" break fi - [ "$i" -eq 30 ] && error "PostgreSQL did not start in time. Check: $SUDO docker compose logs postgres" + if [ "$i" -eq 30 ]; then + warn "PostgreSQL did not become ready — showing last logs:" + $SUDO docker compose logs --tail=20 postgres 2>/dev/null || true + error "PostgreSQL did not start in time. Fix the issue and re-run the script." + fi sleep 2 done @@ -179,30 +186,32 @@ for i in $(seq 1 15); do info "Redis is ready" break fi - [ "$i" -eq 15 ] && warn "Redis may not be ready yet, continuing..." + if [ "$i" -eq 15 ]; then + warn "Redis may not be ready yet, continuing..." + fi sleep 2 done # ─── 7. Dependencies & Prisma ──────────────────────────────────── step "6/8 Installing dependencies" -npm ci --no-audit --no-fund 2>&1 | tail -1 +npm ci --no-audit --no-fund || error "'npm ci' failed. Check network / ${INSTALL_DIR}/package-lock.json" info "npm dependencies installed" -npx prisma generate 2>&1 | tail -1 +npx prisma generate || error "'prisma generate' failed. Check Prisma schema." info "Prisma client generated" export DATABASE_URL -npx prisma db push --skip-generate 2>&1 +npx prisma db push --skip-generate || error "'prisma db push' failed. Is PostgreSQL running? Check connection details in ${INSTALL_DIR}/.env" info "Database schema applied" # ─── 8. Seed ───────────────────────────────────────────────────── step "7/8 Seeding database" -npx ts-node -P tsconfig.json prisma/seed.ts 2>&1 +npx ts-node -P tsconfig.json prisma/seed.ts || error "Seed failed. Check database connection." info "Seed data created" # ─── 9. Build & Start ──────────────────────────────────────────── step "8/8 Building and starting SSO Service" -npm run build 2>&1 | tail -3 +npm run build || error "'npm run build' failed. Check for TypeScript errors above." info "Application built" if command -v pm2 &>/dev/null; then