Back to blog
MigrationSelf-HostedCronhubDevOpsOn-Premise

Cronhub Shutting Down? Migrate to Krons24 in 10 Minutes

Cronhub is no longer accepting new signups. If you need a cron monitoring alternative that runs entirely in your infrastructure with zero data leaving your perimeter, here's how to migrate to Krons24 — a self-hosted centralized scheduling platform — in under 10 minutes.

A

Aftab Aziz

Software Engineer, Teknomee

April 29, 20268 min read

If you've been using Cronhub to monitor your cron jobs, you've probably noticed they've stopped accepting new accounts. For existing users, that's a clear signal: it's time to find a new home for your job monitoring.

But here's the thing — most teams searching for a Cronhub replacement are looking in the wrong place. They're comparing one SaaS monitoring tool to another. What if the answer isn't another external service sending pings to your infrastructure? What if it's a platform that runs entirely inside your network, where your data never leaves your perimeter?

The Big Difference: Krons24 is Self-Hosted, Not SaaS

Krons24 isn't a cloud service you send data to. It's a complete scheduling platform you download and run in your own environment. The control plane runs as a Docker container in your infrastructure. Your job executions, logs, and schedules never leave your network. No external dependencies. No compliance headaches. Full control.

What Cronhub Does (and Why It's Fundamentally Different)

Cronhub is a SaaS monitoring service. You create monitors in their cloud dashboard, they give you a ping URL, and your cron jobs curl that URL when they run. If Cronhub doesn't receive the ping, they send you an alert. Your job execution happens on your servers, but the monitoring data flows to Cronhub's infrastructure.

That model works, but it has limitations:

  • Your monitoring data lives in someone else's cloud (compliance issue for many organizations)
  • You're paying for another SaaS subscription with per-monitor pricing
  • You still manage cron jobs locally via SSH and crontab edits
  • No execution logs — you know it ran, but not what it did or why it failed
  • No centralized control — each server has its own crontab you manage separately
  • When Cronhub shuts down or has an outage, your monitoring disappears

Krons24 is architecturally different. It's not a monitoring layer bolted onto cron. It's a complete centralized scheduling platform that replaces cron entirely, runs in your infrastructure, and gives you execution with full observability.

How Krons24 Works: Self-Hosted Control Plane + SSH Execution

Krons24 has two components, both running inside your network:

  • Control Plane (Docker container): Runs on a VM or server in your infrastructure. Hosts the web dashboard, schedules jobs, stores execution history and logs, and orchestrates job execution across your servers. This is the brain.
  • Target Servers: Your existing application servers, database servers, or any Linux machine where jobs need to run. You run a one-time setup script that creates a krons24-user with SSH access and sudoers permissions. The control plane connects to these servers via SSH to execute jobs.

When you define a job in the Krons24 dashboard (which is running in your network, accessible only to your team), you specify the command, schedule, and target server. At the scheduled time, the control plane connects to the target server via SSH, executes the command, captures stdout/stderr in real-time, and stores the logs locally in its database. No data leaves your infrastructure. Ever.

What This Means for Security and Compliance

Because Krons24 runs entirely in your environment, there are no external API calls, no third-party data processing, and no compliance concerns about sending operational data to a SaaS provider. Your audit logs, job outputs, and execution history stay in your database. You control backups, retention policies, and access.

What You Get Beyond Cron Monitoring

Krons24 isn't just monitoring cron jobs — it's replacing cron with a centralized scheduler. Here's what changes:

Scheduling

Centralized dashboard (not crontab)

Execution Logs

Full stdout/stderr stored

Manual Triggers

One-click re-run from UI

Retry Logic

Automatic with backoff

Job Templates

Pre-built for common tasks

Data Residence

100% on-premise

Instead of SSH-ing into five different servers to edit crontabs, you define all your jobs in one dashboard. Instead of tailing log files on remote servers, you view execution logs in the UI. Instead of manually re-running failed jobs via SSH, you click 'Run Now' and watch it execute in real-time. And instead of sending monitoring data to a SaaS provider, everything runs and stays in your infrastructure.

The Migration: 3 Steps, 10 Minutes

You don't need to shut down Cronhub before you start. You'll run both in parallel during the migration, then cut over when you're confident.

Step 1: Deploy the Krons24 Control Plane (3 minutes)

Download the Krons24 platform package (Docker Compose setup). It includes the control plane container, database (PostgreSQL), cache (Redis), and task queue (Celery). Run docker-compose up -d on a VM in your network. The control plane starts, and you access the dashboard at http://<your-vm-ip>:8000 (or configure nginx for HTTPS).

# Download Krons24 platform
wget https://krons24.com/download/krons24-platform.tar.gz
tar -xzf krons24-platform.tar.gz
cd krons24-platform

# Configure environment (database, Redis, etc.)
cp .env.example .env
vim .env  # Set your database password, admin credentials, etc.

# Start the platform
docker-compose up -d

# Access dashboard at http://<vm-ip>:8000
# Default login: admin / (password from .env)

The control plane is now running entirely in your infrastructure. No external dependencies. No SaaS accounts. Just a containerized platform you control.

Step 2: Add Your Servers (2 minutes per server)

For each server where you currently have cron jobs running, download the setup script and run it:

# On each target server
curl -O https://<your-krons24-vm>/scripts/krons24-setup.sh
chmod +x krons24-setup.sh
sudo ./krons24-setup.sh

The script will prompt you for the Krons24 control plane IP (the VM you deployed in Step 1) and your preferred authentication method (SSH key recommended). It creates a krons24-user, sets up sudoers permissions for job execution (bash, python3, docker, mysqldump, pg_dump, etc.), configures firewall rules to allow SSH only from the control plane IP, and creates job directories.

Then, in the Krons24 dashboard, go to Servers → Add Server. Enter the server IP, SSH port, and authentication credentials. Click Test Connection. If it succeeds, save the server. The control plane can now execute jobs on this server.

Security: Least Privilege by Default

The krons24-user gets sudoers access only for the commands it needs to run jobs (no full root). Firewall rules restrict SSH to the control plane IP only. You can audit and customize the sudoers file after setup. All communication happens over SSH within your network — no external traffic.

Step 3: Migrate Your Jobs from Cronhub (5 minutes)

Open your Cronhub dashboard and your crontab (or crontabs across multiple servers). For each job:

  • In Krons24, click New Job
  • Enter the job name and description
  • Select job type: Command (one-liner), Script (upload a .sh/.py/.php file), or HTTP (for webhooks)
  • Paste the actual command your crontab runs (not the curl to Cronhub — the real command like `bash /path/to/backup.sh`)
  • Set the schedule: cron syntax (0 3 * * *), or interval (1d, 2h, 15m)
  • Select the target server (the one you added in Step 2)
  • Configure retries: max attempts (default: 3), delay (default: 60s), strategy (fixed or exponential backoff)
  • Click Save

For common tasks like database backups or log rotation, use the template gallery. Templates auto-generate commands from a simple form (e.g., PostgreSQL backup template asks for DB host, user, password, database name — then generates the pg_dump command for you).

After creating each job, click 'Run Now' to test it immediately. You'll see real-time logs streamed to the dashboard as it executes. If it succeeds, you're done. If it fails, the logs show you exactly what went wrong — no SSH required.

Cutting Over: Replace Cron + Cronhub with Krons24

Once you've verified every job works in Krons24, you have two options:

  • Option 1 (Hybrid): Keep crontab as the scheduler, remove the curl lines to Cronhub, and monitor via Krons24 (not recommended — defeats the point of centralization)
  • Option 2 (Full Migration): Disable or delete your crontab entries entirely and let Krons24 handle all scheduling, execution, and monitoring from the centralized dashboard (recommended)

Most teams go with Option 2. No more SSH-ing into servers to edit crontabs. No more distributed scheduling logic. No more curling external monitoring services. Just one dashboard where you define, schedule, execute, and monitor all your jobs — running entirely in your infrastructure.

# BEFORE: Cronhub + Cron (distributed, SaaS-dependent)
# /etc/crontab on server-1
0 3 * * * /usr/local/bin/backup-db.sh && curl -fsS https://cronhub.io/ping/abc123

# /etc/crontab on server-2  
0 4 * * * python3 /opt/scripts/sync-data.py && curl -fsS https://cronhub.io/ping/def456

# AFTER: Krons24 (centralized, self-hosted)
# No crontabs. All jobs defined in Krons24 dashboard:
# Job 1: Daily DB Backup → server-1 → 0 3 * * * → bash /usr/local/bin/backup-db.sh
# Job 2: Data Sync → server-2 → 0 4 * * * → python3 /opt/scripts/sync-data.py
# Logs stored in Krons24's database. No external API calls. Full history queryable.

Why Self-Hosted Matters: The Compliance and Control Advantage

When you migrate from Cronhub (SaaS) to Krons24 (self-hosted), you're not just changing tools — you're changing your operational security posture:

  • Data Residency: Your job schedules, execution logs, and operational data never leave your network. No third-party data processing agreements required.
  • Compliance: If you're in healthcare (HIPAA), finance (SOC 2, PCI-DSS), or government (FedRAMP), self-hosted means you don't have to audit or certify an external vendor's infrastructure — you control it.
  • No Vendor Lock-In: You're not dependent on a SaaS provider's uptime, pricing changes, or business continuity. Krons24 runs on your infrastructure. If you want to fork it, customize it, or migrate to a different solution later, you own the data.
  • Air-Gapped Deployments: If your production environment is air-gapped or isolated (e.g., defense, critical infrastructure), Krons24 works because it doesn't need internet access. The control plane and target servers communicate over your private network.

Total Cost of Ownership

Cronhub charges per monitor (typically $5-10/month per monitor). If you have 50 jobs, that's $250-500/month. Krons24 is a one-time download with no per-job licensing. You pay for the VM that runs the control plane and your own infrastructure costs. For most teams, ROI hits in month 2-3.

Common Migration Questions

Do I need to change my existing scripts?

No. Your backup scripts, maintenance scripts, and commands stay exactly as they are. Krons24 executes the same commands you've been running via cron. You're just moving the scheduler from crontab to the Krons24 dashboard.

What if I have 100+ servers?

Run the setup script once per server (can be automated via Ansible, Puppet, or your config management tool). Add each server to Krons24 via the dashboard or bulk import via API. Jobs can target specific servers or server groups.

Can I run Krons24 in Kubernetes?

Yes. The control plane container is Kubernetes-ready. You can deploy it as a StatefulSet with a persistent volume for the database, or use an external PostgreSQL instance. Helm charts are available in the download package.

What about high availability?

The control plane can run in HA mode (multiple replicas behind a load balancer). The database (PostgreSQL) and cache (Redis) can be clustered. Job execution is idempotent — if the control plane fails mid-execution, the job won't execute twice. Detailed HA setup guide is included in the platform documentation.

Why Teams Are Moving From Cronhub to Krons24

The Cronhub shutdown is forcing the decision, but the reasons to migrate are deeper than that:

  • Security teams don't want operational data (job names, schedules, execution times) sent to external SaaS providers. Self-hosted means zero external exposure.
  • Compliance teams need audit trails and data residency guarantees. Krons24's database lives in your infrastructure, under your retention policies.
  • Engineering teams are tired of managing cron across dozens of servers. Centralized scheduling means one source of truth for all jobs.
  • Finance teams see the SaaS subscription costs piling up. Self-hosted eliminates recurring per-monitor fees.
  • Ops teams want execution logs, not just heartbeat pings. Krons24 captures full stdout/stderr for every run, with 100KB retention per execution.

This isn't just a Cronhub replacement. It's an upgrade to a self-hosted centralized scheduling platform with full execution observability, no external dependencies, and complete control.

Start the Migration Now

You don't need a maintenance window or team-wide coordination. Deploy the control plane, add your servers, migrate your jobs, and verify they work. Ten minutes from download to first job execution. Your data stays in your network. Your jobs run faster (no external API latency). Your compliance team sleeps better.

Ready to Migrate?

Download Krons24 from krons24.com, deploy the control plane in your infrastructure, and start migrating your jobs. If you need help with deployment, HA setup, or bulk migration from Cronhub, reach out — we've helped dozens of teams move from SaaS monitoring to self-hosted scheduling.

Cronhub served you well. But if you're looking for a replacement, don't just swap one SaaS tool for another. Move to a platform you control, running in your environment, with no data leaving your perimeter. That's Krons24.

Ready to schedule smarter?

Try Krons24 for your own scheduled jobs. Set up in minutes, trusted in production.