# 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 правильно настроен между доменами