flutter-vienna-hackathon-25/wien_talks_server/deploy/aws/scripts/install_dependencies
2025-08-17 11:57:58 +02:00

47 lines
1.3 KiB
Bash

#!/bin/bash
set -e # Exit on any error
# Variables for configuration
DART_VERSION=3.5.1
USERNAME=ec2-user
WORKDIR=/home/$USERNAME
DART_INSTALL_DIR="/usr/lib/dart$DART_VERSION"
# Uncomment the following lines if migrating from an older serverpod CLI version
# if [ -f "/etc/profile.d/script.sh" ]; then
# sudo rm /etc/profile.d/script.sh
# fi
# Install the specified Dart version if not already installed
if [ ! -d "$DART_INSTALL_DIR" ]; then
echo "Installing Dart $DART_VERSION..."
wget -q https://storage.googleapis.com/dart-archive/channels/stable/release/$DART_VERSION/sdk/dartsdk-linux-x64-release.zip -P /tmp
cd /tmp || exit
unzip -q dartsdk-linux-x64-release.zip
sudo mv dart-sdk/ "$DART_INSTALL_DIR"
sudo chmod -R 755 "$DART_INSTALL_DIR"
rm -rf dartsdk-linux-x64-release.zip
fi
# Make symlink for Dart binaries
sudo ln -sf "$DART_INSTALL_DIR/bin/dart" /usr/local/bin/dart
# Write the systemd unit file
cat > /lib/systemd/system/serverpod.service << EOF
[Unit]
Description=Serverpod server
After=network.target
Wants=network-online.target
[Service]
User=$USERNAME
WorkingDirectory=$WORKDIR
ExecStart=$WORKDIR/serverpod/active/wien_talks_server/deploy/aws/scripts/run_serverpod
Restart=always
[Install]
WantedBy=multi-user.target
EOF
# Reload systemd configuration
systemctl daemon-reload