Cronat is a powerful, web-based cron job scheduling service that allows you to schedule and manage webhook calls without maintaining your own servers. Built with Django and Celery, it provides a reliable, scalable solution for automated task execution.
- 🕒 Flexible Scheduling: Schedule jobs using either simple intervals (seconds) or full cron expressions
- 🔗 Webhook Support: Execute HTTP POST requests to any endpoint on schedule
- 🔄 Automatic Retries: Built-in retry mechanism with exponential backoff for failed requests
- 📊 Execution Logs: Detailed logging of all job executions with success/failure tracking
- 🎛️ Web Dashboard: User-friendly interface to manage schedules and view execution history
- 🔐 Multi-Provider Auth: Login with Google, GitHub, or Twitter/X
- 📱 Real-time Controls: Start, stop, pause, and manually trigger jobs
- 🔒 Secure: Encrypted webhook URLs and custom header support for authentication
- ⚡ High Performance: Redis-backed task queue with Celery workers
- 🐳 Docker Ready: Containerized deployment with Docker Compose
- Docker and Docker Compose
- Make
- Python 3.12+ (for local development)
- uv - Python package installer
-
Clone the repository:
git clone https://github.com/yourusername/cronat.git cd cronat -
Install dependencies:
make pip
-
Start the application:
make docker
-
Access the application:
- Web interface: http://localhost:8888
- Flower monitoring: http://localhost:5555
- Admin panel: http://localhost:8888/admin
-
View logs:
make logs
- Backend: Django 5.1+ with PostgreSQL database
- Task Queue: Celery with Redis broker
- Frontend: Django templates with TailwindCSS and DaisyUI
- Authentication: Django Allauth with social providers
- Monitoring: Flower for Celery task monitoring
- Deployment: Docker Compose with production-ready configuration
- Sign in with your preferred OAuth provider
- Navigate to "Scheduled Jobs" → "New Schedule"
- Configure your job:
- Name: Descriptive name for your job
- Webhook URL: The endpoint to call (must be HTTPS for production)
- Schedule: Choose either:
- Interval: Simple seconds-based scheduling (e.g., 3600 for hourly)
- Cron Expression: Full cron syntax (e.g.,
0 9 * * 1-5for weekdays at 9 AM)
- Custom Headers: Optional authentication headers
- Toggle: Enable/disable jobs without deleting them
- Test: Manually trigger a job execution
- Monitor: View detailed execution history and logs
- Encrypted Storage: Webhook URLs are encrypted in the database
- Idempotency: Unique request IDs prevent duplicate executions
- API Access: Full REST API with authentication
- Webhook Failure Alerts: Email/Slack notifications
- Advanced Scheduling: Timezone support, holiday handling
- Job Templates: Reusable job configurations
- Team Management: Multi-user organizations
- Analytics Dashboard: Execution statistics and insights
- Webhook Payload Support: Custom request bodies and methods
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Django and Celery
- UI powered by TailwindCSS and DaisyUI
- Authentication via Django Allauth
- Deployment orchestrated with Docker
Cronat - Simplifying cron job management, one webhook at a time. 🚀


