Self-hosting · automation
Self-hosted assistant on a Raspberry Pi 5
A small always-on box to keep my week under control, with no ports open to the internet.
- Syncs the university's ICS export into a dedicated Google Calendar every 30 minutes, upserting by UID. Running on the Pi since October 2026.
- Deletions need two consecutive runs to agree, so a truncated feed never deletes anything.
- Self-hosted ntfy alerts after repeated failures, reachable only through an outbound Cloudflare Tunnel with WAF and rate limiting. No open ports.
The campus CDN answers non-browser clients with 403. A browser User-Agent fixes it, and the sync refuses to touch the calendar unless the body really starts with BEGIN:VCALENDAR.