#!/bin/bash
set -e
# --- Cấu hình ---
PROXY_PORT="443"
# --- Hàm kiểm tra và cài đặt Docker ---
install_docker() {
if ! command -v docker &> /dev/null; then
echo "🐳 Docker chưa được cài đặt. Bắt đầu quá trình cài đặt Docker..."
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg ufw
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
echo "✅ Docker đã được cài đặt thành công."
else
echo "✅ Docker đã được cài đặt từ trước."
fi
}
# --- Bắt đầu thực thi ---
echo "--- Bước 1: Cài đặt Docker ---"
install_docker
echo ""
echo "--- Bước 2: Dọn dẹp container cũ (nếu có) ---"
# Lệnh || true sẽ bỏ qua lỗi nếu container không tồn tại
sudo docker stop mtprotoproxy &>/dev/null || true
sudo docker rm mtprotoproxy &>/dev/null || true
echo "Đã dọn dẹp."
echo ""
echo "--- Bước 3: Tải về image MTProxy chính thức từ Docker Hub ---"
# Sử dụng image chính thức từ Telegram
sudo docker pull telegrammessenger/proxy:latest
echo ""
echo "--- Bước 4: Khởi chạy MTProxy container ---"
# Container sẽ tự tạo secret ngẫu nhiên và an toàn
sudo docker run -d -p $PROXY_PORT:443 --name=mtprotoproxy --restart=always telegrammessenger/proxy:latest
echo ""
echo "--- Bước 5: Lấy thông tin Proxy và link chia sẻ ---"
echo "Chờ 5 giây để container khởi động và tạo secret..."
sleep 5
echo "Đang lấy link từ container logs..."
# Lấy URL đầy đủ từ log của container
PROXY_URL=$(sudo docker logs mtprotoproxy 2>&1 | grep -o 't.me/proxy?.*' | head -n 1)
IP=$(curl -s https://api.ipify.org || curl -s ifconfig.me)
if [ -z "$PROXY_URL" ]; then
echo "❌ LỖI: Không thể tự động lấy link từ container."
echo "Hãy thử kiểm tra log thủ công bằng lệnh: sudo docker logs mtprotoproxy"
exit 1
fi
echo ""
echo "--- Bước 6: Mở Firewall cho Proxy ---"
sudo ufw allow $PROXY_PORT/tcp
sudo ufw status | grep -q "Status: active" || sudo ufw --force enable
echo "Đã mở port $PROXY_PORT/tcp trên firewall."
echo ""
echo "-------------------------------------------------"
echo "✅✅✅ HOÀN TẤT! Proxy của bạn đang chạy trong Docker. ✅✅✅"
echo ""
echo " 🔹 Máy chủ (IP): $IP"
echo " 🔹 Port: $PROXY_PORT"
echo ""
echo " 🔗 Link chia sẻ trực tiếp cho Telegram (đã tự động lấy):"
echo " $PROXY_URL"
echo ""
echo "-------------------------------------------------"
echo "Gợi ý: Bạn có thể quản lý proxy bằng các lệnh sau:"
echo " - Xem log: sudo docker logs mtprotoproxy"
echo " - Dừng proxy: sudo docker stop mtprotoproxy"
echo " - Khởi động lại: sudo docker start mtprotoproxy"
echo "-------------------------------------------------"