Skip to content

macronom/catenvis

Repository files navigation

📺 Catenvis

Keep track of your TV series — and never miss a new episode.

A small, self-hosted web app to follow shows, mark episodes and seasons as watched, and see at a glance which series have new episodes waiting.

License: GPL v3 PHP 8.3+ Data: TMDB Self-hosted

Catenvis – the "My series" dashboard

Series and episode data comes from TMDB.

The Movie Database (TMDB)

This product uses the TMDB API but is not endorsed or certified by TMDB.

Features

  • Follow series and track watched episodes per user
  • Dashboard sorted by progress, with a badge for unseen aired episodes
  • Mark single episodes, whole seasons, or a series as watched — including a one-click "watched" action right on the dashboard card
  • Defer series you want to keep but watch later ("on hold")
  • Add series via TMDB search; bulk import from an IMDb CSV export
  • Multilingual content and interface (English, German, French, Spanish, Italian) with per-user language; the UI language is easy to extend via flat JSON catalogs in lang/
  • Admin-managed accounts with forced first-login password change and brute-force protection on the login
  • Daily background refresh of new episodes via cron

Requirements

  • PHP 8.3+ (extensions: pdo_mysql, curl)
  • MySQL / MariaDB
  • Apache with mod_rewrite
  • A TMDB API key (v4 read access token or v3 API key)

Installation

  1. Database: create a database and user and load the schema — the exact statements are in the header of sql/schema.sql.
  2. Configuration: copy config/config.sample.php to config/config.php (outside the web root, git-ignored) and fill in the database credentials, the TMDB key, and base_url.
  3. Dependencies: run composer install.
  4. Web server & cron: point the web root at html/ and set up the daily update cron. A full walkthrough is in deploy/SETUP.md.
  5. First user: create the initial admin with php bin/create_user.php <username> <password> --admin.

Updating: after pulling a new version, apply pending schema changes with php bin/migrate.php (idempotent; see sql/migrations/README.md).

Translations

UI translations are flat JSON files in lang/ (English is the source language and needs no file). To add a language, copy lang/de.json to lang/<code>.json, set its "__language__" label, and translate the values; it appears in the settings automatically. Check completeness with php bin/check_translations.php. See lang/README.md.

License

Catenvis is free software, licensed under the GNU General Public License v3.0.

About

Self-hosted TV series tracker — follow shows, track watched episodes, and see new episodes at a glance. PHP 8.3 + TMDB.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors