46 lines
1.5 KiB
Bash
46 lines
1.5 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 bash scripts/install-ubuntu.sh"
|
|
exit 1
|
|
fi
|
|
|
|
if ! docker compose version &>/dev/null; then
|
|
echo "Docker Compose plugin не найден."
|
|
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
|
|
|
|
export APP_VERSION=$(git describe --tags --always 2>/dev/null || echo "dev")
|
|
export BUILD_TIME=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
|
|
|
docker compose pull --ignore-buildable 2>/dev/null || true
|
|
docker compose build app
|
|
docker compose up -d --force-recreate
|
|
|
|
echo ""
|
|
echo "Сервисы запущены."
|
|
IP=$(hostname -I | awk '{print $1}')
|
|
echo " Магазин: http://${IP}"
|
|
echo " Админка: http://${IP}/admin/login"
|
|
if [[ -f .env ]]; then
|
|
echo " Логин: $(grep '^ADMIN_EMAIL=' .env | cut -d= -f2-)"
|
|
echo " Пароль: $(grep '^ADMIN_PASSWORD=' .env | cut -d= -f2-)"
|
|
fi
|
|
echo ""
|
|
echo "Логи: docker compose logs -f"
|