gocron

A task scheduler that executes recurring jobs via cron expressions and a YAML configuration file.

gocron screenshot 1

gocron is an open-source task scheduler that executes recurring jobs based on cron expressions and a YAML configuration file. It allows users to define specific commands and schedules to automate workflows, system maintenance tasks, and routine data management. The application reads job definitions from a configuration file and executes the specified commands at the designated times, passing in necessary environment variables for each process.

The software is deployed as a server and can be run via Docker, Docker Compose, or as a standalone Linux binary. It provides a web interface built with Vue.js for monitoring and management, while the backend is written in Go. Users manage the system by editing a configuration file to define job parameters, though the server also supports a command line flag to specify a non-default configuration file path.

Key features

  • Job definition via YAML configuration files
  • Scheduling using standard cron expressions
  • Per-job environment variable customization
  • Sequential execution of multiple commands per job
  • Support for global default values for schedules and variables
  • Integration of pre-installed backup software
  • Configuration overrides via environment variables
  • SQLite database for data storage

The application includes a built-in software management system that allows users to specify required tools and versions directly in the configuration file. Supported packages include backup and utility tools such as borgbackup, rclone, restic, rsync, and kopia, as well as system tools like docker, podman, git, and logrotate. The version format for these tools depends on the installation method, with some utilizing pipx and others utilizing apt.

Administrators can customize the server environment using environment variables with the GC_ prefix, which allows for the override of settings such as the server port, log level, and health check type. Data persistence is handled by an SQLite database, the location and name of which can be modified within the configuration settings. Relative paths for the database are resolved from the directory where the configuration file is located.

This tool is designed for users who require a configuration-driven approach to task scheduling and backup automation.

Last Modified
Software TypeWeb App / Server
Platform
Last Activity1 month ago
Repository Age1 year
LicenseMIT
Open Source Software.io

Join our newsletter to get shiny new open source software delivered to your inbox. Unsubscribe anytime.