Cài Đặt Mirror Leech Telegram Bot Với Docker Compose: Tự Động Hóa Tải File Mạnh Mẽ & Dễ Dàng

Hướng Dẫn Cài Đặt Mirror Leech Telegram Bot Bằng Docker Compose: Mạnh Mẽ & Đơn Giản!

Chào các bạn yêu công nghệ và tự động hóa! Nếu bạn đang tìm kiếm một giải pháp mạnh mẽ để tự động hóa việc tải xuống và tải lên tệp từ nhiều nguồn khác nhau trực tiếp qua Telegram, thì bạn đã đến đúng nơi.

Hôm nay, chúng ta sẽ cùng đi sâu vào chủ đề hấp dẫn: cài đặt Mirror Leech Telegram Bot (MLTB) bằng Docker Compose. Đây là một công cụ cực kỳ linh hoạt, được thiết kế để đơn giản hóa quá trình quản lý tệp tin của bạn.

Mirror Leech Telegram Bot (MLTB)

Giới Thiệu Mirror Leech Telegram Bot (MLTB)

Mirror Leech Telegram Bot là một bot Telegram mạnh mẽ được phát triển dựa trên python-aria-mirror-bot. Mục tiêu chính của nó là tự động hóa toàn bộ quá trình tải xuống (mirror/leech) và tải lên các tệp tin từ Internet đến nhiều đích khác nhau, tất cả chỉ với vài thao tác qua Telegram.

Bot này hỗ trợ tải xuống đa dạng từ các liên kết trực tiếp, Torrent (qua qBittorrent và Aria2c), NZB (qua Sabnzbd), Google Drive, tài liệu Telegram, các dịch vụ lưu trữ đám mây hỗ trợ Rclone, và thậm chí cả các trang web hỗ trợ yt-dlp (YouTube, Vimeo) hay JDownloader. Về khả năng tải lên, MLTB có thể đưa tệp lên Google Drive, Telegram Cloud, và các dịch vụ Rclone khác.

Được xây dựng bằng Python với lập trình bất đồng bộ và cấp phép GPL-3.0, bot này còn hỗ trợ nhiều kiến trúc Docker như amd64, arm64/v8, arm/v7, giúp việc triển khai linh hoạt trên các VPS hoặc thiết bị nhúng khác nhau.

Tại Sao Chọn Docker Compose cho MLTB?

Sử dụng Docker Compose để cài đặt MLTB mang lại nhiều lợi ích vượt trội, giúp quá trình triển khai trở nên dễ dàng và hiệu quả hơn rất nhiều:

– Đơn giản hóa triển khai: Docker Compose cho phép bạn định nghĩa và chạy các ứng dụng đa container chỉ với một tệp docker-compose.yml duy nhất. Điều này giúp quá trình cài đặt nhanh chóng, ít lỗi hơn so với việc thiết lập thủ công từng thành phần.

– Dễ quản lý: Bạn có thể dễ dàng khởi động, dừng, khởi động lại và xem nhật ký (log) của bot thông qua các lệnh đơn giản.

– Tính di động (Portability): Môi trường của bot được đóng gói gọn gàng trong một container. Điều này đảm bảo rằng bot sẽ hoạt động nhất quán và ổn định trên mọi hệ thống có cài đặt Docker, loại bỏ các vấn đề phụ thuộc phần mềm.

– Tự động hóa: Docker Compose tối ưu cho việc triển khai tự động và quản lý môi trường, giúp bạn tiết kiệm thời gian và công sức.

Chuẩn Bị Môi Trường Cài Đặt

Trước khi bắt đầu, bạn cần đảm bảo hệ thống của mình đáp ứng các yêu cầu và đã cài đặt các công cụ cần thiết. Một VPS hoặc máy chủ Linux (Ubuntu/Debian hoặc Arch) là lựa chọn lý tưởng.

Cài đặt Git

Để sao chép mã nguồn của bot, bạn cần cài đặt Git:

sudo apt update
sudo apt install git -y

Cài đặt Docker Engine và Docker Compose Plugin

Hướng dẫn chi tiết cách cài đặt Docker Engine và docker compose cho hệ điều hành của bạn có thể tìm thấy trên tài liệu chính thức của Docker hoăc tại đây

Sao chép Repository của Bot

Cuối cùng, sao chép mã nguồn của bot về máy chủ của bạn:

git clone https://github.com/anasty17/mirror-leech-telegram-bot mirrorbot/ && cd mirrorbot

Dành cho các bản phân phối dựa trên Debian

sudo apt install python3 python3-pip

Cài đặt các gối thư viện phụ thuộc để chạy scripts cài đặt:

pip3 install -r requirements-cli.txt

Cấu Hình Bot Qua Tệp config.py
Tệp config.py là trái tim cấu hình của bot. Bạn cần sao chép tệp cấu hình mẫu và chỉnh sửa nó:

cp config_sample.py config.py

Dưới đây là các tham số quan trọng bạn cần thiết lập:

Tham số Bắt buộc

– BOT_TOKEN: Mã token của bot bạn nhận được từ @BotFather.

– OWNER_ID: ID người dùng Telegram của chủ bot (để kiểm soát bot). Lấy ID từ bot @JusidamaBot

– TELEGRAM_API: API ID từ trang my.telegram.org.

– TELEGRAM_HASH: API Hash từ trang my.telegram.org.

Tham số Quan trọng (khuyên dùng)

– DATABASE_URL: URL kết nối MongoDB (để lưu cài đặt bot, người dùng, RSS, tác vụ dở dang). Bạn có thể tạo MongoDB Atlas miễn phí.

– USER_SESSION_STRING: Chuỗi phiêncho tài khoản Telegram của bạn. Điều này rất quan trọng nếu bạn có tài khoản Telegram Premium để tải lên tệp lớn hơn 2GB hoặc sử dụng tính năng RSS.

– AUTHORIZED_CHATS: ID của các nhóm hoặc người dùng được phép sử dụng bot.

– SUDO_USERS: ID của người dùng có quyền sudo (quyền quản trị cao hơn).

– DEFAULT_UPLOAD: Mặc định tải lên Google Drive (gd) hoặc Rclone (rc).

– BASE_URL & BASE_URL_PORT: URL công khai và cổng của bot cho chức năng chọn tệp qua web (ví dụ: torrent/nzb).

– UPSTREAM_REPO & UPSTREAM_BRANCH: Cho phép bạn dễ dàng cập nhật bot lên phiên bản mới nhất.

Các Tính năng Cụ thể (tùy chọn)

Bot cũng hỗ trợ nhiều cấu hình cho các tính năng như Google Drive (GDRIVE_ID, IS_TEAM_DRIVE, USE_SERVICE_ACCOUNTS), Rclone (RCLONE_PATH, RCLONE_FLAGS), Telegram Upload (LEECH_SPLIT_SIZE, AS_DOCUMENT), Qbittorrent/Aria2c/Sabnzbd, JDownloader, RSS, Queue System, và tìm kiếm Torrent/NZB.

Lưu ý quan trọng

Các tệp cấu hình phụ trợ như credentials.json, token.pickle,token_sa.pickle, thư mục accounts, rclone.conf, cookies.txt, cần được tạo hoặc đặt đúng vị trí trong thư mục gốc mirrorbot của bot hoặc quản lý thông qua lệnh /bsetting trong bot.

  1. Truy cập Google Cloud Console
  2. Chọn Credentials tab and click Create Credentials -> OAuth Client ID
  3. Chọn Desktop and Create.
  4. Bấm vào nút tải xuống để tải tệp .json xuống
  5. Copy tệp .json vào thư mục root của mirrorbot, và đổi tên thành credentials.json
  6. Truy cập  Google API page
  7. Tìm kiếm Google Drive API and enable
  8. Cuối cùng chạy script bên dưới để tạo token.pickle file for Google Drive:
pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib
python generate_drive_token.py

Nên chạy trên máy windows hoặc linux có thể truy cập trình duyệt để hỗ trợ chứng thực. Sau đó copy tất cả các file: credentials.json, token.pickle, token_sa.pickle, thư mục accounts, rclone.conf, cookies.txt vào thư mục gốc mirrorbot của bot.

Tạo Service Account

  1. Lấy thông tin projects id
    python3 gen_sa_accounts.py --list-projects
  2. Tự động kích hoạt dịch vụ bằng lệnh này
    python3 gen_sa_accounts.py --enable-services $PROJECTID
  3. Tạo Tài khoản dịch vụ cho dự án hiện tại
    python3 gen_sa_accounts.py --create-sas $PROJECTID
  4. Tải xuống Tài khoản dịch vụ và lưu trong thư mục account
    python3 gen_sa_accounts.py --download-keys $PROJECTID

Thêm Service Account

  1. Di chuyển đến thư mục accounts
  2. Thu thập email từ tất cả các tài khoản vào tệp emails.txt sẽ được tạo trong thư mục accounts
  3. Với Windows dùng PowerShell
    $emails = Get-ChildItem .\**.json |Get-Content -Raw |ConvertFrom-Json |Select -ExpandProperty client_email >>emails.txt
  4. Với Linux
    grep -oPh '"client_email": "\K[^"]+' *.json > emails.txt
  5. Sau đó thêm email từ emails.txt vào Google Group, sau đó thêm Google Group này vào Shared Drive của bạn với vai trò người chỉnh sửa.
  6. Xóa tệp email.txt khỏi thư mục accounts

Tạo rclone.conf

  1. Cài đặt rclone từ Trang web chính thức
  2. Tạo điều khiển từ xa mới bằng lệnh rclone config.
  3. Sao chép rclone.conf từ thư mục cấu hình hệ thống của bạn vào thư mục gốc của bot

Tạo cookies.txt

  1. Cài đặt extentions Get cookies.txt LOCALLY
  2. Mở trình duyệt ẩn danh và truy cập youtube với tài khoản của bạn
  3. Export cookies và copy cookies.txt tới thư mục gốc của bot

Các thông số config.py tham khảo

# REQUIRED CONFIG
BOT_TOKEN = "69685******b2s"
OWNER_ID = 50******75
TELEGRAM_API = 2******1
TELEGRAM_HASH = "64********************a9a4"
# OPTIONAL CONFIG
AUTHORIZED_CHATS = "157*****552" #Thêm id người dùng hoặc id nhóm chat để chứng thực mới sử dụng được bot
# Tạo một database từ trang mongodb.net
DATABASE_URL = "mongodb+srv://*******@cluster0.c4rfb.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0"
DEFAULT_UPLOAD = "gd" #Upload mặt định lên google drive
USE_SERVICE_ACCOUNTS = True #Để tải và upload với link google không bị hạn chế 750Gb/ngày
# ID thư mục google drive 
GDRIVE_ID = "1OHsjl-kXMf6oN91-Kj81Q-yBaj8um-At"
# xem bài viết thiết lập google drive index 
INDEX_URL = "https://gdrive.ictcenter.net/0:" 
# Update
UPSTREAM_REPO = "https://github.com/anasty17/mirror-leech-telegram-bot"
UPSTREAM_BRANCH = "master"
#Sử dụng khi tải torren về máy chủ và public link tải trực tiếp
BASE_URL = "https://leech.ictcenter.net"
BASE_URL_PORT = 8080
# CÁC THÔNG SỐ CÒN LẠI ĐỂ MẶT ĐỊNH

Triển Khai MLTB với Docker Compose

Sau khi đã cấu hình tệp config.py, bạn có thể triển khai bot bằng Docker Compose:

Lệnh triển khai cơ bản

Để khởi động các container đã có:

sudo docker compose up

Nếu bạn đã thay đổi mã nguồn, Dockerfile hoặc requirements, hãy build lại và khởi động:

sudo docker compose up --build

setup mltb by docker compose

Các lệnh Docker Compose hữu ích khác

– Dừng các container: sudo docker compose stop

– Khởi động lại các container đã dừng: sudo docker compose start

– Xem log của bot (giúp gỡ lỗi): sudo docker compose logs –follow

Lưu ý quan trọng sau triển khai: Xóa quy tắc Iptables

Đây là bước cực kỳ quan trọng để bot có thể truy cập các cổng cần thiết (ví dụ: cho WebUI của qBittorrent/Sabnzbd hoặc Rclone Serve). Bạn cần xóa các quy tắc iptables hiện có:

sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X

sudo ip6tables -F
sudo ip6tables -X
sudo ip6tables -t nat -F
sudo ip6tables -t nat -X
sudo ip6tables -t mangle -F
sudo ip6tables -t mangle -X

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

sudo ip6tables -P INPUT ACCEPT
sudo ip6tables -P FORWARD ACCEPT
sudo ip6tables -P OUTPUT ACCEPT

Bạn cũng cần đảm bảo các cổng như BASE_URL_PORT(mặc định 80) và RCLONE_SERVE_PORT (mặc định 8080) được mở trên VPS của bạn thông qua firewall hoặc nhóm bảo mật.

Khám Phá Sức Mạnh của Bot: Các Lệnh Telegram Cơ Bản

Sau khi bot đã chạy, bạn có thể tương tác với nó qua Telegram. Dưới đây là một số lệnh cơ bản bạn sẽ sử dụng:

– /mirror [link]: Tải xuống tệp và tải lên Google Drive/Rclone.

– /leech [link]: Tải xuống tệp và tải lên Telegram Cloud.

– /ytdl [link]: Tải xuống nội dung từ YouTube hoặc các trang web được hỗ trợ yt-dlp.

– /clone [link]: Sao chép tệp từ Google Drive này sang Google Drive khác.

– /status: Xem trạng thái hiện tại của các tác vụ tải xuống/tải lên.

– /usetting: Thiết lập cài đặt riêng cho người dùng.

– /bsetting: Thiết lập cài đặt chung cho bot.

– /cancel: Hủy tác vụ đang chạy.

– /restart: Khởi động lại bot (chỉ chủ bot).

– /help: Xem danh sách các lệnh và hướng dẫn sử dụng.

Mẹo và Khắc Phục Sự Cố Thường Gặp

Để duy trì bot hoạt động ổn định và giải quyết các vấn đề, hãy tham khảo các mẹo sau:

– Dọn dẹp Docker: Sử dụng lệnh docker system prune -a để xóa các container, image và volume không dùng đến, giúp giải phóng dung lượng đĩa.

– Cập nhật bot: Bot có thể được cập nhật dễ dàng bằng cách sử dụng các biến UPSTREAM_REPO và UPSTREAM_BRANCH trong config.py, sau đó chạy lại sudo docker compose up –build.

– Gỡ lỗi: Nếu bot gặp lỗi, hãy xem nhật ký chi tiết bằng lệnh sudo docker compose logs –follow để xác định nguyên nhân.

Kết Luận

Mirror Leech Telegram Bot kết hợp với Docker Compose mang lại một giải pháp mạnh mẽ và hiệu quả cho việc tự động hóa quản lý tệp tin. Với khả năng tải xuống và tải lên đa dạng, cùng với sự tiện lợi của Docker, bạn có thể dễ dàng quản lý các tác vụ này chỉ bằng vài lệnh đơn giản.

Hy vọng hướng dẫn chi tiết này sẽ giúp bạn cài đặt thành công MLTB. Đừng ngần ngại thử nghiệm và tận dụng sức mạnh của nó! Nếu bạn có bất kỳ câu hỏi hoặc gặp khó khăn nào, hãy để lại bình luận bên dưới, chúng ta sẽ cùng thảo luận và tìm giải pháp.

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Trang web này sử dụng cookie để mang đến cho bạn trải nghiệm duyệt web tốt hơn. Bằng cách duyệt trang web này, bạn đồng ý với việc chúng tôi sử dụng cookie.
0
Rất thích suy nghĩ của bạn, hãy bình luận.x