diff --git a/services/telemt/deployer.sh b/services/telemt/deployer.sh index cf33446..734399c 100755 --- a/services/telemt/deployer.sh +++ b/services/telemt/deployer.sh @@ -3,7 +3,7 @@ set -Eeuo pipefail # В tls_domain указываем на что фейкуем. NODES=( - #remn-fin + remn-fin #remn-sweden #remn-nl-02 #remn-msk @@ -90,19 +90,29 @@ DOCKER_COMPOSE='services: for node in "${NODES[@]}"; do echo "=== Installing telemt on ${node} ===" - # Generate unique secret per node + # Создаем секрет SECRET=$(openssl rand -hex 16) FINAL_CONFIG="${CONFIG_TOML/SECRET_PLACEHOLDER/main = \"${SECRET}\"}" + # Костыль чтобы в output дать внешний IP, а не IP docker подсети + PUBLIC_IP=$(ssh "$node" "ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'") + if ssh "$node" "sudo mkdir -p ${REMOTE_DIR}"; then #config.toml and docker-compose.yml echo "$FINAL_CONFIG" | ssh "$node" "sudo tee ${REMOTE_DIR}/config.toml > /dev/null" echo "$DOCKER_COMPOSE" | ssh "$node" "sudo tee ${REMOTE_DIR}/docker-compose.yml > /dev/null" if ssh "$node" "cd ${REMOTE_DIR} && sudo docker compose pull && sudo docker compose up -d"; then + # Крафтим линку tg:// URL manually + SECRET_HEX="ee${SECRET}" + TLS_DOMAIN_HEX=$(echo -n "max.ru" | xxd -p) + FULL_SECRET="${SECRET_HEX}${TLS_DOMAIN_HEX}" + echo "=== ${node}: OK ===" - echo " Secret for ${node}: ${SECRET}" - echo " Proxy port: 8443" + echo " Node IP : ${PUBLIC_IP}" + echo " Port : 8443" + echo " Secret : ${FULL_SECRET}" + echo " MTProto : tg://proxy?server=${PUBLIC_IP}&port=8443&secret=${FULL_SECRET}" else echo "=== ${node}: FAILED (docker compose) ===" fi