32 lines
1.1 KiB
Bash
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"
|