The Wizardry of 3-2-1 Backups with ColdFusion Scheduled Tasks (Part 1): Start with Source Control, Then Protect the Real Data
A backup plan looks solid right up until the day it has to perform. If a ransomware note or a fat-fingered delete landed on your desk tomorrow morning, would your team restore the app and the data on a predictable timeline, with the steps written down and rehearsed?
👉 A Quick Coffee Call: need a fast sanity check on your CF backup plan or a second set of eyes on restores? Book a 15-minute call
teratech.com/coldfusion-coff…, and we will walk your team through a practical, CF‑specific checklist.
What this two-part series covers
This series turns “3-2-1” from folklore into a working routine for a production ColdFusion application.
* Part 1 (today): the foundation (source control, file backups, and the 3-2-1 structure)
* Part 2 (next week): the parts teams forget (ColdFusion Administrator settings, scheduled tasks, database strategy, restore tests, and recovery targets)
What 3‑2‑1 really means for CFML teams
It’s annoyingly simple. Three copies of your data. Two different storage types. One copy offsite and offline, or at least logically isolated. In practice, for ColdFusion Markup Language (CFML) platforms like Adobe ColdFusion, BoxLang, and Lucee, that usually looks like this:
* Primary: your production database and CF app files
* Secondary: a local encrypted snapshot or archive on different media
* Tertiary: an off-site, immutable object store with versioning enabled
Your goal is boring reliability: the same routine, the same outputs, the same verification, every day.
Step 1: Make version control the source of truth
Application code rarely belongs in “backup zip files.” Code belongs in a version control system.
A practical baseline:
1. Put all application code in a private repository (GitHub, GitLab, or Bitbucket).
2. Use tagged releases so you can roll back to an exact production state.
3. Store deployment artifacts and build steps in the repository (or alongside it), so a restore includes “how to ship.”
This is the first lever that turns a restore into a repeatable procedure instead of a scavenger hunt.
Step 2: Back up the file system parts that Git does not cover
Even when Git is rock solid, most real systems still include important files outside version control.
Focus file system backups on:
1. The web root, especially if anything deploys outside Git
2. /WEB-INF/ (custom tags, components, includes that may not be tracked)
3. Upload directories (user uploads, generated reports, exports)
4. Integration artifacts (templates, certificates, job scripts, private configuration files)
Tools teams actually use:
* rsync to a second host or to an object store
* Duplicati (free and open source) to encrypted backup targets
* Cloud provider backup tools when the application runs fully in a managed environment
Where ColdFusion Scheduled Tasks fit in Part 1
Scheduled tasks help when you treat them as orchestration.
Use scheduled tasks to:
1. Trigger a backup workflow at the same time every day
2. Verify the result (checksum file count size thresholds)
3. Record a success or failure signal into logs and alerts
A practical pattern:
* Scheduled task calls a single, locked-down endpoint such as /tasks/backup-health.cfm
* That endpoint triggers CF scripts that perform file sync and verification
* Logging includes a correlation identifier and safe metadata (counts, sizes, timestamps)
If your environment lacks Git today, a “quick and dirty” stopgap can help while you migrate:
* Create a nightly archive of the web root and upload directories
* Encrypt it
* Ship it offsite
That stopgap is a bridge. Git should be your long-term backup backbone.
A simple 3-2-1 stack you can explain to leadership
A typical, easy-to-defend structure:
1. Primary: production data and application runtime
2. Secondary: encrypted backups on a different system or different storage
3. Tertiary: offsite object storage with versioning and immutability
A retention schedule your CF team can remember:
* 7 daily
* 4 weekly
* 12 monthly
Part 1 sets the stage: source control for code, file system backups for what lives outside source control, and scheduled tasks as a reliability engine. But there’s more…
🌟Onward!
Part 2 of this CF Alive Newsletter series delves into the components that make restores succeed on the first attempt: ColdFusion Administrator settings, scheduled task backups, database strategy, and recovery target definitions.
P.S. If your CF app restore depends on a single person’s memory, it might be time for a 3-2-1 playbook your whole team can run. Send us a message or DM, and TeraTech’s ColdFusion team will turn your backup routine into a tested, repeatable recovery plan.