Files
shop-go/scripts/deploy.sh
T

32 lines
1.1 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "${ROOT_DIR}"
if ! command -v docker &>/dev/null; then
echo "Docker не найден. Сначала: sudo ./scripts/install-ubuntu.sh"
exit 1
fi
if [[ ! -f .env ]]; then
cp .env.example .env
SECRET=$(openssl rand -hex 32)
DB_PASS=$(openssl rand -hex 16)
sed -i "s/your_random_secret_key_here/${SECRET}/" .env
sed -i "s/DB_PASSWORD=shop_secret/DB_PASSWORD=${DB_PASS}/" .env
sed -i "s/ADMIN_PASSWORD=change_me/ADMIN_PASSWORD=$(openssl rand -base64 18 | tr -d '/+=')/" .env
echo "Создан .env с автоматически сгенерированными паролями."
echo "Проверьте ADMIN_EMAIL и DOMAIN перед продакшеном."
fi
docker compose pull --ignore-buildable 2>/dev/null || true
docker compose up --build -d
echo ""
echo "Сервисы запущены."
echo " Магазин: http://$(hostname -I | awk '{print $1}')"
echo " Админка: http://$(hostname -I | awk '{print $1}')/admin/login"
echo ""
echo "Логи: docker compose logs -f"