# πŸš€ 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="mnemo-cards.online" # ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 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 export API_BASE_URL="https://your-api-server.com:8443" ``` ## πŸ”§ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π€Π°ΠΉΠ» `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` ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠΎ всСм скриптам