From 1e7dca5823c71602123de590a9596f8e07454a32 Mon Sep 17 00:00:00 2001 From: HLNikNiky <56186901+Sesdear@users.noreply.github.com> Date: Tue, 14 Apr 2026 01:23:47 +0700 Subject: [PATCH] =?UTF-8?q?=D0=91=D1=8B=D1=81=D1=82=D1=80=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=20=D0=BA=D0=BB=D0=B8=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=B0=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20docker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавил скрипт аналогичный обычному cnc.sh для запуска клиента из под докера --- script/cnc_docker.sh | 129 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 script/cnc_docker.sh diff --git a/script/cnc_docker.sh b/script/cnc_docker.sh new file mode 100644 index 0000000..d6ba046 --- /dev/null +++ b/script/cnc_docker.sh @@ -0,0 +1,129 @@ +#!/bin/bash +set -e + +CONTAINER_NAME="olcrtc-client" +IMAGE_NAME="docker.io/library/golang:1.26-alpine" +REPO_URL="https://github.com/openlibrecommunity/olcrtc.git" +WORK_DIR="/tmp/olcrtc-client" + +SOCKS_IP="127.0.0.1" +SOCKS_PORT="8808" + +echo "=== OlcRTC Client Deployment Script (Docker) ===" +echo "" + +if ! command -v docker &> /dev/null; then + echo "[!] Installing Docker..." + + if [ "$(id -u)" -eq 0 ]; then + SUDO="" + elif command -v sudo &> /dev/null; then + SUDO="sudo" + elif command -v doas &> /dev/null; then + SUDO="doas" + else + echo "[X] No sudo/doas found and not running as root. Cannot install docker." + exit 1 + fi + + if command -v apt &> /dev/null; then + echo "[*] Detected apt (Debian/Ubuntu)" + $SUDO apt update + $SUDO apt install -y docker.io + elif command -v dnf &> /dev/null; then + echo "[*] Detected dnf (Fedora/RHEL)" + $SUDO dnf install -y docker + elif command -v yum &> /dev/null; then + echo "[*] Detected yum (CentOS/RHEL)" + $SUDO yum install -y docker + elif command -v pacman &> /dev/null; then + echo "[*] Detected pacman (Arch)" + $SUDO pacman -Sy --noconfirm docker + else + echo "[X] Unsupported package manager. Install docker manually." + exit 1 + fi + + echo "[*] Starting Docker service..." + $SUDO systemctl enable --now docker || true +fi + +echo "[+] Using Docker" +echo "" + +read -p "Enter Telemost Room ID: " ROOM_ID +if [ -z "$ROOM_ID" ]; then + echo "[X] Room ID cannot be empty" + exit 1 +fi + +echo "" +read -p "Enter Encryption Key (hex): " KEY +if [ -z "$KEY" ]; then + echo "[X] Encryption key cannot be empty" + exit 1 +fi +echo "" +read -p "SOCKS5 ip [default: 127.0.0.1]: " IP_INPUT +SOCKS_IP=${IP_INPUT:-127.0.0.1} + +echo "" +read -p "SOCKS5 port [default: 8808]: " PORT_INPUT +SOCKS_PORT=${PORT_INPUT:-8808} + +echo "" +echo "[*] Stopping old instance..." +docker stop $CONTAINER_NAME 2>/dev/null || true +docker rm $CONTAINER_NAME 2>/dev/null || true + +echo "[*] Cleaning workspace..." +rm -rf $WORK_DIR +mkdir -p $WORK_DIR + +echo "[*] Cloning repository..." +git clone --depth 1 $REPO_URL $WORK_DIR + +echo "[*] Pulling Go image..." +docker pull $IMAGE_NAME + +echo "[*] Building OlcRTC..." +docker run --rm \ + -v $WORK_DIR:/app \ + -w /app \ + $IMAGE_NAME \ + sh -c "go mod tidy && go build -o olcrtc cmd/olcrtc/main.go" + +if [ ! -f "$WORK_DIR/olcrtc" ]; then + echo "[X] Build failed" + exit 1 +fi + +echo "[*] Starting OlcRTC client..." +docker run -d \ + --name $CONTAINER_NAME \ + --restart unless-stopped \ + -p $SOCKS_IP:$SOCKS_PORT:$SOCKS_PORT \ + -v $WORK_DIR:/app \ + -w /app \ + $IMAGE_NAME \ + ./olcrtc -mode cnc -id "$ROOM_ID" -key "$KEY" -socks-port $SOCKS_PORT -socks-host 0.0.0.0 + +sleep 2 + +echo "" +echo "[+] Client started successfully!" +echo "" +echo "Container name: $CONTAINER_NAME" +echo "Room ID: $ROOM_ID" +echo "SOCKS5 proxy: $SOCKS_IP:$SOCKS_PORT" +echo "" +echo "View logs:" +echo " docker logs -f $CONTAINER_NAME" +echo "" +echo "Stop client:" +echo " docker stop $CONTAINER_NAME" +echo "" +echo "Test proxy:" +echo " export all_proxy=socks5h://$SOCKS_IP:$SOCKS_PORT" +echo " curl -fsSL https://ifconfig.me" +echo ""