Skip to content
RepoRanker
flohoss

flohoss/gocron

Placed · $5Live in production

A task scheduler built with Go and Vue.js that allows users to specify recurring jobs via a simple YAML configuration file. The scheduler reads job definitions,

A task scheduler built with Go and Vue.js that allows users to specify recurring jobs via a simple YAML configuration file. The scheduler reads job definitions, executes commands at specified times using cron expressions, and passes in environment variables for each job.

549 6 since joining 19GoPush 9d agoListed 3mo ago1 open issueMIT
backupbackupscrondockergolangscheduleschedulertask
  • Go69.8%
  • Vue17.3%
  • TypeScript5.6%
  • JavaScript3.1%
  • Dockerfile2.1%
  • CSS1.0%
  • HTML0.8%
  • Shell0.3%
View on GitHub

$5

Paid so far for this repo's place on the board. The place is permanent: it holds until another repo spends more, and then this one moves down, never off. Taking the top of the board from here costs $13.

Report a problem

2 Reviews

114634550211463455021mo ago
TypeScriptPythonShell

GoCron offers a straightforward self-hosted scheduler configured through YAML. Jobs can inherit default schedules and environment variables, run multiple commands in sequence, and be managed through a Go service with a Vue interface and SQLite state. Docker deployment, environment-variable overrides, a configurable database location, health checks, API documentation, and optional installation of common backup tools make it especially convenient for homelab and backup automation.

Schedulers need strong failure semantics, so the documentation should clearly cover overlapping runs, time zones and daylight-saving changes, retries, timeouts, missed schedules, concurrency limits, process termination, output retention, and notification delivery. Secrets should not live casually in YAML or environment variables without guidance for Docker secrets or external stores. Pre-installing powerful backup and container tools also increases the image’s supply-chain surface, so minimal images and signed releases would help. GoCron is best for users who want a visible, configuration-driven alternative to scattered cron entries, provided they test recovery and locking behavior before entrusting it with critical backups.

gocron is a strong example of a small infrastructure tool with practical deployment in mind. The idea is simple: define recurring jobs in YAML, run them on cron schedules, pass job-specific environment variables, and manage the system through a Go backend plus Vue UI. The README does a good job showing the intended usage with Docker and Compose, the default config path, --config overrides, SQLite storage behavior, GC_ environment overrides, screenshots in dark/light mode, API docs screenshots, downloadable Linux binaries, and a development workflow with Go tests plus e2e tests. The Go dependencies also make sense for this shape of app: Echo, Huma for API ergonomics/docs, robfig/cron for scheduling, Viper for configuration, SQLite, SSE, validation, and filesystem watching. Simulating the product, I’d expect to mount a config folder, start the container on port 8156, then inspect scheduled jobs and output through the web UI. That is a clean operator experience. The improvement area is around safety and observability. Because this executes shell commands on a schedule, the README should be explicit about trust boundaries, permissions, working directories, log retention, command timeouts, and failure notification behavior. I’d also like to see a sample config.yaml excerpt directly in the README, not only linked, because config-driven tools live or die by how quickly a user can adapt the first example.