This guide covers day-to-day usage of Cronicle for managing scheduled tasks on the Haiven server.
Open your browser and navigate to:
https://scheduler.haiven.local
adminadminThe main navigation bar includes:
| Tab | Purpose |
|---|---|
| Home | Dashboard with active jobs and server status |
| Schedule | Calendar view of upcoming jobs |
| Jobs | Job list and management |
| Job History | Execution history and logs |
| Admin | Server configuration (admin only) |
The dashboard shows:
- Active Jobs - Currently running jobs
- Queued Jobs - Jobs waiting to run
- Server Health - CPU, memory, and disk status
- Recent Activity - Latest job executions
Warning indicators appear for:
- Failed jobs
- Jobs taking longer than expected
- Server resource issues
| Field | Description |
|---|---|
| Title | Descriptive name for the job |
| Category | Group (Maintenance, Monitoring, AI Services, Backups) |
| Plugin | Execution type (Shell Script recommended) |
| Target | Server group to run on (usually "All Servers") |
Jobs use standard bash scripting:
#!/bin/bash
set -e # Exit on error
echo "=== Job Started - $(date) ==="
# Your commands here
docker ps
echo "=== Job Complete ==="
Scripts have access to these mounted paths:
| Path in Container | Host Path | Access |
|---|---|---|
/mnt/apps/docker |
/mnt/apps/docker |
Read-only |
/host/scripts |
/usr/local/bin |
Read-only |
/host/var/log |
/var/log |
Read-only |
/mnt/models |
/mnt/models |
Read-only |
The Docker socket is mounted, so you can run:
# List containers
docker ps
# Restart a service
docker restart llama-swap
# View logs
docker logs --tail 50 echo
# Check container health
docker inspect cronicle --format='{{.State.Health.Status}}'
Use exit codes to signal job status:
#!/bin/bash
set -e
ERROR_COUNT=$(grep -c "ERROR" /host/var/log/syslog || echo 0)
if [ "$ERROR_COUNT" -gt 100 ]; then
echo "HIGH ERROR COUNT: $ERROR_COUNT"
exit 1 # Triggers failure notification
fi
echo "Error count OK: $ERROR_COUNT"
exit 0
| Type | Example |
|---|---|
| Once | Run at a specific date/time |
| Daily | Run every day at a set time |
| Hourly | Run every hour at :00, :15, :30, or :45 |
| Weekly | Run on specific days of the week |
| Monthly | Run on specific days of the month |
| On Demand | Manual execution only (no schedule) |
Daily at 2 AM:
- Type: Daily
- Time: 02:00
Every hour:
- Type: Hourly
- Minute: 00
Weekly on Sunday:
- Type: Weekly
- Days: Sunday
- Time: 03:00
Every 15 minutes:
- Type: Hourly
- Minutes: 00, 15, 30, 45
For critical jobs, create push monitors:
Shows all job executions with:
- Start/end times
- Duration
- Exit code
- Quick access to logs
Use filters to find specific runs:
- By job name
- By date range
- By status (success/failure)
Configure how long to keep history:
Use Categories: Group related jobs
- Maintenance
- Monitoring
- AI Services
- Backups
Clear Naming: Include purpose and frequency
- Good: Daily Log Analysis
- Bad: script1
Example template:
#!/bin/bash
set -e
echo "=== $(date) - Starting $0 ==="
# Main work
do_something
# Cleanup
rm -f /tmp/work_file
echo "=== $(date) - Complete ==="
.env filebash -n script.shecho for outputstdbuf -oL prefix)docker ps | grep cronicledocker logs traefik | grep croniclecurl http://localhost:3012/ping scheduler.haiven.localCleans systemd journal logs to prevent disk fill:
#!/bin/bash
set -e
journalctl --vacuum-time=30d
journalctl --vacuum-size=2G
Reports system errors and health metrics:
#!/bin/bash
set -e
# Counts errors, failed logins
# Checks container health
# Reports disk usage
Alerts on low disk space:
#!/bin/bash
set -e
FREE_GB=$(df / | awk 'NR==2 {print int($4/1024/1024)}')
if [ "$FREE_GB" -lt 10 ]; then
exit 1 # Triggers notification
fi
Archives logs to network storage:
#!/bin/bash
set -e
tar -czf /mnt/nas1/backups/logs/haiven/logs-$(date +%Y-%m-%d).tar.gz /host/var/log
find /mnt/nas1/backups/logs/haiven -mtime +90 -delete
Scans for new GGUF models:
#!/bin/bash
set -e
cd /mnt/apps/docker/ai/llama-swap
python3 scripts/discover-models.py
/mnt/apps/docker/infrastructure/cronicle/README.md/_server-setup/10/10e-cronicle-scheduler.md/_server-info/00-SERVICES-INDEX.md