Trawlr Docs

Because documentation is cool.

auto_stories

WORK IN PROGRESS

The dedicated docs site is almost ready. In the meantime the FAQs below should cover the most common questions.

help_outline

Anticipated Questions

Because, you know, it's only just been released.

build Setup & Installation

What are the minimum system requirements? chevron_right

Trawlr requires Docker and Docker Compose, at least 4GB of RAM and enough disk space for your media downloads. The platform should run on any Linux server, WSL2, or macOS (it's been tested on Windows 11, Ubuntu LTS and deployed with Dokploy). You'll also need a valid Telegram API credentials from my.telegram.org. The required services are included in the docker compose file.

What services does Docker Compose start? chevron_right

The default docker-compose.yml starts the eight required services:

  • Web - the Trawlr application
  • Downloader - worker for thumbnails and media downloads
  • Concierge - orchestrates Telegram API calls for ad-hoc tasks
  • Processor - processes real-time events from the listener
  • Listener - maintains a persistent Telegram connection to receive new events
  • Scheduler - APScheduler instance that triggers periodic tasks
  • DB - PostgreSQL 18 server
  • RabbitMQ - used to queue events and tasks

sensors Accounts & Monitoring

Can I use multiple Telegram accounts? chevron_right

Yes. Trawlr supports connecting multiple Telegram accounts simultaneously. Accounts are linked via the web UI under the Accounts section. You'll need the phone number, api_id, and api_hash for each account. These operate in Telegram's user account context.

How does the real-time listener work? chevron_right

The listener service is a long-running async process that maintains a persistent connection to Telegram. It captures events immediately as they occur and publishes them to RabbitMQ, where they are picked up by the processor for processing and storage.

I am getting the error FloodWait, what does it mean? chevron_right

FloodWait is a Telegram rate limit response. When a FloodWaitError occurs the affected account pauses for the cooldown period specified by Telegram. This does not affect receiving real time events. The account's FloodWait status is tracked in the database so the dashboard reflects when an account is temporarily rate-limited. To minimise FloodWait errors, distribute your high volume across multiple accounts.

cloud_download Downloads & Storage

How does file deduplication work? chevron_right

Each downloaded file stores its SHA256 hash. If the same file is shared across multiple channels, Trawlr detects the duplicate and stores a reference to the original rather than saving another copy. This can reduce disk usage on instances monitoring channels that reshare the same media. Deduplication also uses Telegram's file_unique_id for cross-account deduplication. This feature can be toggled on or off in Settings.

Can I control which media types are downloaded? chevron_right

Yes. You can enable automatic downloading for photos, videos and other files independently for each source. Your source priority settings determine its position in the download queue and you can set the number of concurrent download slots per account (up to 10).

What happens if a download fails? chevron_right

Failed downloads are automatically retried up to 3 times with exponential backoff (unless you configure otherwise). If a download task gets stuck due to a container restart or otherwise, the scheduler runs a periodic recovery task that detects downloads stuck for more than 4 hours and resets them for retry. You can monitor download status and failures from the Downloads page in the dashboard.

search Search & Analysis

What search syntax does Trawlr support? chevron_right

Trawlr uses a structured query language similar to EQL/JQL. You can combine free-text search with field-based filters. Examples include:

  • text:[your text] - full-text search across message content
  • channel:[name] - filter by source channel or group
  • sender:[username] - filter by message sender
  • url:[https://example.com] or domain:[example.com] - find messages containing the specified URL/Domain
  • has_media:[true/false] - only messages with attached media
  • type:[photo/video/file] - filter for specific media types
  • deleted:[true/false] - filter out deleted messages/li>
  • created:>7d - relative date filters also support absolute dates such as created:2026-01-01

Operators include AND (implicit between terms), OR, NOT / - negation, and quoted "exact phrases".

What visualisation map types are available? chevron_right

Trawlr generates seven types of interactive network visualisations:

  • Forwards - tracks content forwarding between channels
  • Users - maps users to the channels they appear in (WIP)
  • Cross-Post - identifies users posting identical content across multiple channels
  • URLs/Domains - shows URL and domain sharing patterns
  • Shared Media - connects channels that share identical files between other sources and users
  • Mentions - maps @mention relationships between users and sources
  • Admins - maps channel/group ownership for tracked users (WIP)

settings Configuration

What filename formats are available for downloads? chevron_right

Trawlr saves media as a GUID (random unique identifier) by default. Trawlr also supports Timestamp (based on message date), Message ID (Telegram's message identifier), and File ID (Telegram's internal file identifier). All files retain their original extension regardless of the naming format chosen.

Still have questions?

Check the getting started guide for a full walkthrough, or open an issue on GitHub.