#!/bin/bash # User data script for Code-Server EC2 instances # This script installs code-server, oauth2-proxy, and configures them set -e # Update system yum update -y # Install dependencies yum install -y docker git wget curl jq # Start and enable Docker systemctl start docker systemctl enable docker # Add ec2-user to docker group usermod -aG docker ec2-user # Install CloudWatch Agent wget https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm rpm -U ./amazon-cloudwatch-agent.rpm rm -f ./amazon-cloudwatch-agent.rpm # Configure CloudWatch Agent cat > /opt/aws/amazon-cloudwatch-agent/etc/config.json < /opt/code-server/docker-compose.yml < /opt/code-server/allowed-emails.txt < /etc/systemd/system/code-server.service < /etc/cron.d/code-server-logs <> /var/log/code-server.log 2>&1 * * * * * root docker logs oauth2-proxy --tail 100 >> /var/log/oauth2-proxy.log 2>&1 EOF echo "Code-Server installation completed successfully!"