Tested on QTS 5.x with Container Station 3.x. Standard docker-compose works — no special template.
- Open Container Station → Applications → Create.
- Application Name:
tgarr - YAML: paste contents of docker-compose.yml.
- Environment variables: edit YAML to inject your values (or use a
.envfile via SSH — see below). - Click Validate YAML → Create.
ssh admin@qnap
sudo -i
mkdir -p /share/Container/tgarr && cd /share/Container/tgarr
curl -fsSL https://raw.githubusercontent.com/tgarrpro/tgarr/main/docker-compose.yml -o docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/tgarrpro/tgarr/main/.env.example -o .env
chmod 600 .env
$EDITOR .envFill in:
TG_API_ID/TG_API_HASH— from https://my.telegram.org/appsTG_PHONE— your Telegram phone, international formatDB_PASSWORD—openssl rand -hex 24MEILI_MASTER_KEY—openssl rand -hex 32
Then the standard flow:
docker compose run --rm crawler python login.py # SMS code prompt
docker compose up -d
docker compose logs -f crawlerComfortable on QNAP TS-451+, TS-453D, TS-464, TS-673A, and similar 4 GB+ models. Pin the container's _data/ volume to a SSD-backed shared folder for faster Meilisearch indexing.
Once running, the Newznab-compatible API is on http://<qnap-ip>:8765/api. Point Sonarr/Radarr there in Settings → Indexers → Add Newznab.