4 KiB
4 KiB
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
# Сборка и деплой backend на сервер
./backend-build_app.sh
⚠️ Важно: Backend использует порт 8081 (не 8443, который используется VSCode Server)
Если после сборки backend не запускается:
./fix-backend-port-conflict.sh
Web App
# Переход в директорию web-app
cd web-app
# Деплой веб приложения
./deploy.sh
VSCode Server
# Восстановление 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
Конфигурация
Переменные окружения
Основные настройки в web-app/config.sh:
SERVER_IP- IP сервера (147.45.152.129)DOMAIN- домен веб приложения (memo-cards.online)API_BASE_URL- URL API (https://api.mnemo-cards.online) [nginx:443 → backend:8081]
SSH доступ
Необходим SSH ключ для доступа к серверу. Ключ должен быть добавлен:
- В Forgejo secrets:
DEPLOY_SSH_PRIVATE_KEY - На сервере в
~/.ssh/authorized_keys
Процесс деплоя
Backend
- Компиляция Dart кода в бинарный файл
- Копирование на сервер
- Обновление systemd сервиса
- Перезапуск сервиса
- Получение SSL сертификата (Let's Encrypt)
Web App
- Сборка Flutter Web приложения
- Копирование файлов на сервер (rsync)
- Обновление Nginx конфигурации
- Перезапуск Nginx
- Получение SSL сертификата (Let's Encrypt)
SSL сертификаты
Автоматически получаются сертификаты Let's Encrypt для:
memo-cards.online(web app)api.mnemo-cards.online(backend API)vscode.mnemo-cards.online(VSCode Server)code.mnemo-cards.online(Forgejo Git Server)
Безопасность
- Используется SSH ключ для аутентификации
- Nginx конфигурация включает security headers
- CORS правильно настроен между доменами