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