#!/bin/bash

NOMECONTAINER="kasm"

docker_repo="lscr.io/linuxserver/kasm:latest"
imagem="kasm"

CustmN2="local_ip"
CustmN3="servidor_dns"
CustmN4="dhub_usr"
CustmN5="dhub_pass"
CustmN6="ssl_port"
CustmN7=""
CustmN8=""
CustmN9=""
CustmN10=""

VALUE2="0.0.0.0"
VALUE3="8.8.4.4"
VALUE4="admin"
VALUE5="abc123"
VALUE6="443"
VALUE7=""
VALUE8=""
VALUE9=""
VALUE10=""

export NOMECONTAINER docker_repo imagem
export CustmN2 CustmN3 CustmN4 CustmN5 CustmN6 CustmN7 CustmN8 CustmN9 CustmN10
export VALUE2 VALUE3 VALUE4 VALUE5 VALUE6 VALUE7 VALUE8 VALUE9 VALUE10

source /root/.index.sh

if [ -f /tmp/common-functions.sh ]; then
  source /tmp/common-functions.sh
else
  echo "ERRO: common-functions.sh não encontrado!"
  exit 1
fi

function set_mkdir {
  sudo mkdir -p /srv/containers/"$NOMECONTAINER"/{data,profiles}
:; }

function docker_create {
  local ip_regex="^([0-9]{1,3}\.){3}[0-9]{1,3}$"

  # Se NAO for numerico, execute como host!
  if [[ ! "$VALUE2" =~ $ip_regex ]]; then

    docker run -d --privileged --security-opt apparmor=rootlesskit --name="$NOMECONTAINER" --hostname="$NOMECONTAINER" \
    --network host \
    --no-healthcheck --restart=unless-stopped -v /etc/localtime:/etc/localtime:ro \
    --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 \
    -e DOCKER_HUB_USERNAME=$VALUE4 \
    -e DOCKER_HUB_PASSWORD=$VALUE5 \
    -e DOCKER_MTU=1500 \
    -e KASM_PORT=$VALUE6 \
    -p 3000:3000 -p $VALUE6:$VALUE6 \
    -v /srv/containers/"$NOMECONTAINER"/data:/opt \
    -v /srv/containers/"$NOMECONTAINER"/profiles:/profiles \
    -v /dev/input:/dev/input \
    -v /run/udev/data:/run/udev/data \
    "$docker_repo"
    
    return
  fi

  docker run -d --privileged --security-opt apparmor=rootlesskit --name="$NOMECONTAINER" --hostname="$NOMECONTAINER" \
  --network macvlan --ip="$VALUE2" --dns="$VALUE3" \
  --no-healthcheck --restart=unless-stopped -v /etc/localtime:/etc/localtime:ro \
  --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 \
  -e KASM_PORT=443 \
  -e DOCKER_HUB_USERNAME=USER \
  -e DOCKER_HUB_PASSWORD=PASS \
  -e DOCKER_MTU=1500 \
  -v /srv/containers/"$NOMECONTAINER"/data:/opt \
  -v /srv/containers/"$NOMECONTAINER"/profiles:/profiles \
  -v /dev/input:/dev/input \
  -v /run/udev/data:/run/udev/data \
  "$docker_repo"
}

function docker_extras {
echo ""
echo "Access the installation wizard at https://$VALUE2:3000 and follow the instructions there."
echo "Once setup is complete access https://$VALUE2:443 and login with the credentials you entered during setup."
echo "The default users are: admin@kasm.local and user@kasm.local"
sleep 5
:; }

execute_main

exit 0
