---
title: "The expiry tracker: licenses, policies and warranties that remind themselves"
subtitle: "One box that watches every renewal date and pings you weeks before it lapses — not a $49-499/month SaaS"
url: "https://rxed.ai/blueprints/expiry-tracker-engine.html"
id: "expiry-tracker-engine"
version: "1.0"
published: "2026-07-28"
kind: "workflow"
setup_effort: "An afternoon"
setup_hours: "3-6"
running_cost_usd_per_month: "0-6"
paid_software_usd_per_month: "0"
time_saved: "saves ~0.1 h/week for the owner at one check a month"
time_saved_basis: "15–30 minutes each, doing it by hand: walking round checking dates and certificates"
runs_by: "owner"
data_location: "your-server"
data_location_note: "Policies and documents stay on your box; only the reminder email leaves."
first_to_break: "the n8n mail step — SMTP credentials expire or the sender starts getting filtered"
failure_signal: "silent"
problem: "Business licenses, insurance policies, domain names and equipment warranties all quietly expire, and nobody notices until something goes wrong. Software that tracks this for you costs $49 to $499 every month."
fix: "One list on your own small server holds every renewal date with the document attached. Every morning it checks the dates and emails you weeks before anything lapses, so renewing becomes routine instead of a scramble."
tools: ["Homebox", "n8n", "Docker"]
tech: ["Homebox", "n8n"]
repos:
  - name: "Homebox"
    url: "https://github.com/sysadminsmedia/homebox"
  - name: "n8n"
    url: "https://github.com/n8n-io/n8n"
categories: ["Documents & archive", "Reminders", "Self-hosted", "n8n", "Privacy"]
source: "RXed AI News — https://rxed.ai"
---
# The expiry tracker: licenses, policies and warranties that remind themselves

> One box that watches every renewal date and pings you weeks before it lapses — not a $49-499/month SaaS

## Before you start

- Every renewal date has to be typed in once — the list is only as good as what you enter
- A machine that stays on, so the daily date check actually runs
- A mailbox n8n can send through, and an address you read every day

## What breaks first

the n8n mail step — SMTP credentials expire or the sender starts getting filtered. Reminders stop and you find out from a lapsed policy; send yourself a weekly heartbeat email.

A single record of every license, policy, warranty and renewal you own, plus an engine that emails you weeks before any of them lapse. Built on two free, self-hosted tools instead of the $49–499/month "expiration reminder" SaaS.

 

### The problem

 Every small business collects a pile of dates that matter more than they look: the trade license, the professional indemnity policy, the fire-safety certificate, the domain name, the SSL certificate, the software license, the van's roadworthiness test. None of these live in one place. Most live in an inbox, a drawer, or nowhere, and they only resurface the week they lapse — or the week after, when a claim is refused because cover expired in March, or the domain has dropped into a redemption auction, or a supplier contract quietly auto-renews at a price nobody re-checked. Software exists to fix exactly this: Expiration Reminder prices its plans from $49 to $499 a month depending on how many items you track (Capterra, 2026); Remindax adds WhatsApp alerts on top and caps its free tier at a handful of items. Both are solving a genuinely small problem — a list and an alarm clock — with a genuinely recurring bill.

 

### The architecture

 
 [ Licenses & permits ]   [ Insurance policies ]   [ Domains & SSL ]   [ Equipment warranties ] 
         └─────────────────────┴──────────────────┴──────────────────┘ 
                       ▼  one entry each, renewal date + PDF attached 
 [ Homebox (self-hosted) — the record ] 
         │  issue date, warranty/expiry date, attached document, custom fields, tags 
         ▼  checked every morning, 07:00 
 [ n8n (self-hosted) — the reminder engine ] 
         ├─ 90 days out → quiet heads-up email 
         ├─ 30 days out → reminder with the renewal link or contact 
         └─ 7 days out → urgent ping to Telegram or SMS 
         ▼ 
 [ You renew it, log the new date back in Homebox ] — the countdown resets itself 
 

 The split is the same one used across this library: the record owns the truth, n8n owns the clock. Homebox was not built for licenses and insurance policies — it was built to catalogue physical items for a home user — but its item model already has everything this needs: a purchase/issue date, a warranty-expiration date, file attachments, custom fields and tags. Create one location called "Renewals," add one item per license, policy, domain or warranty, and the reminder engine has a real API to query.

 

### Tool choices — and why

 Homebox (AGPL-3.0, 6.2k stars, active — v0.25.0, April 2026, 2,300+ commits) is the record. It runs as a single Go binary in one Docker container, uses SQLite, and idles under 50MB of memory — there is no simpler self-hosted option in this library. Its built-in warranty and document tracking, plus per-item custom fields, is exactly the shape a renewal date needs: a thing, a date it expires, and a file proving it. Its documented REST API is what n8n reads.

 n8n (Sustainable Use License — free self-hosted internal use, 198k stars, active 2026) is the engine — the same one already running the invoice chaser, the service-due reminders and the review-request engine elsewhere in this library, if you have built those. One schedule trigger, one HTTP Request node against Homebox's API, a filter on days-until-expiry, three branches, one write-back confirmation.

 Why not Homebox's own notifications? As of this write-up (v0.25.0) Homebox does not ship a built-in reminder or alert engine — it is a record, not an alarm clock. n8n is the missing alarm clock, and it is one you likely already run.

 Why not a spreadsheet with a "days left" column? A spreadsheet turns red once you open it. This library's whole premise is that a date you have to remember to check is a date that slips. This one emails you first.

 Monthly cost. Software: €0 for both tools. Hosting: €0 if this joins the box already running other blueprints from this library; €5–6/month for a small VPS if this is the first one you deploy. SMS is optional and pay-per-message; email and Telegram do the job for free.

 

### Setup outline

 1. Deploy Homebox (official Docker image, one container, SQLite — no separate database to run). Create one location called "Renewals." 
 2. Do the import pass: pull every license, insurance policy, domain, SSL certificate and equipment warranty you can find from invoices, the inbox, and memory. This is the real work of the afternoon — the same rule as every list-based blueprint in this library: the record is the asset, the workflow is the easy part. 
 3. For each item: set the warranty-expiration field to the actual renewal date, attach the PDF or a photo of the document, tag it (license, insurance, domain, warranty) so the n8n filter can target categories differently later. 
 4. Build the n8n workflow: schedule trigger, 07:00 daily → HTTP Request to Homebox's items endpoint → filter for anything expiring within 90, 30 or 7 days → three branches (email, email, Telegram or SMS for the 7-day urgent case). 
 5. Add a "renewed" habit, not just a workflow step: the same afternoon you renew something, update the date in Homebox before you forget. That single habit is what keeps the countdown honest. 
 6. Test with one item set to expire tomorrow before switching the workflow on for your real records.

 

### Pitfalls — the real ones

 Homebox is the index, not the vault. Its attachment storage is fine for quick reference, but the original documents still belong in your normal backup rotation — this library's 3-2-1 backup blueprint already covers that, and it is not optional for anything insurance-related. 
 A wrong renewal date beats no automation. Intervals vary wildly — a domain renews yearly (or every 1-10 years if pre-paid), an equipment warranty might be 2 or 10 years, a professional certification might be 1 or 3. Import each with its real interval, never a guessed default. 
 Insurance grace periods are not universal. Some policies lapse same-day on non-renewal, some carry a short grace window, some do not. Check the actual policy wording once — do not assume a buffer exists that isn't written down. 
 Keep one list. If a parallel spreadsheet survives "just in case," the automation quietly becomes decoration. Retire the old list the day this goes live. 
 Don't track what already renews itself. Many SSL certificates auto-renew every 90 days via Let's Encrypt with zero action needed — track only the domains and certs that don't, or the reminder list fills with noise nobody reads.

 

### Verified repos

 
 [Homebox](https://github.com/sysadminsmedia/homebox) — AGPL-3.0, 6.2k stars, active (v0.25.0, April 2026) 
 [n8n](https://github.com/n8n-io/n8n) — Sustainable Use License (free self-hosted internal use), 198k stars, active (2026)
 

 
 Get the next blueprint as it publishes — free, practical, verified tooling only.

 [Subscribe](https://subscribe.rxed.ai) · Want this audited or extended? DM [@RXed_EU](https://x.com/RXed_EU)
