49 lines
1.6 KiB
Bash
49 lines
1.6 KiB
Bash
#!/bin/bash
|
|
|
|
# Script to build backend on the server
|
|
# This script assumes source code is already present (synced via rsync)
|
|
# Usage: ./server_build.sh
|
|
|
|
set -e -v
|
|
|
|
# Go to backend directory
|
|
cd ~/mnemo_cards_backend
|
|
|
|
# Get dependencies and compile
|
|
echo "📦 Getting dependencies..."
|
|
dart pub get
|
|
|
|
echo "🔨 Compiling server..."
|
|
dart compile exe --verbose lib/main.dart -o server_build.exe
|
|
|
|
# Stop service
|
|
echo "🛑 Stopping service..."
|
|
sudo systemctl stop mnemo_cards_server || true
|
|
|
|
# Update service file
|
|
echo "⚙️ Updating service configuration..."
|
|
sudo chmod 777 mnemo_cards_server.service
|
|
sudo cp mnemo_cards_server.service /etc/systemd/system/
|
|
|
|
# Update executable
|
|
echo "🔄 Replacing executable..."
|
|
sudo cp server_build.exe server.exe
|
|
rm server_build.exe
|
|
|
|
# Check certificates and configure mode
|
|
if [ -d "/etc/letsencrypt/live/api.memo-cards.online" ]; then
|
|
echo "✅ Let's Encrypt certificates found. Configuring dual mode..."
|
|
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 "⚠️ No certificates found. Configuring HTTP mode..."
|
|
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
|
|
|
|
# Reload and restart
|
|
echo "🚀 Restarting service..."
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl start mnemo_cards_server
|
|
|
|
# Check status
|
|
sleep 2
|
|
systemctl status mnemo_cards_server --no-pager
|