Documentation

Guides for Telegram Media Downloader, a self-hosted tool that downloads and archives Telegram channel, group and DM media through a web dashboard. New here? Start with the Docker quick start and DEPLOY.md.

Guide What it covers
DEPLOY.md Docker / bare-metal install, reverse proxies, split-disk setups, environment variables
TROUBLESHOOTING.md Common errors and how to fix them
AI.md Face clustering and NSFW review, the sidecars (local, Docker profile, external GPU host)
BACKUP.md Backup destinations (S3, SFTP, FTP, Google Drive, Dropbox, local), mirror vs snapshot
CLUSTER.md Pairing several instances into a federated library
API.md HTTP + WebSocket API reference
ARCHITECTURE.md How the pieces fit together — for contributors
GO-CORE.md tgdl-core, the app’s required Go binary: hashing, integrity checks, folder walks, face clustering and the front server that serves every media byte
GO-MIGRATION.md The plan for a pure-Go backend: waves, the API contract gate, data-compatibility rules
AUDIT.md Security / reliability audit notes
MIGRATION-v2.9-to-v2.10.md Upgrade notes for that release

Release notes: CHANGELOG.md (also shown in the dashboard — click the version in the status bar) and GitHub Releases.

Components and releases

Component Tag Artifacts
App (dashboard + downloader) vX.Y.Z ghcr.io/botnick/telegram-media-downloader
faces-service faces-vX.Y.Z binaries for Windows / Linux / macOS, ghcr.io/botnick/tgdl-faces
nsfw-service nsfw-vX.Y.Z ghcr.io/botnick/tgdl-nsfw (CPU and gpu- tags)
seekbar-service seekbar-vX.Y.Z binaries for Windows / Linux / macOS (downloaded by the app on first use)
core-service (tgdl-core) core-vX.Y.Z tgdl-core-<slug>.tar.gz for Windows / Linux (x64, arm64, ARMv7, x86) / macOS (arm64, x64) + SHA256SUMS (downloaded and verified by npm install and on startup; built into the Docker image)

A sidecar release always ships before an app release that depends on it, so updating the app never points at a sidecar version that doesn’t exist yet.