Skip to content

Commit

Permalink
Merge branch 'master' into aws_agressive_autoscale_lambda_script
Browse files Browse the repository at this point in the history
  • Loading branch information
mekya authored Oct 30, 2023
2 parents 90118cd + 2af727f commit f208065
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 36 deletions.
3 changes: 3 additions & 0 deletions docker/Dockerfile_Process
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ ARG LicenseKey

ARG BranchName=master

# Set -Xms and -Xmx
# ENV JVM_MEMORY_OPTIONS="-Xms1g -Xmx4g"

#Running update and install makes the builder not to use cache which resolves some updates
RUN apt-get update && apt-get install -y curl wget iproute2 cron logrotate

Expand Down
5 changes: 3 additions & 2 deletions install_ant-media-server.sh
Original file line number Diff line number Diff line change
Expand Up @@ -238,11 +238,12 @@ fi

if [ -z "$ANT_MEDIA_SERVER_ZIP_FILE" ]; then
if [ "$ID" == "ubuntu" ]; then
#Added curl package for the minimal OS installations.
$SUDO apt-get update
$SUDO apt-get install jq -y
$SUDO apt-get install jq curl -y
check
elif [ "$ID" == "centos" ] || [ "$ID" == "almalinux" ] || [ "$ID" == "rocky" ] || [ "$ID" == "rhel" ]; then
$SUDO yum -y install jq
$SUDO yum -y install jq curl
fi
if [ -z "${LICENSE_KEY}" ]; then
echo "Downloading the latest version of Ant Media Server Community Edition."
Expand Down
104 changes: 77 additions & 27 deletions install_turn-server.sh
Original file line number Diff line number Diff line change
@@ -1,32 +1,82 @@
#!/bin/bash
#
# Turn Server Installation Script
#

IP=`curl http://checkip.amazonaws.com`
USERNAME=$(openssl rand -hex 6)
PASSWORD=$(openssl rand -hex 12)

check() {
OUT=$?
if [ $OUT -ne 0 ]; then
echo "There is a problem in installing the turn server. Please send the log of this console to [email protected]"
exit $OUT
fi

# Check if user is running as root
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root."
exit 1
fi

# Function to install Coturn
install_coturn() {
apt-get update
apt-get install -y coturn
truncate -s 0 /etc/turnserver.conf
}

# Function to generate random username
generate_credentials() {
username=$(tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w 8 | head -n 1)
password=$(tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w 12 | head -n 1)
echo "Username: $username"
echo "Password: $password"
echo "lt-cred-mech" >> /etc/turnserver.conf
echo "user=$username:$password" >> /etc/turnserver.conf
}

# Function to configure Coturn for NAT network
configure_nat() {
# Add necessary configuration options for NAT network
echo 'TURNSERVER_ENABLED=1' >> /etc/default/coturn
# Get public IP
public_ip=$(curl -s http://checkip.amazonaws.com)

# Get private IP
private_ip=$(hostname -I | awk '{print $1}')

# Add external IP configuration to turnserver.conf
echo "external-ip=$public_ip/$private_ip" >> /etc/turnserver.conf
echo "realm=$public_ip" >> /etc/turnserver.conf
}

sudo apt-get update && apt-get install coturn -y
check
echo "TURNSERVER_ENABLED=1" > /etc/default/coturn
echo "realm=$IP" >> /etc/turnserver.conf
echo "user=$USERNAME:$PASSWORD" >> /etc/turnserver.conf
sudo systemctl enable coturn && sudo systemctl restart coturn
check
echo ""
echo "Username: $USERNAME"
echo "Password: $PASSWORD"
echo "Turn Server Address: $IP"
echo "Please check this guide to enable the Turn Server: https://antmedia.io/docs/guides/advanced-usage/turn-and-stun-installation/coTURN-quick-installation/#how-to-add-turn-server-to-ant-media-sample-pages"
echo ""
# Function to configure Coturn for public IP
configure_public_ip() {
# Add necessary configuration options for public IP
echo 'TURNSERVER_ENABLED=1' >> /etc/default/coturn

# Get public IP
public_ip=$(curl -s http://checkip.amazonaws.com)

# Add external IP configuration to turnserver.conf
echo "realm=$public_ip" >> /etc/turnserver.conf
}

# Main script

# Prompt user for configuration option
echo "Choose the configuration option:"
echo "1. Behind NAT network (e.g., AWS)"
echo "2. Directly accessible public IP"
read -r -p "Enter your choice (1 or 2): " option

case $option in
1)
install_coturn
generate_credentials
configure_nat
;;
2)
install_coturn
generate_credentials
configure_public_ip
;;
*)
echo "Invalid choice. Exiting."
exit 1
;;
esac

# Start and enable Coturn service
systemctl restart coturn
systemctl enable coturn

echo "Coturn installation and configuration completed."
17 changes: 10 additions & 7 deletions kubernetes/ams-with-turn-server/ams-k8s-coturn.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ spec:
app.kubernetes.io/instance: coturn
app.kubernetes.io/version: 0.0.1
spec:
# hostNetwork: true
hostNetwork: true
containers:
- name: coturn
image: coturn/coturn
Expand All @@ -41,11 +41,14 @@ spec:
hostPort: 3478
protocol: TCP
args:
# - --stun-only
- -v
- --user "{username}:{password}"
- --external-ip="$(detect-external-ip)/$MY_POD_IP"
- --realm="$(detect-external-ip)"
- "-a"
- "-f"
- "--user=username:password"
- "-p"
- "3478"
- "-v"
- "--external-ip=$(detect-external-ip)/$MY_POD_IP"
- "--realm=$(detect-external-ip)"

---

Expand Down Expand Up @@ -73,4 +76,4 @@ spec:
selector:
app.kubernetes.io/name: coturn
app.kubernetes.io/instance: coturn
app.kubernetes.io/version: 0.0.1
app.kubernetes.io/version: 0.0.1

0 comments on commit f208065

Please sign in to comment.