🇹🇷 Türkçe | 🇬🇧 English | 🇩🇪 Deutsch | 🇷🇺 Русский | 🇨🇳 中文
Kendi Telegram hesabınızla üye olduğunuz grup ve kanalları arka planda gezer; karşılaştığı her dosyayı ve her bağlantıyı yerel bir PostgreSQL veritabanında indeksler. Tarayıcıdan açtığınız tek bir arayüzden arar, sıralar, filtreler ve istediğinizi tek tıkla bilgisayarınıza indirirsiniz.
Bonus: Kanal Avcısı — dosya bakımından zengin yeni kanalları arar, puanlar ve önünüze getirir.
curl -fsSL https://raw.githubusercontent.com/enseitankado/telfiles/main/install.sh | bashDebian / Ubuntu / Kali / Pardus / Mint. Tek satır; Docker yoksa kurar, container'ları ayağa kaldırır, erişim URL'sini yazdırır.
- Çok hesap — birden fazla Telegram hesabını tek görünümde birleştirir.
- Tam arşiv erişimi — geçmiş mesajları sayfa sayfa tarar, yeni gelenleri realtime yakalar.
- Dosyalar & Linkler & Kanallar için ayrı grid'ler — kolon başına sıralama + filtre, kanal/tip/boyut/tarih bazlı daraltma; Kanallar sekmesinde üye sayısı, dosya sayısı, toplu işlemler ve checkbox'larda shift+click aralık seçimi.
- Torrent içerik indeksi —
.torrentdosyaları otomatik parse edilir; içindeki dosya yolları veritabanına eklenir ve dosyalar sekmesinden tam metin aramasına dahil olur. Büyük arşivler 1.000 dosyada kesilir, kaç tane kaldığı gösterilir. - Semantik arama — opsiyonel pgvector entegrasyonu; dosya adları yerel bir modelle gömülür, anahtar kelime eşleşmesinin ötesinde anlam bazlı sıralama sağlar.
- İndirmeler & Transfer — indirilen dosyalar geçmiş sekmesinde listelenir; yerel yol üzerine gelindiğinde tooltip gösterilir; tek tıkla tüm yerel dosyaları silebilirsiniz. Yerelde depolanan dosyalar FTP, SFTP veya yerel dizine (NAS / harici disk) otomatik kopyalanır ya da taşınır. Bant genişliği zamanlama ile büyük dosyalar yalnızca belirlediğiniz saatlerde indirilir. İndirme hedefi tercihleri oturumlar arasında hatırlanır.
- Kanal Avcısı — 3 aşamalı keşif: (1) iç linklerden mining, (2) 22+ web kaynağı (TGStat, Telemetr.io, Combot, t-do.ru, telega.io + arama motorları + Reddit / HN / GitHub + web arşivleri), (3) Telegram'dan örnek mesaj sample'ıyla zenginleştirme & skorlama. Sütun başına sunucu taraflı sıralama; geçici üyelik ile kısıtlı kanalları tarama; 1 yıldan eski kanalları otomatik atlama.
- Önce dene, sonra karar ver — aday kanalın belirli bir dosyasını üye olmadan önizleyip indirir; sadece gerekirse onay vererek "temp-join → indir → ayrıl" yapar.
- Magnet bağlantıları —
magnet:URI'ları parse edilir, meta veri (başlık, boyut, tracker listesi) çekilir; backfill ile mevcut bağlantılar toplu güncellenir. - İzleme kelimeleri —
fatura 2025gibi terim setleri tanımlarsınız; eşleşen dosya geldiğinde bildirim oluşur (AND mantığı, dosya-adı bazlı). - Uygulama içi güncelleme bildirimi — her açılışta GitHub'daki son commit kontrol edilir; yeni sürüm varsa güncelleme komutunu tek tıkla kopyalayabileceğiniz bir banner gösterilir.
- Güvenli şema migrasyonları — versiyonlu
schema_migrationstablosu uygulanan her değişikliği takip eder; kırıcı değişiklikler (tip değişikliği, rename, silme) kendi transaction'larında çalışır; biri başarısız olursa uygulama başlamayı reddeder ve veri hiçbir zaman yarım bırakılmaz. - PWA — tarayıcıdan "Uygulamayı yükle" ile mobil veya masaüstüne kurulabilir; çevrimdışı temel UI destekli.
- Anonim telemetri — opsiyonel, sadece kanal username + üye sayısı + dosya sayısı; mesaj/IP/kimlik yok. Tek tık kapatılır.
- 5 dil — Türkçe, English, Deutsch, Русский, 中文.
- Tek
up -d— Docker Compose. Veriler host volume'unda; container'ı silseniz veriniz kalır.
Gereken: Debian tabanlı Linux + my.telegram.org üzerinden alınmış API_ID & API_HASH.
# 1) Tek satırlık kurulum
curl -fsSL https://raw.githubusercontent.com/enseitankado/telfiles/main/install.sh | bash
# 2) Scripted (CI / hazır env)
TELEGRAM_API_ID=12345 TELEGRAM_API_HASH=abcdef… NONINTERACTIVE=1 \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/enseitankado/telfiles/main/install.sh)"
# 3) Manuel
git clone https://github.com/enseitankado/telfiles.git && cd telfiles
cp .env.example .env && $EDITOR .env # API_ID + API_HASH
docker compose up -d --buildAçılış adresi terminale basılır (varsayılan: http://<host>:8765). Port doluysa installer otomatik olarak boş bir sonrakine geçer.
- Arabirim parolası —
adminile gir, Ayarlar → Hesap → Arabirim Parolası'ndan değiştir. - Telegram hesabı — Ayarlar → Hesap → ➕ Hesap Ekle → telefon → Telegram'a düşen kod → (varsa) 2FA. Bağlantı kurulunca tarama otomatik başlar.
TELEGRAM_API_ID/TELEGRAM_API_HASHboşsa "Kod gönder" çalışmaz..envdosyasını doldurupdocker compose restart telfiles-appyeter.
Aynı kurulum komutunu tekrar çalıştırın. Installer kendi kendini günceller, kodu çeker, container'ı yeniden inşa eder; data/ ve pgdata/ korunur.
Program açılışta GitHub'daki HEAD'i kontrol eder, yeni sürüm varsa UI'da bildirir.
Veritabanı şema migrasyonları her başlangıçta otomatik uygulanır. schema_migrations tablosu hangi versiyonların çalıştırıldığını takip eder. Eklemeli değişiklikler (yeni tablo, yeni kolon) idempotent ve her zaman güvenlidir. Kırıcı değişiklikler (kolon tipi değişikliği, yeniden adlandırma, silme) versiyonlu migrasyonlardır; her biri kendi transaction'ında çalışır — biri başarısız olursa uygulama başlamayı reddeder ve veriye dokunulmadan önce harekete geçebilmeniz için hatayı log'a yazar.
Migrasyonlar hem yeni kurulumda (_SCHEMA zaten nihai durumu oluşturmuştur) hem de mevcut kurulumda (şema hâlâ eski haldedir) güvenli çalışacak şekilde yazılmalıdır. Değişikliğin hâlâ gerekip gerekmediğini kontrol eden DO $$ BEGIN … END $$; koruması kullanın:
-- Güvenli kolon rename (hem eski hem yeni kurulumda idempotent)
DO $$ BEGIN
IF EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_name = 'files' AND column_name = 'context'
) THEN
ALTER TABLE files RENAME COLUMN context TO caption;
END IF;
END $$;
-- Güvenli kolon tipi değişikliği
DO $$ BEGIN
IF (SELECT data_type FROM information_schema.columns
WHERE table_name = 'files' AND column_name = 'file_size') = 'bigint' THEN
ALTER TABLE files ALTER COLUMN file_size TYPE NUMERIC USING file_size::NUMERIC;
END IF;
END $$;| Konum | İçerik | Sıfırlama |
|---|---|---|
data/ui_auth.json |
UI parola hash'i + oturum token'ları | sil → admin döner |
data/credentials.json |
Telegram API kimlikleri (env'den önce gelir) | sil → .env'e düşer |
data/settings.json |
sync_interval_seconds (clamp [900, 86400]) |
sil → 7200s |
data/accounts/{id}/telfiles.session |
Telethon hesap oturumu | sil → o hesap için yeniden giriş |
data/hunter_events.jsonl |
Avcı detay log'u (restart'a dayanıklı) | sil → log temizlenir |
downloads/ |
İndirilen dosyalar (<grup>/... ve _hunter/<kanal>/...) |
her dosya bağımsız silinebilir |
pgdata/ |
PostgreSQL ana veritabanı | silmeyin |
| Değişken | Zorunlu | Not |
|---|---|---|
TELEGRAM_API_ID |
✅ | my.telegram.org → API Development Tools |
TELEGRAM_API_HASH |
✅ | aynı yer |
TELEMETRY_SECRET |
❌ | Sadece kendi telemetri sunucunuzu kuruyorsanız |
| Katman | Teknoloji |
|---|---|
| Backend | Python 3.12 · FastAPI · Uvicorn · asyncio |
| Telegram | Telethon (MTProto) |
| Veri | PostgreSQL 16 · asyncpg · pgvector |
| Web scraping | aiohttp + CloakBrowser (stealth Chromium, Stage 2 için) |
| Frontend | Vanilla JS · CSS · HTML (build adımı yok) |
| Dağıtım | Docker Compose |
Konteyner imajı ~302 MB. Tüm runtime state host volume'larında.
app/
├── main.py # FastAPI + endpoint'ler + arka plan döngüleri
├── database.py # asyncpg veri katmanı + şema migrasyonları
├── telegram_client.py # Çok-hesap Telethon yönetimi
├── sync.py # Geçmiş + realtime mesaj tarayıcısı
├── hunter.py # Kanal Avcısı pipeline + per-dosya indirme
├── link_prober.py # Bağlantı erişilebilirlik kontrolcüsü
├── transfer.py # FTP / SFTP / yerel dizin transfer motoru
├── embed.py # pgvector semantik gömme API'si
├── embed_worker.py # Arka plan embedding işçisi
├── magnet_metadata.py # Magnet URI meta veri çekici
├── torrent_parse.py # .torrent dosya ayrıştırıcı
├── telemetry.py # Anonim istatistik gönderici
├── ui_auth.py # Web parolası + oturum
└── static/ # index.html, app.js, i18n.js — single-page UI
docs/
├── banner.png # README başlığı
├── screenshots/ # UI ekran görüntüleri (dil klasörleri: tr/en/de/ru/zh)
└── OPERATOR.md # DB sorguları, sorun giderme, hunter kaynakları
# Backend (Python) değişikliği → rebuild gerekir
docker compose up -d --build telfiles-app
# Frontend (HTML/JS/CSS) → bind-mount; sadece tarayıcıyı yenile
# app/static/* host'tan canlı serve edilir
# Loglar / DB
docker logs -f telfiles-app
docker exec -it telfiles-postgres psql -U telfiles -d telfilesDaha fazlası: docs/OPERATOR.md — DB sorguları, kanal avcısı kaynak listesi, yaygın sorun → çözüm tablosu.
Etkinleştirildiğinde 24 saatte bir, sadece şu üç alan gönderilir:
- Üye olduğunuz kanalların username'i (zaten herkese açık Telegram bilgisi)
- Her kanalın üye sayısı (yine herkese açık)
- O kanaldan indekslediğiniz dosya sayısı
Gönderilmez: mesajlar, dosya adları, dosya içerikleri, telefon numarası, hesap bilgisi, IP.
Tanımlayıcı: kurulumda yerel üretilen rastgele bir UUID. Kapatmak: Ayarlar → Hesap → "Kullanıcı istatistiklerini gönder" checkbox'ı.
Kendi alıcı endpoint'inizi kullanmak için app/telemetry.py içindeki ENDPOINT_URL'i değiştirin.
GitHub Issues üzerinden.
Bu proje açık kaynaktır; lisans dosyası ekleninceye kadar tüm hakları yazara aittir. Fork / değişiklik / yeniden dağıtım için lütfen iletişime geçin.
TelFiles yalnızca sizin Telegram hesabınızla zaten erişebildiğiniz içeriği yerel olarak indeksler. Telegram Hizmet Şartları'na uygun kullanım kullanıcının sorumluluğundadır. Yazar(lar), aracın kötüye kullanımından doğacak sonuçlardan sorumlu değildir.





