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

120 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Исправление скриптов сборки 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 больше не возникнет при сборке.