mnemo_cards/tools/deploy/BUILD_SCRIPTS_FIXED.md
2025-11-19 22:59:53 +03:00

4.7 KiB
Raw Blame History

Исправление скриптов сборки Backend

Дата: 19 ноября 2025
Проблема: После исправления конфликта портов (8443 → 8081), скрипты сборки backend возвращали порт обратно на 8443

Исправленные файлы

Изменены все скрипты сборки для использования порта 8081 вместо 8443:

1. mnemo_cards_backend/build_app.sh

Все вхождения -p 8443 заменены на -p 8081

Исправленные строки:

  • Строка 25: Dual mode с сертификатами
  • Строка 38: Dual mode если сертификат создан
  • Строка 46: HTTP mode если сертификат не создан

2. tools/deploy/backend/server_build.sh

Все вхождения -p 8443 заменены на -p 8081

Исправленные строки:

  • Строка 36: Dual mode с сертификатами
  • Строка 39: HTTP mode без сертификатов

3. tools/deploy/backend-build_app.sh

Все вхождения -p 8443 заменены на -p 8081

Исправленные строки:

  • Строка 30: HTTPS-only режим
  • Строка 74: HTTPS-only после создания сертификата
  • Строка 83: HTTP режим (fallback)

Причина проблемы

Скрипты сборки backend содержали жестко закодированный порт 8443, который конфликтовал с code-server (VSCode).

Последовательность событий:

  1. Backend исправлен вручную на порт 8081
  2. Запущен скрипт сборки backend
  3. Скрипт перезаписал systemd service с портом 8443
  4. Backend упал с ошибкой "Address already in use"
  5. Исправлены все скрипты сборки
  6. Backend восстановлен на порту 8081

Решение

Автоматическое

Используйте скрипт восстановления:

cd /Users/dmitry/StudioProjects/mnemo_cards/tools/deploy
./fix-backend-port-conflict.sh

Ручное

Если нужно вручную:

ssh root@147.45.152.129

# Исправить порт в systemd service
sudo sed -i 's/-p 8443/-p 8081/g' /etc/systemd/system/mnemo_cards_server.service

# Перезапустить
sudo systemctl daemon-reload
sudo systemctl restart mnemo_cards_server

Проверка

После сборки backend проверьте, что используется правильный порт:

# Проверка systemd service
ssh root@147.45.152.129 'cat /etc/systemd/system/mnemo_cards_server.service | grep ExecStart'
# Должно быть: -p 8081

# Проверка порта
ssh root@147.45.152.129 'ss -tuln | grep 8081'
# Должно показать: 0.0.0.0:8081

# Проверка статуса
ssh root@147.45.152.129 'systemctl status mnemo_cards_server'
# Должно быть: Active: active (running)

Распределение портов

Сервис Порт Адрес Назначение
Backend API 8081 0.0.0.0 HTTP API (SSL в nginx)
code-server 8443 127.0.0.1 VSCode Server
Forgejo 3000 127.0.0.1 Git Server
nginx 443 0.0.0.0 HTTPS Proxy

Текущий статус

🟢 ВСЕ ИСПРАВЛЕНО

  • Скрипты сборки используют порт 8081
  • Backend работает на порту 8081
  • code-server работает на порту 8443
  • Конфликт портов устранен
  • Все сервисы работают стабильно

Важно для будущего

⚠️ При добавлении новых скриптов сборки:

  • Всегда используйте порт 8081 для backend
  • Порт 8443 зарезервирован для code-server
  • Документируйте используемые порты

Связанные документы


Вывод: Все скрипты сборки backend теперь используют правильный порт 8081. Конфликт с VSCode больше не возникнет при сборке.