This commit is contained in:
Dmitry 2025-11-16 19:05:20 +03:00
parent bc4dea808c
commit 4f188810a8

View file

@ -2,6 +2,7 @@ set -e -v
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
BACKEND_DIR="$PROJECT_ROOT/mnemo_cards_backend"
cd $PROJECT_ROOT/mnemo_cards_common cd $PROJECT_ROOT/mnemo_cards_common
git pull origin master git pull origin master
@ -11,7 +12,7 @@ cd $PROJECT_ROOT/mnemo_cards_common_backend
git pull origin master git pull origin master
dart pub get dart pub get
cd $PROJECT_ROOT/mnemo_cards_backend cd $BACKEND_DIR
dart pub get && dart compile exe --verbose lib/main.dart -o server_build.exe dart pub get && dart compile exe --verbose lib/main.dart -o server_build.exe
sudo systemctl stop mnemo_cards_server && true sudo systemctl stop mnemo_cards_server && true
@ -25,7 +26,7 @@ rm server_build.exe
if [ -d "/etc/letsencrypt/live/api.memo-cards.online" ] && [ -f "/etc/letsencrypt/live/api.memo-cards.online/fullchain.pem" ]; then if [ -d "/etc/letsencrypt/live/api.memo-cards.online" ] && [ -f "/etc/letsencrypt/live/api.memo-cards.online/fullchain.pem" ]; then
echo "✅ Let's Encrypt сертификаты найдены. Запускаем в двойном режиме (HTTP + HTTPS)" echo "✅ Let's Encrypt сертификаты найдены. Запускаем в двойном режиме (HTTP + HTTPS)"
# Обновляем systemd сервис для двойного режима # Обновляем systemd сервис для двойного режима
sudo sed -i 's|ExecStart=/root/mnemo_cards_backend/server.exe.*|ExecStart=/root/mnemo_cards_backend/server.exe --dual --certs /etc/letsencrypt/live/api.memo-cards.online -a 0.0.0.0 -p 8080|' /etc/systemd/system/mnemo_cards_server.service sudo sed -i 's|ExecStart=$BACKEND_DIR/server.exe.*|ExecStart=$BACKEND_DIR/server.exe --dual --certs /etc/letsencrypt/live/api.memo-cards.online -a 0.0.0.0 -p 8080|' /etc/systemd/system/mnemo_cards_server.service
else else
echo "⚠️ Let's Encrypt сертификаты не найдены или повреждены. Пытаемся создать..." echo "⚠️ Let's Encrypt сертификаты не найдены или повреждены. Пытаемся создать..."
@ -63,7 +64,7 @@ else
echo "✅ Let's Encrypt сертификат успешно создан!" echo "✅ Let's Encrypt сертификат успешно создан!"
echo "🚀 Запускаем в двойном режиме (HTTP + HTTPS)" echo "🚀 Запускаем в двойном режиме (HTTP + HTTPS)"
# Обновляем systemd сервис для двойного режима # Обновляем systemd сервис для двойного режима
sudo sed -i 's|ExecStart=/root/mnemo_cards_backend/server.exe.*|ExecStart=/root/mnemo_cards_backend/server.exe --dual --certs /etc/letsencrypt/live/api.memo-cards.online -a 0.0.0.0 -p 8080|' /etc/systemd/system/mnemo_cards_server.service sudo sed -i 's|ExecStart=$BACKEND_DIR/server.exe.*|ExecStart=$BACKEND_DIR/server.exe --dual --certs /etc/letsencrypt/live/api.memo-cards.online -a 0.0.0.0 -p 8080|' /etc/systemd/system/mnemo_cards_server.service
else else
echo "❌ Не удалось создать Let's Encrypt сертификат. Запускаем в HTTP режиме" echo "❌ Не удалось создать Let's Encrypt сертификат. Запускаем в HTTP режиме"
echo "💡 Возможные причины и решения:" echo "💡 Возможные причины и решения:"
@ -72,7 +73,7 @@ else
echo " - Сертификат уже был получен ранее - проверьте /etc/letsencrypt/live/" echo " - Сертификат уже был получен ранее - проверьте /etc/letsencrypt/live/"
echo " - Используйте webroot режим если есть веб-сервер: certbot certonly --webroot -w /var/www/html -d api.memo-cards.online" echo " - Используйте webroot режим если есть веб-сервер: certbot certonly --webroot -w /var/www/html -d api.memo-cards.online"
# Возвращаем обычный режим # Возвращаем обычный режим
sudo sed -i 's|ExecStart=/root/mnemo_cards_backend/server.exe.*|ExecStart=/root/mnemo_cards_backend/server.exe -a 0.0.0.0 -p 8080|' /etc/systemd/system/mnemo_cards_server.service sudo sed -i 's|ExecStart=$BACKEND_DIR/server.exe.*|ExecStart=$BACKEND_DIR/server.exe -a 0.0.0.0 -p 8080|' /etc/systemd/system/mnemo_cards_server.service
fi fi
# Возвращаем веб-сервера в исходное состояние # Возвращаем веб-сервера в исходное состояние