mnemo_cards/tools/deploy
2025-11-16 17:05:47 +03:00
..
web-app f 2025-11-16 17:05:47 +03:00
backend-build_app.sh stuff 2025-11-16 16:54:50 +03:00
README.md f 2025-11-16 17:05:47 +03:00

Deploy Scripts

Скрипты для развертывания компонентов проекта на сервера.

Структура

deploy/
├── backend-build_app.sh    # Сборка и деплой backend
└── web-app/                # Скрипты деплоя веб приложения
    ├── config.sh          # Конфигурация деплоя
    ├── deploy.sh          # Основной скрипт деплоя
    └── nginx.conf         # Nginx конфигурация

Использование

Backend

# Сборка и деплой backend на сервер
./backend-build_app.sh

Web App

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