diff --git a/setup.sh b/setup.sh index 3987373..f2e3be3 100644 --- a/setup.sh +++ b/setup.sh @@ -1325,6 +1325,35 @@ cmd_reset() { cmd_dev() { log_step "Dev Server — обновление и запуск" + # 0. Создать docker-compose.override.yml если нет (проброс портов для dev) + if [[ ! -f docker-compose.override.yml ]]; then + log_info "Создаю docker-compose.override.yml (проброс портов для dev)..." + cat > docker-compose.override.yml <<'OVERRIDE' +# Локальная разработка — без Traefik, прямые порты +# Подхватывается автоматически при `docker compose up` +# Для прода: docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d + +services: + postgres: + ports: + - "5432:5432" + + minio: + ports: + - "9000:9000" + - "9001:9001" + + redis: + ports: + - "6379:6379" + + pgbouncer: + ports: + - "6432:6432" +OVERRIDE + log_ok "docker-compose.override.yml создан" + fi + # 1. Убить старые процессы Next.js + освободить порт 3000 log_step "1/8 — Очистка старых процессов" local killed=0 @@ -1375,7 +1404,8 @@ cmd_dev() { # 5. Контейнеры + ожидание здоровья log_step "5/8 — Контейнеры" - docker compose up -d postgres minio redis pgbouncer 2>&1 | tail -5 + # Пересоздать если порты не проброшены (override изменился) + docker compose up -d --force-recreate postgres minio redis pgbouncer 2>&1 | tail -5 log_ok "Инфра-контейнеры запущены" # Ждём PostgreSQL (макс 30 сек) @@ -1449,14 +1479,10 @@ cmd_dev() { [[ -d ".next" ]] && rm -rf .next log_ok "Кеш очищен" - # Автоопределение LAN IP для auth - local lan_ip - lan_ip=$(hostname -I 2>/dev/null | awk '{print $1}' || true) - if [[ -n "$lan_ip" ]]; then - if ! grep -q "^LAN_HOST=" .env 2>/dev/null; then - echo "LAN_HOST=${lan_ip}" >> .env - log_ok "LAN_HOST=${lan_ip} добавлен в .env" - fi + # Автоопределение BETTER_AUTH_URL (если не задан) + if ! grep -q "^BETTER_AUTH_URL=" .env 2>/dev/null; then + echo "BETTER_AUTH_URL=http://localhost:3000" >> .env + log_ok "BETTER_AUTH_URL=http://localhost:3000 добавлен в .env" fi # Проверка порта 3000