Skip to main content
Tuliprox includes a built-in scheduler that runs tasks on a cron-based schedule. Schedules are defined in the schedules list in config.yml.

Cron expression format

Tuliprox uses a 7-field cron expression with a leading seconds field:
The leading seconds field is non-standard — most other schedulers use 5 or 6 fields starting at minutes. Make sure to include the seconds field as the first value.

Common patterns


Schedule types


PlaylistUpdate

Triggers a full playlist fetch and processing run. Optionally, restrict the update to specific targets using the targets field.

LibraryScan

Triggers an incremental scan of all configured library.scan_directories. Only new or changed files are processed.

GeoIpUpdate

Downloads and installs a fresh GeoIP database. Useful for keeping IP-based access control and analytics accurate.

Timezone handling

Schedules run in the server’s local timezone unless you configure the timezone explicitly in your deployment environment. If you are running Tuliprox in Docker, set the TZ environment variable to control the timezone:
Cron times are interpreted in the server’s local time. If your server timezone differs from your intended schedule timezone, adjust the hour values accordingly or set TZ in your environment.

Combined example

This example:
  • Updates the m3u target every day at 08:00
  • Scans the media library every day at 20:00
  • Refreshes the GeoIP database every Monday at 03:00