Paolo Ronco
PORTFOLIO
This article stems from a very real problem: knowing if your backups are actually working, without having to manually check scattered logs, opaque cron scripts, and unreliable notifications.
In my homelab (which still remains a house, not an enterprise data center) I decided to apply Business Continuity and Disaster Recovery principles typical of professional environments:
The result is an architecture that revolves around Ubuntu Server, redundant backups (Oracle Cloud + Hetzner), Google Cloud for logging and a workflow n8n which validates every day that everything went well.
This article explains the architecture, the technical choices and the Why. The n8n workflow is a paid product: I describe it transparently, but without releasing sensitive or one-to-one replicable information.
Before this architecture, the flow was the classic:
This approach has three structural flaws:
Hence the decision to consciously over-engineer.
The goals were not to “do cool things”, but to be operationally calm:
Ubuntu Server (on‑prem / Proxmox) ├─ cron ├─ rsync / rclone ├─ structured logs │ ├─ Google Cloud Logging (streaming) └─ Google Cloud Storage (snapshot log) │ ▼ n8n (monitoring & validation) │ ├─ check log presence ├─ deterministic parsing ├─ content analysis └─ alert / ticket
Key separation:
No SSH, no API to the server. Zero trust in the data producer.
Ubuntu Server is the starting point:
Each backup job produces logs with:
START
RSYNC_END
SUMMARY
END
run_id
rc
This allows:
It's not logging "for humans", it's logging for the machines.
Making multiple copies is not enough.
There Business Continuity requires:
Because of this:
Logging is divided into two complementary channels.
It is used for:
YYYY/MM/DD
This bucket is the source of truth for monitoring.
The n8n workflow does not perform backups.
It only does three things, in order:
If something is missing or not correct → alert.
The value is not “automation”, but the validation.
This workflow:
He doesn't sell magic.Sells time saved And mistakes avoided.
The sensitive code remains mine.The architecture and principles are shared.
If n8n were to be compromised:
This is zero trust applied to a homelab.
In exchange I got:
This project was not born to demonstrate that it can be done.
It was born because I didn't want to waste time doubting backups anymore.
Even in a homelab, data matters.And when data matters, Logging is part of backup, not a detail.
Over-engineering? Perhaps.But it is over-engineering that sleeps peacefully.
Your email address will not be published. Required fields are marked *
Comment *
Name *
Email *
Website
Save my name, email, and website in this browser for the next time I comment.
Post Comment