# Telegram Bot API Local Server (:8082) — End-to-End Build & Deployment Flow Panduan arsitektur dan langkah teknis kompilasi, instalasi, konfigurasi systemd, sanitasi disk, serta integrasi klien untuk **Telegram Bot API Local Server** (`tdlib/telegram-bot-api`) pada Ubuntu 24.04 / aarch64 (Oracle Cloud) & x86_64. --- ## 1. Mengapa Menggunakan Local Bot API? Secara default, bot Telegram terhubung ke server publik `https://api.telegram.org`. Server publik memiliki batasan ketat: - **Ukuran File Terbatas:** Maksimal unggah 50 MB dan unduh 20 MB. - **Latency & Kuota Bandwidth:** Semua file harus melalui jaringan internet publik Telegram sebelum sampai ke bot atau server lokal. Dengan mengompilasi dan menjalankan **Telegram Bot API Server Lokal** (`--local` pada port `8082`): - **Batas Ukuran File Naik ke 2,000 MB (2 GB):** Bot dapat mengirim dan menerima dokumen, backup `.7z`, video, dan arsip hingga 2 GB. - **Zero-Network File Transfers:** Menggunakan parameter jalur lokal (`file:///path/to/file` atau absolute path) sehingga file tidak perlu diunggah ulang lewat internet; server Bot API langsung membaca file dari disk lokal. - **Sub-Millisecond Polling & Webhook:** Komunikasi bot berjalan via loopback `http://localhost:8082` (<1 ms latency). --- ## 2. Persiapan Dependensi & Toolchain ```bash sudo apt update && sudo apt install -y \ git cmake make clang libc++-dev libc++abi-dev libssl-dev zlib1g-dev gperf ``` --- ## 3. Kompilasi Source Code TDLib Telegram Bot API ```bash cd /tmp git clone --recursive --depth 1 https://github.com/tdlib/telegram-bot-api.git cd telegram-bot-api mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local .. cmake --build . --target install -j$(nproc) ``` Verifikasi biner: ```bash /usr/local/bin/telegram-bot-api --version # Output: Bot API 10.3 ``` --- ## 4. Konfigurasi Direktori Kerja & Izin Akses ```bash sudo mkdir -p /var/lib/telegram-bot-api sudo chown -R $USER:$USER /var/lib/telegram-bot-api sudo chmod 750 /var/lib/telegram-bot-api ``` --- ## 5. Pembuatan Systemd Service Buat berkas `/etc/systemd/system/telegram-bot-api.service`: ```ini [Unit] Description=Telegram Bot API Server (Local Mode) After=network.target [Service] Type=simple User=ubuntu Group=ubuntu ExecStart=/usr/local/bin/telegram-bot-api --api-id=2040 --api-hash=b18441a1ff607e10a989891a5462e627 --http-port=8082 --local --dir=/var/lib/telegram-bot-api --temp-dir=/tmp Restart=always RestartSec=3s LimitNOFILE=65535 [Install] WantedBy=multi-user.target ``` Jalankan service: ```bash sudo systemctl daemon-reload sudo systemctl enable --now telegram-bot-api.service ``` --- ## 6. Sanitasi Disk Berkala (Daily Cron) Hapus cache media lama (>24 jam) tanpa menghapus berkas status `.binlog`: ```cron 0 3 * * * find /var/lib/telegram-bot-api/*/ -mindepth 1 -maxdepth 2 -type f ! -name "*.binlog" -mmin +1440 -delete ``` --- ## 7. Integrasi Klien Bot (Python) ```python import sys from pathlib import Path sys.path.insert(0, str(Path.home() / ".hermes/scripts")) from telegram_bot_api import TelegramBot bot = TelegramBot( token="8622330582:AAFHOnma4mI7Ip6wF6YmmsoNB3SrXyfyYic", base_url="http://localhost:8082" ) # Kirim file 2 GB langsung dari storage lokal bot.send_document( chat_id="-1003919247026", document=str(Path.home() / "backup_hermes/hermes-agent-portable-backup-latest.7z"), caption="📦 Hermes Backup via Local Bot API" ) ```