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

114 lines
4 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.

# Deploy Scripts
Скрипты для развертывания компонентов проекта на сервера.
## Структура
```
deploy/
├── 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 конфигурация
```
## Использование
### Backend
```bash
# Сборка и деплой backend на сервер
./backend-build_app.sh
```
⚠️ **Важно**: Backend использует порт **8081** (не 8443, который используется VSCode Server)
Если после сборки backend не запускается:
```bash
./fix-backend-port-conflict.sh
```
### Web App
```bash
# Переход в директорию web-app
cd web-app
# Деплой веб приложения
./deploy.sh
```
### 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)
## Конфигурация
### Переменные окружения
Основные настройки в `web-app/config.sh`:
- `SERVER_IP` - IP сервера (147.45.152.129)
- `DOMAIN` - домен веб приложения (memo-cards.online)
- `API_BASE_URL` - URL API (https://api.memo-cards.online:8081)
### 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)
- `api.memo-cards.online` (backend API)
- `vscode.mnemo-cards.online` (VSCode Server)
- `code.mnemo-cards.online` (Forgejo Git Server)
## Безопасность
- Используется SSH ключ для аутентификации
- Nginx конфигурация включает security headers
- CORS правильно настроен между доменами