English | 简体中文
A lightweight distributed scheduled task management system developed in Go, designed to replace Linux-crontab.
Full documentation is available at: document
- 🚀 Quick Start - Installation and deployment guide
- 🤖 Agent Auto-Registration - One-click task node deployment
- ⚙️ Configuration - Detailed configuration guide
- 🔌 API Documentation - API reference
- 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
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:5920For more deployment methods (Binary, Development), please refer to the Installation Guide.
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 5921See the High Availability Guide for setup details, K8s deployment, and environment variable overrides.
| Agent Auto-Registration | Task Management |
![]() |
![]() |
| Statistics | Notifications |
![]() |
![]() |
We warmly welcome community contributions!
-
Fork the repository
-
Clone your fork
git clone https://github.com/YOUR_USERNAME/gocron.git cd gocron -
Install dependencies
pnpm install pnpm run prepare
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes and commit
git add . pnpm run commit # Use interactive commit tool
-
Push and create a Pull Request
git push origin feature/your-feature-name
This project uses commitizen and cz-git for standardized commit messages.
Instead of git commit, use:
pnpm run commitThis will guide you through an interactive prompt to create properly formatted commit messages like:
feat(task): add task dependency configurationfix(api): fix task status update issuedocs: update API documentation
- 🐛 Report Bugs: Please submit via GitHub Issues
- 💡 Feature Requests: Share your ideas through Issues
- 📝 Documentation: Help improve our documentation
This project is licensed under the MIT License. See the LICENSE file for details.




