Repolode
flohoss

flohoss/gocron

A self-hosted cron-style task scheduler that defines recurring shell jobs in YAML and manages runs through a web UI.

Open-source alternative to:Windows Task Scheduler

Stars
627
Forks
23
Open issues
2
Last commit
15 days ago

What is it?

GoCron runs shell commands on cron schedules. Jobs, their schedules, environment variables, timeouts and retries are declared in a single YAML file, and changes to that file are picked up without restarting the container. Each job gets its own environment, with ${VAR} expansion in commands and per-job values overriding shared defaults.

The web UI, built with Vue.js, lets you view jobs, trigger runs manually, read logs and use a sandboxed terminal. Run history and logs are stored in SQLite, and run output streams to the browser over Server-Sent Events. Optional features include HTTP health check callbacks at job start, end and failure, per-IP rate limiting, trusted reverse proxy handling, and OIDC single sign-on.

The Docker image can install common backup and container tools such as restic, rclone, borgbackup and rsync at startup on Debian-based images.

Key features

  • 01Define jobs, cron schedules and environment variables in one YAML file.
  • 02Standard 5-field cron expressions with default inheritance across jobs.
  • 03Per-command timeouts and retries, with optional continue-on-failure.
  • 04Web UI for viewing jobs, triggering runs and reading logs.
  • 05Run history persisted in SQLite with configurable retention.
  • 06HTTP health check callbacks at job start, end and failure.
  • 07Optional OIDC single sign-on and per-IP rate limiting.

Use cases

  • Scheduling nightly backups with restic, rclone or borgbackup in a Docker host.
  • Running periodic maintenance scripts on a home server with a browser-based log view.
  • Sending heartbeat pings to a monitoring service so missed runs trigger alerts.

Quick start

  1. 1

    Run the container with Docker (creates a default config on first start)

    docker run -it --rm --name gocron -p 8156:8156 -v ./config/:/app/config/ ghcr.io/flohoss/gocron:latest
  2. 2

    Open http://localhost:8156 in your browser to view jobs and logs

  3. 3

    Or use Docker Compose with the provided service definition

Things to know

  • Software installation via the software block is Debian-only.

In collections

Topics

FAQ

What is gocron?
A self-hosted cron-style task scheduler that defines recurring shell jobs in YAML and manages runs through a web UI. GoCron runs shell commands on cron schedules. Jobs, their schedules, environment variables, timeouts and retries are declared in a single YAML file, and changes to that file are picked up without restarting the container. Each job gets its own environment, with ${VAR} expansion in commands and per-job values overriding shared defaults.
Is gocron free to use? What license does it have?
gocron is open source under the MIT license. Check the license terms before using it in commercial products.
Is gocron still maintained?
Actively maintained. The last commit to gocron was on Oct 23, 2026.
What can I use gocron for?
Scheduling nightly backups with restic, rclone or borgbackup in a Docker host. Running periodic maintenance scripts on a home server with a browser-based log view. Sending heartbeat pings to a monitoring service so missed runs trigger alerts.
How do I install gocron?
Run the container with Docker (creates a default config on first start): docker run -it --rm --name gocron -p 8156:8156 -v ./config/:/app/config/ ghcr.io/flohoss/gocron:latest Open http://localhost:8156 in your browser to view jobs and logs Or use Docker Compose with the provided service definition
Where can I get gocron?
The source code and installation instructions are on GitHub: https://github.com/flohoss/gocron

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects