mnemo_cards/tools/deploy/README.md
2025-11-16 16:54:50 +03:00

79 lines
2.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
└── web-app/ # Скрипты деплоя веб приложения
├── config.sh # Конфигурация деплоя
├── deploy.sh # Основной скрипт деплоя
├── nginx.conf # Nginx конфигурация
└── setup-*.sh # Дополнительные setup скрипты
```
## Использование
### Backend
```bash
# Сборка и деплой backend на сервер
./backend-build_app.sh
```
### Web App
```bash
# Переход в директорию web-app
cd web-app
# Деплой веб приложения
./deploy.sh
```
## Конфигурация
### Переменные окружения
Основные настройки в `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)
## Безопасность
- Используется SSH ключ для аутентификации
- Nginx конфигурация включает security headers
- CORS правильно настроен между доменами