2025-11-16 13:54:50 +00:00
|
|
|
|
# Deploy Scripts
|
|
|
|
|
|
|
|
|
|
|
|
Скрипты для развертывания компонентов проекта на сервера.
|
|
|
|
|
|
|
|
|
|
|
|
## Структура
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
deploy/
|
2025-11-19 19:59:53 +00:00
|
|
|
|
├── backend-build_app.sh # Сборка и деплой backend
|
|
|
|
|
|
├── fix-backend-port-conflict.sh # Исправление конфликта портов backend
|
|
|
|
|
|
├── fix-vscode-server.sh # Восстановление VSCode Server после перезагрузки
|
|
|
|
|
|
├── deploy-vscode-nginx.sh # Деплой nginx конфигурации VSCode
|
|
|
|
|
|
├── check-nginx.sh # Проверка статуса nginx
|
|
|
|
|
|
├── test-vscode-final.sh # Тесты доступности VSCode и Forgejo
|
|
|
|
|
|
├── VSCODE_SERVER_SETUP.md # Документация VSCode Server
|
|
|
|
|
|
├── BACKEND_FIX_REPORT_2025-11-19.md # Отчет об исправлении backend
|
|
|
|
|
|
├── BUILD_SCRIPTS_FIXED.md # Исправление скриптов сборки
|
|
|
|
|
|
└── web-app/ # Скрипты деплоя веб приложения
|
|
|
|
|
|
├── config.sh # Конфигурация деплоя
|
|
|
|
|
|
├── deploy.sh # Основной скрипт деплоя
|
|
|
|
|
|
└── nginx.conf # Nginx конфигурация
|
2025-11-16 13:54:50 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Использование
|
|
|
|
|
|
|
|
|
|
|
|
### Backend
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# Сборка и деплой backend на сервер
|
|
|
|
|
|
./backend-build_app.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-11-19 19:59:53 +00:00
|
|
|
|
⚠️ **Важно**: Backend использует порт **8081** (не 8443, который используется VSCode Server)
|
|
|
|
|
|
|
|
|
|
|
|
Если после сборки backend не запускается:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
./fix-backend-port-conflict.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-11-16 13:54:50 +00:00
|
|
|
|
### Web App
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# Переход в директорию web-app
|
|
|
|
|
|
cd web-app
|
|
|
|
|
|
|
|
|
|
|
|
# Деплой веб приложения
|
|
|
|
|
|
./deploy.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-11-19 19:59:53 +00:00
|
|
|
|
### VSCode Server
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# Восстановление VSCode Server после перезагрузки сервера
|
|
|
|
|
|
./fix-vscode-server.sh
|
|
|
|
|
|
|
|
|
|
|
|
# Деплой nginx конфигурации VSCode
|
|
|
|
|
|
./deploy-vscode-nginx.sh
|
|
|
|
|
|
|
|
|
|
|
|
# Тестирование доступности
|
|
|
|
|
|
./test-vscode-final.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**Доступ:**
|
|
|
|
|
|
- URL: https://vscode.mnemo-cards.online/
|
|
|
|
|
|
- Password: AGktOidxrah1KVC0
|
|
|
|
|
|
|
|
|
|
|
|
📖 Подробная документация: [VSCODE_SERVER_SETUP.md](./VSCODE_SERVER_SETUP.md)
|
|
|
|
|
|
|
2025-11-16 13:54:50 +00:00
|
|
|
|
## Конфигурация
|
|
|
|
|
|
|
|
|
|
|
|
### Переменные окружения
|
|
|
|
|
|
|
|
|
|
|
|
Основные настройки в `web-app/config.sh`:
|
|
|
|
|
|
|
|
|
|
|
|
- `SERVER_IP` - IP сервера (147.45.152.129)
|
|
|
|
|
|
- `DOMAIN` - домен веб приложения (memo-cards.online)
|
2025-11-19 20:21:15 +00:00
|
|
|
|
- `API_BASE_URL` - URL API (https://api.mnemo-cards.online) [nginx:443 → backend:8081]
|
2025-11-16 13:54:50 +00:00
|
|
|
|
|
|
|
|
|
|
### SSH доступ
|
|
|
|
|
|
|
|
|
|
|
|
Необходим SSH ключ для доступа к серверу. Ключ должен быть добавлен:
|
|
|
|
|
|
|
|
|
|
|
|
1. В Forgejo secrets: `DEPLOY_SSH_PRIVATE_KEY`
|
|
|
|
|
|
2. На сервере в `~/.ssh/authorized_keys`
|
|
|
|
|
|
|
|
|
|
|
|
## Процесс деплоя
|
|
|
|
|
|
|
|
|
|
|
|
### Backend
|
|
|
|
|
|
1. Компиляция Dart кода в бинарный файл
|
|
|
|
|
|
2. Копирование на сервер
|
|
|
|
|
|
3. Обновление systemd сервиса
|
|
|
|
|
|
4. Перезапуск сервиса
|
|
|
|
|
|
5. Получение SSL сертификата (Let's Encrypt)
|
|
|
|
|
|
|
|
|
|
|
|
### Web App
|
|
|
|
|
|
1. Сборка Flutter Web приложения
|
|
|
|
|
|
2. Копирование файлов на сервер (rsync)
|
|
|
|
|
|
3. Обновление Nginx конфигурации
|
|
|
|
|
|
4. Перезапуск Nginx
|
|
|
|
|
|
5. Получение SSL сертификата (Let's Encrypt)
|
|
|
|
|
|
|
|
|
|
|
|
## SSL сертификаты
|
|
|
|
|
|
|
|
|
|
|
|
Автоматически получаются сертификаты Let's Encrypt для:
|
|
|
|
|
|
- `memo-cards.online` (web app)
|
2025-11-19 20:10:22 +00:00
|
|
|
|
- `api.mnemo-cards.online` (backend API)
|
2025-11-19 19:59:53 +00:00
|
|
|
|
- `vscode.mnemo-cards.online` (VSCode Server)
|
|
|
|
|
|
- `code.mnemo-cards.online` (Forgejo Git Server)
|
2025-11-16 13:54:50 +00:00
|
|
|
|
|
|
|
|
|
|
## Безопасность
|
|
|
|
|
|
|
|
|
|
|
|
- Используется SSH ключ для аутентификации
|
|
|
|
|
|
- Nginx конфигурация включает security headers
|
|
|
|
|
|
- CORS правильно настроен между доменами
|