2025-11-10 23:55:41 +00:00
|
|
|
|
# 🚀 Mnemo Cards Web App - Deployment Configuration
|
|
|
|
|
|
|
|
|
|
|
|
## 📁 Структура файлов
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
deploy/
|
|
|
|
|
|
├── config.sh # Централизованная конфигурация
|
|
|
|
|
|
├── deploy.sh # Скрипт деплоя (обычный)
|
|
|
|
|
|
├── nginx.conf # Конфигурация nginx
|
|
|
|
|
|
└── README.md # Этот файл
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## ⚙️ Конфигурация
|
|
|
|
|
|
|
|
|
|
|
|
Все переменные деплоя централизованы в файле `config.sh`. Для изменения настроек отредактируйте этот файл.
|
|
|
|
|
|
|
|
|
|
|
|
### 🔧 Основные переменные
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# Сервер
|
|
|
|
|
|
SERVER_IP="147.45.152.129"
|
|
|
|
|
|
SERVER_USER="root"
|
|
|
|
|
|
DOMAIN="5492281-cf88967.twc1.net"
|
|
|
|
|
|
|
|
|
|
|
|
# Приложение
|
|
|
|
|
|
APP_NAME="mnemo_cards"
|
|
|
|
|
|
WEB_ROOT="/var/www/mnemo_cards"
|
|
|
|
|
|
|
|
|
|
|
|
# API
|
|
|
|
|
|
API_BASE_URL="https://1592725-cf88967.twc1.net:8081"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 🛡️ Безопасность
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# SSL сертификаты
|
|
|
|
|
|
SSL_CERT_PATH="/etc/letsencrypt/live/$DOMAIN/fullchain.pem"
|
|
|
|
|
|
SSL_KEY_PATH="/etc/letsencrypt/live/$DOMAIN/privkey.pem"
|
|
|
|
|
|
|
|
|
|
|
|
# Заголовки безопасности
|
|
|
|
|
|
CSP_POLICY="default-src 'self' http: https: data: blob: 'unsafe-inline' 'unsafe-eval'"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 🚀 Использование
|
|
|
|
|
|
|
|
|
|
|
|
### Обычный деплой (с self-signed SSL)
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
./deploy/deploy.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### SSL деплой (с Let's Encrypt)
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
./setup_ssh_webroot.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 📝 Изменение конфигурации
|
|
|
|
|
|
|
|
|
|
|
|
1. Отредактируйте `deploy/config.sh`
|
|
|
|
|
|
2. Запустите нужный скрипт деплоя
|
|
|
|
|
|
|
|
|
|
|
|
### Примеры изменений
|
|
|
|
|
|
|
|
|
|
|
|
**Смена сервера:**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
export SERVER_IP="your-server-ip"
|
|
|
|
|
|
export SERVER_USER="your-user"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**Смена домена:**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
export DOMAIN="your-domain.com"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**Смена API URL:**
|
|
|
|
|
|
```bash
|
2025-11-16 16:31:22 +00:00
|
|
|
|
export API_BASE_URL="https://your-api-server.com:8443"
|
2025-11-10 23:55:41 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 🔧 Функции конфигурации
|
|
|
|
|
|
|
|
|
|
|
|
Файл `config.sh` содержит полезные функции:
|
|
|
|
|
|
|
|
|
|
|
|
- `print_status()` - информационные сообщения
|
|
|
|
|
|
- `print_warning()` - предупреждения
|
|
|
|
|
|
- `print_error()` - ошибки
|
|
|
|
|
|
- `print_success()` - успешные операции
|
|
|
|
|
|
- `check_project_root()` - проверка директории
|
|
|
|
|
|
- `build_flutter_app()` - сборка приложения
|
|
|
|
|
|
- `create_backup()` - создание бэкапа
|
|
|
|
|
|
- `set_permissions()` - установка прав
|
|
|
|
|
|
- `test_nginx()` - тест nginx
|
|
|
|
|
|
- `restart_nginx()` - перезапуск nginx
|
|
|
|
|
|
|
|
|
|
|
|
## 🎯 Преимущества централизованной конфигурации
|
|
|
|
|
|
|
|
|
|
|
|
1. **Единое место** для всех настроек
|
|
|
|
|
|
2. **Легкое изменение** параметров
|
|
|
|
|
|
3. **Переиспользование** переменных
|
|
|
|
|
|
4. **Консистентность** между скриптами
|
|
|
|
|
|
5. **Удобное сопровождение**
|
|
|
|
|
|
|
|
|
|
|
|
## ⚠️ Важные заметки
|
|
|
|
|
|
|
|
|
|
|
|
- Все скрипты автоматически загружают `config.sh`
|
|
|
|
|
|
- Переменные экспортируются в окружение
|
|
|
|
|
|
- Функции доступны во всех скриптах
|
|
|
|
|
|
- Изменения в `config.sh` применяются ко всем скриптам
|