Skip to content

pubgo/gocron

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

348 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gocron - Distributed scheduled Task Scheduler

Release Downloads License

English | 简体中文

A lightweight distributed scheduled task management system developed in Go, designed to replace Linux-crontab.

📖 Documentation

Full documentation is available at: document

✨ Features

  • Web Interface: Intuitive task management interface
  • Second-level Precision: Supports Crontab expressions with second precision
  • High Availability: Database-lock-based leader election, automatic failover in seconds
  • Task Retry: Configurable retry policies for failed tasks
  • Task Dependency: Supports task dependency configuration
  • Access Control: Comprehensive user and permission management
  • 2FA Security: Two-Factor Authentication support
  • Agent Auto-Registration: One-click installation for Linux/macOS
  • Multi-Database: MySQL / PostgreSQL / SQLite support
  • Log Management: Complete execution logs with auto-cleanup
  • Notifications: Email, Slack, Webhook support

🚀 Quick Start (Docker)

The easiest way to deploy is using Docker Compose:

# 1. Clone the project
git clone https://github.com/gocronx-team/gocron.git
cd gocron

# 2. Start services
docker-compose up -d

# 3. Access Web Interface
# http://localhost:5920

For more deployment methods (Binary, Development), please refer to the Installation Guide.

🔷 High Availability (Optional)

Deploy multiple gocron instances pointing to the same MySQL/PostgreSQL database. Leader election is automatic — no extra configuration needed. SQLite runs in single-node mode.

# Node 1
./gocron web --port 5920

# Node 2 (same database)
./gocron web --port 5921

See the High Availability Guide for setup details, K8s deployment, and environment variable overrides.

📸 Screenshots

Scheduled Tasks
Scheduled Tasks

Agent Auto-Registration Task Management
Agent Auto-Registration Task Management
Statistics Notifications
Statistics Notifications

🤝 Contributing

We warmly welcome community contributions!

How to Contribute

  1. Fork the repository

  2. Clone your fork

    git clone https://github.com/YOUR_USERNAME/gocron.git
    cd gocron
  3. Install dependencies

    pnpm install
    pnpm run prepare
  4. Create a feature branch

    git checkout -b feature/your-feature-name
  5. Make your changes and commit

    git add .
    pnpm run commit  # Use interactive commit tool
  6. Push and create a Pull Request

    git push origin feature/your-feature-name

Commit Message Guidelines

This project uses commitizen and cz-git for standardized commit messages.

Instead of git commit, use:

pnpm run commit

This will guide you through an interactive prompt to create properly formatted commit messages like:

  • feat(task): add task dependency configuration
  • fix(api): fix task status update issue
  • docs: update API documentation

Other Ways to Contribute

  • 🐛 Report Bugs: Please submit via GitHub Issues
  • 💡 Feature Requests: Share your ideas through Issues
  • 📝 Documentation: Help improve our documentation

📄 License

This project is licensed under the MIT License. See the LICENSE file for details.

Star History

Star History Chart

About

distributed scheduled task management system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Go 71.5%
  • Vue 23.8%
  • Shell 2.6%
  • Makefile 1.4%
  • JavaScript 0.7%