Week in Review: Apr 13 - Apr 19, 2026
This week was all about tightening up the loose ends in my homelab and tackling some long-standing issues that had been plaguing me. The biggest win was finally resolving a frustrating problem with my heartbeat script, which had been silently exiting after just 10 checks due to a pipefail issue. With this fix, I’ve now got a more reliable monitoring system in place, and I was able to surface and address several other silent issues that had been lurking in the background.
Infrastructure Cleanup
The heartbeat fix was just the tip of the iceberg. As I dug deeper, I realized that several of my containers were not set to restart automatically after an Unraid reboot, which meant they would silently stay down until I manually intervened. I’ve now added the unless-stopped flag to 12 containers, including tdarr, syncthing, and Nextcloud, so they’ll come back online automatically after a reboot. I also restarted the cron daemon, which had been dead for several hours, and got my trading bot scheduler and dashboard up and running again.
In addition to these fixes, I took the opportunity to do some general infrastructure cleanup. I stopped the worldmonitor-ais-relay service, which was stuck in a restart loop, and made a note to revisit this issue once I’ve resolved the underlying problem with my AIS key. I also identified a few other areas that need attention, including updating to v1.0.0+ and getting my emulators back online.
Emulator Testing and Bug Fixes
Speaking of emulators, I did manage to squeeze in some testing this week. I ran a full test suite on one of my projects and identified three bugs that needed fixing. The first issue was an AnnotateScreen canvas overflow problem, which was causing the SVG canvas to extend past the header and making it impossible to reach the Save/Cancel buttons. I fixed this by adding an onLayout height measurement and scaling the canvas to fit when the image is taller than the available space.
The second bug was a stale data issue on the PhotoDetailScreen, which wasn’t reloading tags and notes after returning from the EditPhoto screen. I swapped out useEffect for useFocusEffect, which ensures that the data reloads every time the screen comes into focus. The third and final bug was a missing projectId parameter on the ProjectDetailScreen Export nav, which was causing the PDF title to default to “Site Documentation” instead of the actual project name.
With these bugs fixed, I’m now confident that my emulator is working as expected, and I’ve got a solid foundation for further development.
Security Investigations
This week also saw some security-related activity, including an investigation into an invalid auth attempt on my Home Assistant instance. After tracing the incident to an iOS HA app user on a residential IP address in Florida, I auto-banned the IP address and made a note to keep an eye out for any future suspicious activity.
I also did some research on STIM, which involved digging through SEC filings and analyzing recent earnings reports. It’s always interesting to see how companies are performing, and this exercise helped me stay up-to-date on the latest developments in the industry.
SEO Fixes and Monitoring
Finally, I spent some time tweaking my website’s SEO settings and monitoring its performance. I wired up the Search Console API for all four of my sites and set up a daily cron job to push summary data on impressions, clicks, and top queries. I also fixed some indexing issues on griswoldlabs.com by adding a trailing slash to the Astro config and setting up 301 redirects for orphan tag pages.
One notable win was restoring a deleted blog post, home-assistant-local-voice-control.md, which had been ranking well for Wyoming Protocol queries and had accumulated 696 impressions in Search Console. I’ve now removed it from the redirects list, and it’s live again at a 200 status code.
Next Priorities
As I look ahead to the next week, my top priorities are tackling the remaining infrastructure cleanup tasks, including updating to v1.0.0+ and getting my emulators back online. I’ll also be keeping an eye on my website’s SEO performance and monitoring for any security incidents. With my heartbeat script now working reliably, I’m feeling more confident in my ability to detect and respond to issues as they arise. Bring it on!
Enjoyed this post?
Subscribe to get notified when I publish new articles about homelabs, automation, and development.
No spam, unsubscribe anytime. Typically 2-4 emails per month.