Skip to content

gocronx-team/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