flohoss/gocron
Live in productionA 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.
- Go69.8%
- Vue17.3%
- TypeScript5.6%
- JavaScript3.1%
- Dockerfile2.1%
- CSS1.0%
- HTML0.8%
- Shell0.3%
1 Review
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.
