55 lines
3 KiB
Bash
55 lines
3 KiB
Bash
|
|
set -e -v
|
|||
|
|
|
|||
|
|
cd ~/mnemo_cards_common
|
|||
|
|
git pull origin master
|
|||
|
|
dart pub get
|
|||
|
|
|
|||
|
|
cd ~/mnemo_cards_common_backend
|
|||
|
|
git pull origin master
|
|||
|
|
dart pub get
|
|||
|
|
|
|||
|
|
cd ~/mnemo_cards_backend
|
|||
|
|
dart pub get && dart compile exe --verbose lib/main.dart -o server_build.exe
|
|||
|
|
|
|||
|
|
sudo systemctl stop mnemo_cards_server && true
|
|||
|
|
sleep 15
|
|||
|
|
sudo chmod 777 mnemo_cards_server.service
|
|||
|
|
sudo cp mnemo_cards_server.service /etc/systemd/system
|
|||
|
|
sudo cp server_build.exe server.exe
|
|||
|
|
rm server_build.exe
|
|||
|
|
|
|||
|
|
# Проверяем наличие Let's Encrypt сертификатов для двойного режима
|
|||
|
|
if [ -d "/etc/letsencrypt/live/api.memo-cards.online" ]; then
|
|||
|
|
echo "✅ Let's Encrypt сертификаты найдены. Запускаем в двойном режиме (HTTP + HTTPS)"
|
|||
|
|
# Обновляем 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 8443|' /etc/systemd/system/mnemo_cards_server.service
|
|||
|
|
else
|
|||
|
|
echo "⚠️ Let's Encrypt сертификаты не найдены. Пытаемся создать..."
|
|||
|
|
|
|||
|
|
# Останавливаем сервер временно для получения сертификата
|
|||
|
|
sudo systemctl stop mnemo_cards_server 2>/dev/null || true
|
|||
|
|
|
|||
|
|
# Пытаемся получить Let's Encrypt сертификат
|
|||
|
|
echo "🔐 Получаем Let's Encrypt сертификат для домена api.memo-cards.online..."
|
|||
|
|
if sudo certbot certonly --standalone -d api.memo-cards.online --non-interactive --agree-tos --email admin@api.memo-cards.online; then
|
|||
|
|
echo "✅ Let's Encrypt сертификат успешно создан!"
|
|||
|
|
echo "🚀 Запускаем в двойном режиме (HTTP + HTTPS)"
|
|||
|
|
# Обновляем 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 8443|' /etc/systemd/system/mnemo_cards_server.service
|
|||
|
|
else
|
|||
|
|
echo "❌ Не удалось создать Let's Encrypt сертификат. Запускаем в HTTP режиме"
|
|||
|
|
echo "💡 Убедитесь, что:"
|
|||
|
|
echo " - Домен api.memo-cards.online указывает на этот сервер"
|
|||
|
|
echo " - Порт 80 доступен извне"
|
|||
|
|
echo " - Firewall разрешает входящие соединения на порт 80"
|
|||
|
|
# Возвращаем обычный режим
|
|||
|
|
sudo sed -i 's|ExecStart=/root/mnemo_cards_backend/server.exe.*|ExecStart=/root/mnemo_cards_backend/server.exe -a 0.0.0.0 -p 8443|' /etc/systemd/system/mnemo_cards_server.service
|
|||
|
|
fi
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
sudo systemctl daemon-reload
|
|||
|
|
sudo systemctl start mnemo_cards_server
|
|||
|
|
journalctl -u mnemo_cards_server --since "1min ago"
|
|||
|
|
|
|||
|
|
|