mnemo_cards/tools/deploy
2026-01-03 16:48:08 +03:00
..
admin fix 2025-12-03 04:22:59 +03:00
backend stuff 2025-11-23 00:14:18 +03:00
generated_configs stiff 2025-11-27 22:58:58 +03:00
web-app tools 2026-01-03 16:48:08 +03:00
backend-build_app.sh s 2025-12-03 04:05:31 +03:00
backend-build_app_webroot.sh oauth 2025-11-27 22:45:45 +03:00
bump-version.sh stuff 2025-11-27 22:24:21 +03:00
check-and-restore-nginx.sh tools 2026-01-03 16:48:08 +03:00
check-disk-space.sh deploy 2025-11-22 23:22:44 +03:00
check-nginx.sh fixes and secure storage 2025-11-23 03:00:32 +03:00
deploy-nginx-configs.sh fixes and secure storage 2025-11-23 03:00:32 +03:00
deploy-vscode-nginx.sh fixes and secure storage 2025-11-23 03:00:32 +03:00
find-code-domain-conflicts.sh tools 2025-11-19 22:32:48 +03:00
fix-backend-port-conflict.sh deploy 2025-11-22 23:05:29 +03:00
fix-code-domain-conflict.sh tools 2025-11-19 22:32:48 +03:00
fix-git-permissions.sh stuff 2025-11-19 21:13:33 +03:00
fix-nginx-duplicates.sh tools 2025-11-19 22:32:48 +03:00
fix-nginx-oom-protection.sh tools 2026-01-03 16:48:08 +03:00
fix-nginx-upload-limit.sh fix 2025-11-21 12:31:34 +03:00
fix-vscode-rate-limit.sh deploy 2025-11-22 23:22:44 +03:00
fix-vscode-server.sh tools 2025-11-19 22:32:48 +03:00
generate-nginx-configs-new.sh stuff 2025-11-23 03:23:22 +03:00
generate-nginx-configs-old.sh stuff 2025-11-23 03:23:22 +03:00
generate-nginx-configs.sh stiff 2025-11-27 22:58:58 +03:00
install-forgejo-runner.sh jq 2025-11-19 22:16:01 +03:00
NGINX_OOM_PROTECTION.md tools 2026-01-03 16:48:08 +03:00
README-bump-version.md f 2025-12-11 00:48:16 +03:00
README.md mnemo 2025-11-20 01:40:56 +03:00
setup-forgejo-actions.sh Fix backend: Register Isar in GetIt, remove broken lib download 2025-11-19 22:03:20 +03:00
test-vscode-final.sh tools 2025-11-19 22:32:48 +03:00
test-vscode-from-server.sh tools 2025-11-19 22:32:48 +03:00
verify-nginx-config.sh deploy fix 2025-11-27 17:44:23 +03:00

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

Доступ:

📖 Подробная документация: VSCODE_SERVER_SETUP.md

Конфигурация

Переменные окружения

Основные настройки в web-app/config.sh:

  • SERVER_IP - IP сервера (147.45.152.129)
  • DOMAIN - домен веб приложения (mnemo-cards.online)
  • API_BASE_URL - URL API (https://api.mnemo-cards.online) [nginx:443 → backend: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 для:

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