A multi-server task scheduler and runner with a web UI, positioned as a more capable replacement for Cron.
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
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
Open http://localhost:8156 in your browser to view jobs and logs
- 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
A self-hosted web panel for scheduling and managing cron jobs written in Python3, JavaScript, Shell, or TypeScript.
Web UI for managing cron jobs with human-readable schedules, live logs, and per-job execution history.
Free, self-hosted PostgreSQL backup tool with Point-in-Time Recovery, automated restore verification, and a web UI.
Self-hosted web app for scheduling, running, monitoring and restoring PostgreSQL backups to local disk or S3 buckets.
Self-hosted web archiver that saves URLs, bookmarks and feeds as HTML, PDF, screenshots, WARC, media and more in plain, durable formats.