Schedule anything, forget everything
HTTP calls, shell commands, Docker exec -- all on a cron schedule with full output history, timeouts, retries, and alerts. No more silent failures.
What can you schedule?
HTTP endpoints, shell commands, and container exec -- with timezone support and per-app scoping.
How it works
Define your job
Choose what to run: an HTTP call to any endpoint, a shell command, or a docker exec into a specific container.
Set the cron expression
Use standard cron syntax (e.g., */5 * * * * for every 5 minutes) or pick from presets like hourly, daily, weekly.
Configure timeout & retries
Set a maximum execution time and how many times sh0 should retry on failure before giving up and alerting you.
sh0 runs it on schedule
The built-in scheduler fires your job, captures all output, logs the result, and alerts you if anything goes wrong.
The execution pipeline
Built-in scheduler -- no system crontab, no external dependencies
Everything you need
Full cron expressions
Standard 5-field cron syntax with presets for common schedules. Every minute to once a year -- whatever you need.
Execution history with stdout/stderr
Every run is logged with full output, exit code, duration, and timestamp. Debug failures without SSH.
Configurable timeouts
Set a maximum execution time per job. If it exceeds the limit, sh0 kills the process and marks it as timed out.
Retry on failure
Configure automatic retries with customizable delay between attempts. Stop transient failures from becoming incidents.
Per-app or standalone
Attach jobs to a specific app (runs inside its container) or create global jobs that run independently on the host.
Failure alerts
Get notified via Slack, Discord, Telegram, email, or webhook when a job fails. No more silent cron failures at 3 AM.
The old way
- x Edit crontab via SSH
- x No execution logs
- x Silent failures
- x No timeout handling
- x One server = one crontab
- x Check logs manually
The sh0 way
- Visual cron editor in dashboard
- Full stdout/stderr history
- Instant failure alerts
- Configurable timeouts
- Per-app or global jobs
- Dashboard shows all runs
Questions & answers
What cron expressions are supported? +
Can I see the output of my cron jobs? +
What happens when a job times out? +
Can I run jobs inside specific containers? +
Is there a retry mechanism? +
Can I trigger a cron job manually? +
Never miss a scheduled task
Cron jobs with history, timeouts, retries, and alerts. No more silent failures.