41554 blogs · [ { "id": "01a0d59c-d857-7078-b6bc-d25a55dc3114", "title": "Black screen after Secure Boot: option ROM hashes with sbctl", "url": "https://blog.iodev.org/blog/secure-boot-black-screen-option-rom-hashes/", "published_at": "2026-09-18T23:15:00+00:00" }, { "id": "01a0874b-72fa-7037-bcac-9ef35faed3fa", "title": "Controlling an Inwerk standing desk from a QML bar widget", "url": "https://blog.iodev.org/blog/desk-height-widget-inwerk-ble/", "published_at": "2026-09-06T16:30:00+00:00" }, { "id": "01a0874b-72fb-70a1-9603-220220a80fd9", "title": "Flashing Kinesis Advantage 360 firmware with Nix", "url": "https://blog.iodev.org/blog/flashing-kinesis-advantage-360-with-nix/", "published_at": "2026-09-06T10:00:00+00:00" }, { "id": "01a0874b-72fb-70a1-9603-22022163ccbe", "title": "Fixing desktop stutter during Nix builds with sched_ext", "url": "https://blog.iodev.org/blog/desktop-stutter-nix-builds-sched-ext/", "published_at": "2026-09-01T15:10:00+00:00" }, { "id": "01a0874b-72fb-70a1-9603-2202218e52fb", "title": "DMARC reports are the only outside view of your mail", "url": "https://blog.iodev.org/blog/dmarc-reports-outside-view-of-your-mail/", "published_at": "2026-08-11T19:00:00+00:00" }, { "id": "01a0874b-72fb-70a1-9603-2202225563b8", "title": "Kernel 6.18.38 inflates diskstats latency by the uptime", "url": "https://blog.iodev.org/til/diskstats-latency-uptime-kernel-6-18-38/", "published_at": "2026-08-09T20:30:00+00:00" }, { "id": "01a0874b-72fb-70a1-9603-22022320825b", "title": "Attic Has No Metrics Endpoint: Monitoring It via SQLite", "url": "https://blog.iodev.org/blog/attic-metrics-sqlite/", "published_at": "2026-08-09T20:00:00+00:00" }, { "id": "01a0874b-72fb-70a1-9603-220223f5c071", "title": "Open Source Firefox Extensions: Most Don't Publish Code", "url": "https://blog.iodev.org/blog/open-source-firefox-extensions/", "published_at": "2026-08-09T18:30:00+00:00" }, { "id": "01a0874b-72fb-70a1-9603-2202240481e3", "title": "iPhone notifications in Home Assistant with ANCS", "url": "https://blog.iodev.org/blog/iphone-notifications-home-assistant-ancs/", "published_at": "2026-08-08T22:30:00+00:00" }, { "id": "01a0874b-72fb-70a1-9603-220224bd9e7c", "title": "archive.is stopped loading: EDNS Client Subnet", "url": "https://blog.iodev.org/blog/archive-is-edns-client-subnet/", "published_at": "2026-08-07T15:45:00+00:00" }, { "id": "01a0874b-72fb-70a1-9603-220224c32960", "title": "Relaying outbound mail: DKIM, client IPs, and visibility", "url": "https://blog.iodev.org/blog/relaying-outbound-mail-dkim-client-ips-visibility/", "published_at": "2026-07-26T14:30:00+00:00" }, { "id": "01a0874b-72fb-70a1-9603-220224d5aae1", "title": "Running mail at home without sending mail from home", "url": "https://blog.iodev.org/blog/running-mail-at-home-without-sending-from-home/", "published_at": "2026-07-24T20:30:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a7eaadc35", "title": "Recovering an old Acronis TIB archive on Linux", "url": "https://blog.iodev.org/blog/recovering-old-acronis-tib-archive-linux/", "published_at": "2026-07-24T07:31:43+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a7f4d1c29", "title": "Reverse-engineering the iOmeter Bridge's Bluetooth onboarding", "url": "https://blog.iodev.org/blog/reverse-engineering-iometer-bridge-ble-onboarding/", "published_at": "2026-07-18T22:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a80426ae9", "title": "Inside the SwitchBot AI Art Frame", "url": "https://blog.iodev.org/blog/inside-the-switchbot-ai-art-frame/", "published_at": "2026-05-26T22:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a80beb255", "title": "Matter over Thread across VLANs", "url": "https://blog.iodev.org/blog/matter-over-thread-across-vlans/", "published_at": "2026-05-15T20:30:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a80c224ed", "title": "Lelit Mara X touchscreen with ESPHome", "url": "https://blog.iodev.org/blog/mara-x-touchscreen-esphome/", "published_at": "2026-05-14T17:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a811084fb", "title": "Building Kinesis Advantage 360 Pro Firmware with Nix", "url": "https://blog.iodev.org/blog/zmk-nix-kinesis-adv360/", "published_at": "2026-05-01T16:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a8131aef9", "title": "A Year of Hetzner Auction Data: Where Did All the Servers Go?", "url": "https://blog.iodev.org/blog/hetzner-auction-supply-crunch/", "published_at": "2026-04-27T21:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a81dbda85", "title": "Running a RIPE Atlas Probe on NixOS with Starla", "url": "https://blog.iodev.org/blog/running-starla-ripe-atlas-probe-nixos/", "published_at": "2026-04-24T22:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a8279cd63", "title": "Why do agents always speak text?", "url": "https://blog.iodev.org/blog/agent-io-text-tax/", "published_at": "2026-04-20T22:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a83718ebb", "title": "Receiving OpenRouter OTLP traces in Grafana Tempo", "url": "https://blog.iodev.org/blog/openrouter-traces-grafana-tempo/", "published_at": "2026-04-09T22:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a84438221", "title": "AliExpress orders fulfilled by Amazon", "url": "https://blog.iodev.org/til/aliexpress-amazon-fulfillment/", "published_at": "2026-04-09T12:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a845c2b91", "title": "Push metrics from Cloudflare Workers to Prometheus via OTLP", "url": "https://blog.iodev.org/blog/cloudflare-workers-otlp-prometheus/", "published_at": "2026-04-04T22:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a84b60051", "title": "Cloudflare for SaaS: your old provider can silently keep your domain", "url": "https://blog.iodev.org/blog/cloudflare-saas-custom-hostname-conflict/", "published_at": "2026-03-30T18:10:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a85afd3b4", "title": "Caddy ACME DNS-01 fails with split-horizon DNS", "url": "https://blog.iodev.org/til/caddy-tls-resolvers-split-horizon/", "published_at": "2026-03-11T21:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a85edfef9", "title": "DNS-over-QUIC (DoQ) upstream support in Blocky", "url": "https://blog.iodev.org/blog/dns-over-quic-blocky/", "published_at": "2026-03-11T20:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a86d3c570", "title": "Adding machinectl support to microvm.nix", "url": "https://blog.iodev.org/blog/adding-machinectl-support-to-microvm-nix/", "published_at": "2026-03-08T14:05:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a87c67999", "title": "curl: certificate rejected (28) on Cloudflare sites", "url": "https://blog.iodev.org/blog/curl-example-com-certificate-rejected/", "published_at": "2026-03-04T22:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a885a846b", "title": "qBittorrent throughput tuning on NixOS over WireGuard", "url": "https://blog.iodev.org/blog/tuning-qbittorrent-nixos/", "published_at": "2026-02-21T14:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a88b5e0f3", "title": "BBR and larger TCP buffers for WireGuard tunnels", "url": "https://blog.iodev.org/til/bbr-tcp-buffers-wireguard/", "published_at": "2026-02-21T12:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a89a31b8b", "title": "iBGP over WireGuard for DN42 routing", "url": "https://blog.iodev.org/blog/dn42-ibgp-homelab/", "published_at": "2026-01-26T18:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a89cab6dc", "title": "Monitoring the *arr Stack on NixOS", "url": "https://blog.iodev.org/blog/monitoring-arr-stack-nixos/", "published_at": "2026-01-25T14:30:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a89eb6a17", "title": "Bypassing Telekom's Cloudflare Congestion with Tailscale", "url": "https://blog.iodev.org/blog/tailscale-cloudflare-bypass/", "published_at": "2026-01-23T21:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a8aaa69e8", "title": "Netzbremse: Telekom throttles peering with Cloudflare", "url": "https://blog.iodev.org/blog/telekom-peering-rant/", "published_at": "2026-01-22T19:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a8acc04ae", "title": "Live homelab stats on a Cloudflare Workers blog", "url": "https://blog.iodev.org/blog/live-homelab-stats-page/", "published_at": "2026-01-21T19:05:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a8b5231c7", "title": "CAKE SQM traffic shaping on NixOS", "url": "https://blog.iodev.org/blog/cake-traffic-shaping-nixos/", "published_at": "2026-01-18T21:40:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a8b639fe3", "title": "WireGuard failover on NixOS with Prometheus", "url": "https://blog.iodev.org/blog/wireguard-failover-nixos/", "published_at": "2026-01-18T14:00:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a8c5c79c5", "title": "Booting into Rescue Mode with a Locked Root Account", "url": "https://blog.iodev.org/til/systemd-locked-root-rescue/", "published_at": "2024-07-28T14:30:12+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a8d3c6440", "title": "Auto-updating ESPHome Devices with Home Assistant", "url": "https://blog.iodev.org/blog/auto-updating-esphome-devices-home-assistant/", "published_at": "2023-10-29T10:05:59+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a8dfd58f2", "title": "Telekom Glasfaser with Zyxel SFP ONT", "url": "https://blog.iodev.org/blog/telekom-glasfaser-zyxel-sfp-ont/", "published_at": "2023-10-22T10:51:07+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a8ef97ef7", "title": "My Favorite Firefox Extensions", "url": "https://blog.iodev.org/blog/favorite-firefox-extensions/", "published_at": "2023-10-02T07:54:00+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a8faa1547", "title": "Cloning a live OPNsense ZFS disk to another disk", "url": "https://blog.iodev.org/blog/clone-opnsense-disk-live/", "published_at": "2023-10-01T22:05:13+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a8fc756ac", "title": "GRUB2 boot loop protection by limiting slot retries", "url": "https://blog.iodev.org/blog/grub2-avoid-boot-loops/", "published_at": "2023-09-18T21:32:13+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a8ffc2749", "title": "Great Hugo Reference Template", "url": "https://blog.iodev.org/til/great-hugo-reference-template/", "published_at": "2022-08-29T19:31:08+00:00" }, { "id": "01a0874b-72fc-71ab-bda7-a44a90ed6a61", "title": "Caddy Security: one OAuth app for multiple vhosts", "url": "https://blog.iodev.org/blog/oauth-multiple-vhosts/", "published_at": "2022-08-28T16:47:13+00:00" } ] posts Claim your blog
Back to blog.iodev.org
Blog · corpus.blog/blogs/blog.iodev.org/posts

blog.iodev.org

blog.iodev.org

2026

2024

2023

2022