How to Use

DevOps ToolBox is a growing collection of small, browser-based utilities — no backend, nothing sent to a server. Today: two cron tools (generate & convert), two systemd tools (a timer generator and a crontab converter), a config converter (.env ↔ docker-compose ↔ Kubernetes), and an interactive cheatsheet (git, docker, kubectl, curl, tar, ssh, systemd, cron).

Cron Expression Generator — build a schedule

Pick values for each field (every / every N / specific) — no cron syntax to memorize. The expression, a plain-English description, and the next run times update live, and you get the correct syntax for Unix, AWS EventBridge, GitHub Actions, Kubernetes, and Quartz. Set a time zone (defaults to your local one) for the CRON_TZ recipe, or hit “Open in Converter” to change zones.

Weekday mornings

Set Minute = 0, Hour = 9, Day-of-week = Mon–Fri. You get Unix 0 9 * * 1-5, AWS cron(0 9 ? * 2-6 *), and Quartz 0 0 9 ? * 2-6 — the tool handles AWS’s ? rule and 1–7 weekday numbering for you.

Something complex

Hours 1, 9, 23 on days 1, 7, 9 of the month: set Hour = specific 1, 9, 23 and Day-of-month = specific 1, 7, 9 → 0 1,9,23 1,7,9 * *.

Cron Timezone Converter — move it between zones

Already have an expression? Paste it — Unix, AWS cron(…), or Quartz — pick a source and target zone, and see the next runs in UTC, the source zone, and the target zone, with DST gaps and overlaps flagged.

A schedule crossing DST

0 9 * * 1-5 in America/New_York is 13:00 UTC in summer but 14:00 UTC in winter — so no single UTC line is right all year. The Converter shows each exact time and the fix: CRON_TZ=America/New_York with the original line, which runs at 09:00 New York time on any machine.

systemd Timer Generator — build a .timer + .service

systemd timers are increasingly recommended over cron (better logging, dependency ordering, missed-run catch-up). Pick the schedule the same way as the cron generator and get a valid OnCalendar= plus a ready-to-paste .timer + .service pair, with Persistent= (catch up missed runs), RandomizedDelaySec=(jitter), an optional timezone, and the systemctl enable --now commands.

crontab → systemd — translate an existing job

Already have a crontab line? Paste it with its command and get the units directly. It handles the trap most converters miss: cron's day-of-month/day-of-week is an OR, but systemd has none — so 0 9 1 * 1 correctly becomes two OnCalendar= lines. Shell commands are wrapped in /bin/sh -c, and @reboot/@daily map to the right systemd form.

.env ↔ docker-compose ↔ Kubernetes — convert config

Paste environment variables in one format — a .env file, a docker-compose environment: block, or a Kubernetes ConfigMap/Secret— and get all the others, with a copy button per format. It handles the traps: .env quoting, compose list-vs-map form, and the big one — a Secret’s data: must be base64 while stringData: is plain text. It encodes for you and offers both Secret forms. Everything stays in your browser, so pasting real secrets never leaves your machine.

A ConfigMap from your .env

Paste LOG_LEVEL=debug and friends, switch to the ConfigMap tab, and you get a valid data: block with a DNS-safe metadata.name. The Secret (base64) tab does the base64 dance so your values don’t arrive garbled.

DevOps Cheatsheet — copy-ready commands

Interactive cheatsheets for git, docker, kubectl, curl, tar, ssh, systemd (systemctl/journalctl), and cron. Unlike a static wall of text, commands have fill-in placeholders — type your branch, unit, or interval and copy a command that’s ready to run. Instant search across every topic, destructive commands (like git reset --hard) clearly flagged, and an “explain a command” box that labels the flags. The cron and systemd entries link straight into the generators above.

The one gotcha

Cron has no time zone — it fires on the machine’s local clock. When two zones observe Daylight Saving Time differently, no single static cron line is correct all year; the answer is CRON_TZ=<zone> with your original expression. Both tools surface it automatically.