Files
iptv-manager-service/scripts/deploy.sh
Stefano 5698e7f26b
All checks were successful
AWS Deploy on Push / build (push) Successful in 4m14s
Moved ssh public key to an environment variable
2025-05-20 15:51:34 -05:00

37 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# Load environment variables from .env file if it exists
if [ -f ${PWD}/.env ]; then
# Use set -a to automatically export all variables
set -a
source ${PWD}/.env
set +a
fi
# Check if required environment variables are set
if [ -z "$FREEDNS_User" ] || [ -z "$FREEDNS_Password" ] || [ -z "$DOMAIN_NAME" ] || [ -z "$SSH_PUBLIC_KEY" ]; then
echo "Error: FREEDNS_User, FREEDNS_Password, DOMAIN_NAME, and SSH_PUBLIC_KEY must be set as environment variables or in a .env file."
exit 1
fi
# Deploy infrastructure
cdk deploy --app="python3 ${PWD}/app.py"
# Update application on running instances
INSTANCE_IDS=$(aws ec2 describe-instances \
--filters "Name=tag:Name,Values=IptvUpdater/IptvUpdaterInstance" \
"Name=instance-state-name,Values=running" \
--query "Reservations[].Instances[].InstanceId" \
--output text)
for INSTANCE_ID in $INSTANCE_IDS; do
echo "Updating application on instance: $INSTANCE_ID"
aws ssm send-command \
--instance-ids "$INSTANCE_ID" \
--document-name "AWS-RunShellScript" \
--parameters '{"commands":["cd /home/ec2-user/iptv-updater-aws && git pull && pip3 install -r requirements.txt && sudo systemctl restart iptv-updater"]}' \
--no-cli-pager \
--no-paginate
done
echo "Deployment and instance update complete"