Türkçe-öncelikli, açık kaynak anime takip uygulaması —
self-host (tek kullanıcı) veya online (çok kullanıcı) çalışır.
An open-source, Turkish-first anime tracker — runs self-hosted (single user)
or online (multi-user).
Online Site / Live Site · Sürümler / Releases · sicakcikolata.com · Türkçe · English
Sıradan bir listeden fazlası: büyük servislerde (MyAnimeList, AniList, Kitsu) bulunmayan izleme sırası (kronoloji), filler takibi ve duygu işaretleri gibi özellikleri tek araçta toplar. Verisi sende kalır; bulutta bir hesaba bağımlı değilsin.
Listeye kişisel not ekleme özelliği bu projenin çıkış noktasıydı. :)
- Liste ve takip: anime ekle/düzenle, izleme durumu (İzleniyor, Tamamlandı, Bırakıldı, Beklemede, İzlenecek), izlenen bölüm sayısı.
- MyAnimeList içe aktarma: MAL'dan dışa aktardığın listeyi (XML) yükle; katalogda eşleşenler listene işlenir, eşleşmeyenler öneri/onaya düşer. (AniList içe aktarma planlanıyor.)
- Kişisel notlar: her animeye kendi notunu, kendi özetini/çevirini ekle.
- Yayın takibi: devam eden serilerin yeni bölüm tarihleri; yayın günü/saati (UTC saklanır, kendi saat dilimine çevrilir), AnimeSchedule entegrasyonu.
- İzleme sırası / kronoloji: seri içi izleme sırasını işaretle ("şu bölümden sonra şu filme geç" gibi) — hangi sırayla izleneceğini gösterir.
- Filler takibi: filler bölümleri işaretle ve gör.
- Duygu işaretleri: puan değil, ruh hali — anime başına 3'e kadar (Güldürdü, Hüzünlendirdi, Heyecanlandırdı, Korkuttu, Düşündürdü, Şaşırttı, Dinlendirdi, Motive Etti, Sıktı).
- Tür ve etiket yönetimi, öneri sistemi, istatistikler.
- Türkçe-öncelikli içerik: kataloğun konuları özgün Türkçe yazılır; kişi tarafından yapılan çeviri eklenene kadar İngilizce sürüm "Auto-translated from Turkish" etiketiyle gösterilir.
- İki dilli arayüz (TR/EN) ve başlık dili tercihi.
Aynı kod tabanı, MULTI_USER_MODE ayarıyla iki şekilde çalışır:
| Self-host (tek kullanıcı) | Online (çok kullanıcı) | |
|---|---|---|
| Giriş | Yok | Kayıt + giriş, roller (admin / moderatör / üye) |
| Veri | Tamamen sende, yerel | Sunucuda, kullanıcı başına; kendi listeni (izleme durumu, notlar, duygular) istediğin an dışa aktarabilirsin (JSON) |
| Katalog | Merkez katalogdan çekilir | Merkez katalogdan çekilir; üye eklemeleri önce onaya düşer, yalnızca onaylananlar merkeze gönderilir (onaylanmayanlar o kurulumda kalır) |
| Kurulum | Windows .exe / Docker / manuel | Docker / sunucu |
Self-host davranışı her zaman korunur; online özellikleri yalnızca çok-kullanıcı modunda devreye girer.
1) Windows (.exe) — en kolay, self-host
Bu bağlantıdan .exe'yi indir
ve çalıştır. Kurulum, gerekli XAMPP'ı kurar, Apache + MySQL'i
başlatır ve veritabanı + site dosyalarını oluşturur. Bittiğinde tarayıcıdan
http://localhost/anime_tracker/ adresine git.
Windows SmartScreen: Uygulama imzalı olmadığı için "Windows protected your PC" görebilirsin; normaldir. "More info" → "Run anyway" ile devam et.
2) Docker — online ya da self-host
.env dosyasını .env.example'dan oluştur. Online (çok kullanıcı) için:
MULTI_USER_MODE=true
ADMIN_USER=adminkullanici
ADMIN_PASS=enaz8karakterSonra docker compose up -d. MULTI_USER_MODE verilmezse self-host (girişsiz)
çalışır. İlk admin yalnızca ilk açılışta, verdiğin bilgilerle oluşturulur.
3) Manuel (XAMPP / LAMP)
AnimeTracker/files/içeriğini web kök dizinine (htdocs/anime_tracker/) kopyala.config_example.php'yiconfig.phpolarak kopyalayıp veritabanı bilgilerini gir.http://localhost/anime_tracker/adresine git; kurulum sihirbazı şemayı yükler.
Animelerin meta verisi (başlık, konu, linkler, kronoloji) küratörlü bir merkez katalogdan gelir. Self-host ve online kurulumlar bu katalogu çeker; online kurulumda bir yönetici bekleyen bir animeyi onayladığında kayıt merkeze otomatik geri gönderilir (imzalı, sunucudan sunucuya) ve diğer kurulumlar bir sonraki güncellemede alır. Kişisel veriler (izleme durumu, notlar, duygular) asla katalogla paylaşılmaz — yalnızca liste dışa/içe aktarmayla taşınır.
Proje açık kaynak ve self-host olduğu için kaç kurulum olduğunu bilmenin başka
yolu yok. Bu yüzden her kurulum yalnızca bir kez, ilk kullanımda projenin
sayacına anonim tek bir istek atar: rastgele bir kurulum kimliği (o an üretilir,
adresinizden veya veritabanınızdan türetilmez), kurulu sürüm ve mod (kişisel /
çok kullanıcılı). Başarılı gönderimden sonra bir daha hiçbir şey gönderilmez.
Site adresi, üye sayısı, anime ya da izleme verisi gönderilmez; sayaç IP
adresini saklamaz. Toplamlar herkese açıktır (ping.php?stats=1) ve yönetici
panelinde görünür. Kapatmak için config.php'de define('INSTALL_PING', false);.
Arayüz şu an Türkçe ve İngilizce. Yeni bir dil eklemek için üç adım:
files/lang/en.phpdosyasını kopyala,files/lang/<kod>.phpolarak kaydet (<kod>iki harfli dil kodu —id,de,es…). Yönetici arayüzü de isteniyorsafiles/lang/admin_en.phpiçin aynısını yap.- Dizideki değerleri çevir; anahtarlara dokunma
(
'add_anime.label.chain_name' => '...'— soldaki taraf aynı kalmalı). files/functions/i18n_helpers.phpiçindeki izinli diller listesine kodu ekle ve bir pull request gönder.
Sözlüğün tamamını bitirmen gerekmez. Çevrilmemiş bir anahtar İngilizceye düşer, ekranda bozuk bir şey görünmez — yani dosyayı parça parça tamamlayabilirsin.
Bir uyarı: çoğu metinde ufak bir hata zararsızdır, ama sonucu olan metinler bir insan gözünden geçmeli — 18+ içerik uyarısı, silme onayları, spoiler kapısı ve yedekleme/geri yükleme uyarıları. Bunlar yanlış çevrilirse sonuç yalnızca "tuhaf" olmaz; kullanıcı yanlışlıkla veri silebilir ya da spoiler görebilir.
PHP · MariaDB / MySQL · vanilla JavaScript · XAMPP veya Docker. Copyright (C) 2025-2026 Okan Sümer. Lisans: GPL-2.0. Yapay zekâ kullanımı için bkz. AI_NOTICE.md.
More than a plain list: it brings together features the big services (MyAnimeList, AniList, Kitsu) lack — watch order (chronology), filler tracking, and emotion marks — in one tool. Your data stays with you; you are not tied to a cloud account.
The ability to add personal notes to a list is what started this project. :)
- List and tracking: add/edit anime, watch status (Watching, Completed, Dropped, On-Hold, Plan to Watch), watched-episode count.
- MyAnimeList import: upload your exported MAL list (XML); matches are written to your list, misses go to suggestions/approval. (AniList import planned.)
- Personal notes: add your own note, your own summary/translation per anime.
- Airing tracking: next-episode dates for ongoing series; broadcast day/time (stored in UTC, shown in your timezone), AnimeSchedule integration.
- Watch order / chronology: mark the in-series viewing order ("after this episode, watch this movie") so the right order is clear.
- Filler tracking: mark and see filler episodes.
- Emotion marks: not a score, a mood — up to 3 per anime (Made me laugh, Made me sad, Excited me, Scared me, Made me think, Surprised me, Relaxed me, Motivated me, Bored me).
- Genre and tag management, recommendations, statistics.
- Turkish-first content: catalog synopses are written natively in Turkish; until a human translation is added, the English version is shown with an "Auto-translated from Turkish" label.
- Bilingual UI (TR/EN) and a title-language preference.
The same codebase runs two ways via MULTI_USER_MODE:
| Self-host (single user) | Online (multi-user) | |
|---|---|---|
| Login | None | Sign-up + sign-in, roles (admin / moderator / member) |
| Data | Entirely yours, local | On the server, per user; you can export your own list (watch status, notes, emotions) anytime (JSON) |
| Catalog | Pulled from the central catalog | Pulled from it; member additions go through approval, only approved ones are pushed back (the rest stay on that install) |
| Install | Windows .exe / Docker / manual | Docker / server |
Self-host behavior is always preserved; online features only activate in multi-user mode.
1) Windows (.exe) — easiest, self-host
Download the .exe and run
it. The installer sets up the required XAMPP, starts Apache + MySQL, and creates the
database and site files. When done, open http://localhost/anime_tracker/.
Windows SmartScreen: Because the app is unsigned you may see "Windows protected your PC"; this is expected. Click "More info" → "Run anyway".
2) Docker — online or self-host
Create .env from .env.example. For online (multi-user):
MULTI_USER_MODE=true
ADMIN_USER=adminuser
ADMIN_PASS=atleast8charsThen docker compose up -d. Without MULTI_USER_MODE it runs self-host (no login).
The first admin is created only on first start, from the values you provide.
3) Manual (XAMPP / LAMP)
- Copy the contents of
AnimeTracker/files/into your web root (htdocs/anime_tracker/). - Copy
config_example.phptoconfig.phpand fill in the database details. - Open
http://localhost/anime_tracker/; the setup wizard loads the schema.
Anime metadata (title, synopsis, links, chronology) comes from a curated central catalog. Self-host and online installs pull from it; in online mode, when an admin approves a pending anime, the record is automatically pushed back to the central server (signed, server-to-server) and other installs receive it on their next update. Personal data (watch status, notes, emotions) is never shared with the catalog — it only moves via list export/import.
Being open source and self-hostable, the project has no other way of knowing how
many installations exist. So each install sends one anonymous request, once,
on first use, to the project counter: a random install id (generated at that
moment, not derived from your address or database), the installed version, and
the mode (personal / multi-user). After the first successful send nothing is ever
sent again. Your site address, member count, anime and watch data are not
sent; the counter does not store the IP address. Totals are public
(ping.php?stats=1) and shown in the admin dashboard. To switch it off:
define('INSTALL_PING', false); in config.php.
The interface currently ships in Turkish and English. To add a language:
- Copy
files/lang/en.phptofiles/lang/<code>.php(<code>is the two-letter language code —id,de,es…). Do the same forfiles/lang/admin_en.phpif you also want the admin screens. - Translate the values, leave the keys alone
(
'add_anime.label.chain_name' => '...'— the left-hand side must not change). - Add the code to the allowed-languages list in
files/functions/i18n_helpers.phpand open a pull request.
You do not have to finish the whole dictionary. Any key you have not translated falls back to English, so nothing on screen breaks — the file can be completed a piece at a time.
One caution: in most strings a small mistake is harmless, but the ones that carry consequences deserve a human check — the adult-content warning, delete confirmations, the spoiler gate, and the backup/restore warnings. If those are mistranslated the result is not merely awkward; a user can lose data or be shown a spoiler.
PHP · MariaDB / MySQL · vanilla JavaScript · XAMPP or Docker. Copyright (C) 2025-2026 Okan Sümer. License: GPL-2.0. For the use of AI in building this project, see AI_NOTICE_EN.md.