fix: setup.sh dev auto-creates docker-compose.override.yml + BETTER_AUTH_URL

- Create override with port mappings if missing (was gitignored, absent on server)
- Force-recreate containers to apply new port mappings
- Auto-add BETTER_AUTH_URL to .env if not set
This commit is contained in:
2026-03-24 07:02:19 +03:00
parent 68b6eaeac5
commit a1ef5d13f7

View File

@@ -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