# Исправление скриптов сборки 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 ## Решение ### Автоматическое Используйте скрипт восстановления: ```bash cd /Users/dmitry/StudioProjects/mnemo_cards/tools/deploy ./fix-backend-port-conflict.sh ``` ### Ручное Если нужно вручную: ```bash 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 проверьте, что используется правильный порт: ```bash # Проверка 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_FIX_REPORT_2025-11-19.md](./BACKEND_FIX_REPORT_2025-11-19.md) - Первичное исправление - [fix-backend-port-conflict.sh](./fix-backend-port-conflict.sh) - Скрипт восстановления - [README.md](./README.md) - Общая документация --- **Вывод**: Все скрипты сборки backend теперь используют правильный порт 8081. Конфликт с VSCode больше не возникнет при сборке.