Skip to content

AutoTelegramForward v2.2.2

Choose a tag to compare

@github-actions github-actions released this 17 Oct 22:26
· 195 commits to master since this release
d576447

AutoTelegramForward v2.2.2 — True Single-File Cross-Platform Release

One Single Executable, All 4 Microservices.
AutoTelegramForward is a high-performance Telegram MTProto forwarding and routing suite engineered with clean microservice boundaries. Every platform release is a self-contained, native single executable that embeds and orchestrates all four decoupled services with zero external dependencies (no Python, Go, Rust, Node.js, or compiler toolchains required on host systems):

  1. Python Core Engine (:6001) — Telegram MTProto client pool, rule engine, smart routing, link sanitization, and multi-provider AI text transformations.
  2. Rust Logger Engine (:6002) — High-throughput gRPC log ingestion with secret redaction, queryable structured logs, and a dedicated SQLite archive.
  3. Go REST API (:8080) — Production control-plane, OpenAPI REST endpoints for rules, sessions, and telemetry.
  4. Rust Axum Web Gateway & React Dashboard (:8088) — Zero-dependency web server embedding the React Single Page App, providing security headers, high-throughput reverse proxying to the Go API, and health metrics.

Quick Start Guide (Linux / macOS / WSL)

  1. Download the single-file binary:

    curl -fsSL https://github.com/Opselon/AutoTelegramForward/releases/latest/download/atf-linux-x64 -o atf && chmod +x atf

    (For Apple Silicon macOS, use atf-macos-arm64; for macOS Intel, use atf-macos-x64)

  2. Interactive Onboarding & Setup Wizard:

    ./atf setup

    Only asks for your Telegram Bot Token from @BotFather and optional Admin User ID.
    To run non-interactively (CI/CD):

    ./atf setup --token "123456:ABC-DEF..." --admin 123456789 --lang en --start
  3. Start All Services with One Command:

    ./atf start
  4. Verify Live Status & Health:

    ./atf status
    ./atf health
  5. Open Web Dashboard:
    Open http://localhost:8088 in your browser to access the live React Management Dashboard.


Windows (PowerShell)

curl.exe -fsSL https://github.com/Opselon/AutoTelegramForward/releases/latest/download/atf-windows-x64.exe -o atf.exe
.\atf.exe setup
.\atf.exe start
.\atf.exe status

Production OS Background Service (Auto-Start on Boot)

Run all services continuously in the background managed by your operating system:

# Linux (systemd user unit)
./atf service install

# Check service status
./atf status

# Tail live service logs
./atf logs

Docker & Kubernetes Deployments

Docker Compose (All 4 Microservices):

curl -fsSL https://raw.githubusercontent.com/Opselon/AutoTelegramForward/master/docker-compose.yml -o docker-compose.yml
docker compose up -d
# or via CLI:
./atf docker up

Kubernetes (Production Cluster Manifests):

./atf k8s apply
# or kubectl:
kubectl apply -f https://raw.githubusercontent.com/Opselon/AutoTelegramForward/master/k8s/all-in-one.yaml

Official Single-File Artifacts

Binary Platform Architecture Verification
atf-linux-x64 Linux x86_64 Self-contained single-file executable
atf-linux-arm64 Linux ARM64 / aarch64 Raspberry Pi 4/5, ARM VPS, Graviton
atf-macos-x64 macOS Intel x86_64 Self-contained single-file executable
atf-macos-arm64 macOS Apple Silicon (M1/M2/M3/M4) Self-contained single-file executable
atf-windows-x64.exe Windows x64 Windows native standalone executable
atf-*-portable.tar.gz Cross-platform Portable directory One-directory portable bundle
Android ARM64 Flutter release APK (per-ABI)
Android ARMv7 Flutter release APK (per-ABI)
Android x86_64 Flutter release APK (per-ABI)
Android Universal Play Store App Bundle
Any POSIX Source bundle Source distribution

SHA-256 Checksums Verification

Download SHA256SUMS.txt from the release assets and verify integrity:

sha256sum -c SHA256SUMS.txt

What's Changed

  • Drive warnings and errors to zero: real crashes, log corruption, lint gate by @Opselon in #118
  • Per-task option logic: AI off means off, edit sync stops duplicating, album modes reach the worker by @Opselon in #119
  • Styled buttons (keyboardButtonStyle) + one way out of the task panel by @Opselon in #120
  • Pass the button-style diagnostics into the core container by @Opselon in #121
  • Delete sync works outside channels by @Opselon in #122
  • Delivery lanes: a burst leaves in the source's order, not the order we read it by @Opselon in #124
  • Bot route: deliver a task through a bot the owner attached by @Opselon in #123
  • Task settings: choose a task's bot route from the bot, safely by @Opselon in #125
  • Security: a bot token belongs to the tenant that pasted it by @Opselon in #126
  • API: the bot route is a per-task setting on the control plane by @Opselon in #127
  • Clients: name the delivery-route group in the web panel and the mobile sheet by @Opselon in #128
  • Attach a bot from anywhere: token API + web and mobile control by @Opselon in #129
  • Bot: every setting is now editable from Telegram, from the server's own registry by @Opselon in #130
  • CI publishes the images; the host pulls them instead of compiling by @Opselon in #131
  • Deploy summary reports the image it really deployed, and can move a subset by @Opselon in #132
  • Give a bot defaults, and let every task override them by @Opselon in #133
  • Make a bot's defaults reach the forwarder, not just the settings screen by @Opselon in #136
  • Index the two reads that decide a message, and measure the result at 10k tenants by @Opselon in #137
  • Build the Android release APK in CI, on demand by @Opselon in #135
  • Let a client clear a default, and hand a setting back to it by @Opselon in #138
  • Show a task's settings the way the forwarder sees them, and let the panel hand one back by @Opselon in #139
  • Show where a bot-supplied setting comes from, and make "reset" hand it back by @Opselon in #140
  • Show where a mobile task's setting comes from, and make "use default" hand it back by @Opselon in #141
  • Let a Telegram-only user see what is stuck, what failed, and under which id by @Opselon in #142
  • Do not report a healthy queue's zeroes as a backlog by @Opselon in #143
  • Cut the next version: 2.2.2, with the parity guards that keep it true by @Opselon in #144
  • Make the release workflow parse again — v2.2.2 shipped no APK because of one key by @Opselon in #145
  • Give every image its own BuildKit cache — the release's clean-install raced itself by @Opselon in #146
  • Make the release gate assert redaction in both directions by @Opselon in #147

Full Changelog: v2.2.1...v2.2.2