56,966 blogs · [ { "id": "01a0877f-b95f-725e-8829-b9861960138a", "title": "Updates to my ADS-B (and more) tracker", "url": "https://grumpy.systems/2026/updates-to-my-ads-b-and-more-tracker/", "published_at": "2026-06-02T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b986198beeb7", "title": "dirtyfrag Puppet Mitigation", "url": "https://grumpy.systems/2026/dirtyfrag-puppet-mitigation/", "published_at": "2026-05-08T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9861a31538b", "title": "Using a UDM Pro as a Proxmox Cluster Voter", "url": "https://grumpy.systems/2026/using-a-udm-pro-as-a-proxmox-cluster-voter/", "published_at": "2026-03-16T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9861aa75860", "title": "Running Proxmox Backup Server", "url": "https://grumpy.systems/2026/running-proxmox-backup-server/", "published_at": "2026-01-02T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9861b8b6bef", "title": "How A UDM Pro Saves Me $35 A Month", "url": "https://grumpy.systems/2025/how-a-udm-pro-saves-me-35-a-month/", "published_at": "2025-10-25T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9861bf73b7c", "title": "Recovering Firmware Failures on Legacy Polycom Phones", "url": "https://grumpy.systems/2025/recovering-firmware-failures-on-legacy-polycom-phones/", "published_at": "2025-04-25T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9861cdf481b", "title": "Reviewing T-Mobile's Backup Home Internet", "url": "https://grumpy.systems/2025/reviewing-t-mobiles-backup-home-internet/", "published_at": "2025-03-14T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9861d57b930", "title": "Extending a UPS with a Power Station", "url": "https://grumpy.systems/2025/extending-a-ups-with-a-power-station/", "published_at": "2025-02-21T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9861e150fa1", "title": "Taking Note Of Removed Videos From US Government Channels", "url": "https://grumpy.systems/2025/taking-note-of-removed-videos-from-us-government-channels/", "published_at": "2025-02-17T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9861e2eec4f", "title": "Monitoring Trunk Recorder with Zabbix", "url": "https://grumpy.systems/2025/monitoring-trunk-recorder-with-zabbix/", "published_at": "2025-02-14T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9861ec135ca", "title": "Downloading Your TikTok Likes and Favorites", "url": "https://grumpy.systems/2025/downloading-your-tiktok-likes-and-favorites/", "published_at": "2025-01-17T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9861fbdbcde", "title": "Winter Storm Blair As Seen By Trunk Recorder", "url": "https://grumpy.systems/2025/winter-storm-blair-as-seen-by-trunk-recorder/", "published_at": "2025-01-07T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9861fbf30f6", "title": "Remote Logging with Syslog-ng and Fluent Bit", "url": "https://grumpy.systems/2024/remote-logging-with-syslog-ng-and-fluent-bit/", "published_at": "2024-12-27T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98620a0bbde", "title": "Listening to P25 Radios with a Raspberry Pi and Trunk Recorder", "url": "https://grumpy.systems/2024/listening-to-p25-radios-with-a-raspberry-pi-and-trunk-recorder/", "published_at": "2024-09-27T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98620f27b2b", "title": "A Simple Way to Organize Stacks of Cables", "url": "https://grumpy.systems/2024/a-simple-way-to-organize-stacks-of-cables/", "published_at": "2024-09-20T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98621159bc1", "title": "Fixing Infinite Shutdowns in NUT", "url": "https://grumpy.systems/2024/fixing-infinite-shutdowns-in-nut/", "published_at": "2024-08-18T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98621fa2603", "title": "Making an ADS-B Airplane Tracker", "url": "https://grumpy.systems/2024/making-an-ads-b-airplane-tracker/", "published_at": "2024-06-15T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98622c570f3", "title": "Ramblings on Shitty Consumer Internet", "url": "https://grumpy.systems/2024/ramblings-on-shitty-consumer-internet/", "published_at": "2024-05-02T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b986234b4438", "title": "OPNSense Monitoring With Zabbix", "url": "https://grumpy.systems/2024/opnsense-monitoring-with-zabbix/", "published_at": "2024-01-11T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98623ebfa2e", "title": "Using Unifi Protect Across VLANs and VPNs", "url": "https://grumpy.systems/2023/using-unifi-protect-across-vlans-and-vpns/", "published_at": "2023-12-20T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b986248a5063", "title": "Cleaning Up Firewall Rules", "url": "https://grumpy.systems/2023/cleaning-up-firewall-rules/", "published_at": "2023-11-07T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b986252309fd", "title": "Preparing For you Homelab's Demise", "url": "https://grumpy.systems/2023/preparing-for-you-homelabs-demise/", "published_at": "2023-02-12T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b986256b5e89", "title": "Using HTTPS In Your Homelab, And Why It's Important", "url": "https://grumpy.systems/2023/using-https-in-your-homelab-and-why-its-important/", "published_at": "2023-01-25T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98625e95ca7", "title": "Please Don't Sell Space In Your Homelab", "url": "https://grumpy.systems/2023/please-dont-sell-space-in-your-homelab/", "published_at": "2023-01-06T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862695350d", "title": "My Thoughts On LastPass and Their Recent Breaches", "url": "https://grumpy.systems/2022/my-thoughts-on-lastpass-and-their-recent-breaches/", "published_at": "2022-12-30T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b986279163f2", "title": "The Cost Of Homelab Backups", "url": "https://grumpy.systems/2022/the-cost-of-homelab-backups/", "published_at": "2022-12-18T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862879fc27", "title": "Setting up a Backup 4G Internet Connection with OPNsense", "url": "https://grumpy.systems/2022/setting-up-a-backup-4g-internet-connection-with-opnsense/", "published_at": "2022-11-27T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98628ec33e7", "title": "This Site's Stack", "url": "https://grumpy.systems/2022/this-sites-stack/", "published_at": "2022-11-22T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862900ad48", "title": "Naming Things in a Homelab", "url": "https://grumpy.systems/2022/naming-things-in-a-homelab/", "published_at": "2022-08-17T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862938f046", "title": "Monitoring Traffic With OPNsense and Elastiflow", "url": "https://grumpy.systems/2022/monitoring-traffic-with-opnsense-and-elastiflow/", "published_at": "2022-06-26T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862a35dae6", "title": "I Double NAT My Network, And I'm Proud", "url": "https://grumpy.systems/2022/i-double-nat-my-network-and-im-proud/", "published_at": "2022-06-08T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862a557ecb", "title": "How My Homelab Became Critical Infrastructure During a Tornado", "url": "https://grumpy.systems/2022/how-my-homelab-became-critical-infrastructure-during-a-tornado/", "published_at": "2022-04-30T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862a751479", "title": "Sort Evolution Mail Filters with Python", "url": "https://grumpy.systems/2022/sort-evolution-mail-filters-with-python/", "published_at": "2022-01-15T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862ae98324", "title": "Keeping things updated with Apt-Dater", "url": "https://grumpy.systems/2021/keeping-things-updated-with-apt-dater/", "published_at": "2021-12-30T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862b7918e8", "title": "Addressing the log4j Vulnerability in Unifi Video 3.10.13", "url": "https://grumpy.systems/2021/addressing-the-log4j-vulnerability-in-unifi-video-3.10.13/", "published_at": "2021-12-11T06:03:41+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862b7a297f", "title": "Emby + Nginx Reverse Proxy", "url": "https://grumpy.systems/2021/emby--nginx-reverse-proxy/", "published_at": "2021-11-24T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862c76a145", "title": "ua-parser-js Compromise", "url": "https://grumpy.systems/2021/ua-parser-js-compromise/", "published_at": "2021-10-24T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862d5dad19", "title": "LVM Basics", "url": "https://grumpy.systems/2021/lvm-basics/", "published_at": "2021-10-17T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862dbb11fa", "title": "My Personal Backup Strategy", "url": "https://grumpy.systems/2021/my-personal-backup-strategy/", "published_at": "2021-10-07T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862eb5dd6b", "title": "Promxox/Rclone Offsite Backup", "url": "https://grumpy.systems/2021/promxox/rclone-offsite-backup/", "published_at": "2021-09-27T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862f85c14a", "title": "Custom Debian ISO", "url": "https://grumpy.systems/2021/custom-debian-iso/", "published_at": "2021-09-07T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9862fc062a1", "title": "Firewalld in Debian 10", "url": "https://grumpy.systems/2021/firewalld-in-debian-10/", "published_at": "2021-08-24T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98630ac019b", "title": "Puppet Without a Puppet Server", "url": "https://grumpy.systems/2021/puppet-without-a-puppet-server/", "published_at": "2021-08-05T02:28:15+00:00" }, { "id": "01a0877f-b95f-725e-8829-b986313e5eae", "title": "Fix Virtualmin Proxy with Let's Encrypt", "url": "https://grumpy.systems/2021/fix-virtualmin-proxy-with-lets-encrypt/", "published_at": "2021-06-14T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b986316007f4", "title": "Backup Google Photos (Part 2)", "url": "https://grumpy.systems/2021/backup-google-photos-part-2/", "published_at": "2021-04-15T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9863219a925", "title": "Backup Google Photos (Part 1)", "url": "https://grumpy.systems/2021/backup-google-photos-part-1/", "published_at": "2021-04-01T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98632e60cab", "title": "My Personal Burnout", "url": "https://grumpy.systems/2021/my-personal-burnout/", "published_at": "2021-03-17T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98633a3b49f", "title": "A New Site", "url": "https://grumpy.systems/2021/a-new-site/", "published_at": "2021-03-13T23:46:02+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98633a9502a", "title": "Condensed PHPMyAdmin Configuration", "url": "https://grumpy.systems/2019/condensed-phpmyadmin-configuration/", "published_at": "2019-12-02T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9863475664a", "title": "Securing Apache Sites With Saml", "url": "https://grumpy.systems/2019/securing-apache-sites-with-saml/", "published_at": "2019-10-25T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b986353f44b2", "title": "Using Foundation for Emails (Inky) in a Php Application", "url": "https://grumpy.systems/2019/using-foundation-for-emails-inky-in-a-php-application/", "published_at": "2019-09-13T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98635427aa1", "title": "About My Migration to AWS", "url": "https://grumpy.systems/2019/about-my-migration-to-aws/", "published_at": "2019-01-19T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b986356e4e07", "title": "GNUCash Template for Harland Clarke Laser 417 Checks", "url": "https://grumpy.systems/2018/gnucash-template-for-harland-clarke-laser-417-checks/", "published_at": "2018-07-31T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b986357e2046", "title": "Smart Failover With Redis Sentinel and Keepalived", "url": "https://grumpy.systems/2017/smart-failover-with-redis-sentinel-and-keepalived/", "published_at": "2017-12-18T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98635a2ef06", "title": "Adding a Firewall Rule to Debian 9", "url": "https://grumpy.systems/2017/adding-a-firewall-rule-to-debian-9/", "published_at": "2017-10-17T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98635ed424b", "title": "Autowired Traits in Symfony", "url": "https://grumpy.systems/2017/autowired-traits-in-symfony/", "published_at": "2017-10-07T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98635eeda7b", "title": "Outage September 15 2017", "url": "https://grumpy.systems/2017/outage-september-15-2017/", "published_at": "2017-09-15T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b986367b0098", "title": "Eliminating Cron Jobs in an Application", "url": "https://grumpy.systems/2017/eliminating-cron-jobs-in-an-application/", "published_at": "2017-08-28T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b986371c4112", "title": "Ubiquiti Edgerouter Openvpn Client Config", "url": "https://grumpy.systems/2017/ubiquiti-edgerouter-openvpn-client-config/", "published_at": "2017-07-23T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98637d5520a", "title": "Staggering Chef Client Runs", "url": "https://grumpy.systems/2017/staggering-chef-client-runs/", "published_at": "2017-07-20T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9863824460d", "title": "Make a Site Private but Allow Lets Encrypt", "url": "https://grumpy.systems/2017/make-a-site-private-but-allow-lets-encrypt/", "published_at": "2017-05-22T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98638fce35a", "title": "Monitoring a Mount Point With Zabbix", "url": "https://grumpy.systems/2017/monitoring-a-mount-point-with-zabbix/", "published_at": "2017-03-29T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98639266a95", "title": "A Memory Leak Visualized", "url": "https://grumpy.systems/2017/a-memory-leak-visualized/", "published_at": "2017-03-09T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98639761b13", "title": "Outages Feb 16-18 2017", "url": "https://grumpy.systems/2017/outages-feb-16-18-2017/", "published_at": "2017-03-01T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98639ea6dce", "title": "MySQL (MariaDB) Galera Cluster Restart", "url": "https://grumpy.systems/2017/mysql-mariadb-galera-cluster-restart/", "published_at": "2017-02-05T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9863a3b751d", "title": "Zabbix MySQL (MariaDB) Monitoring", "url": "https://grumpy.systems/2017/zabbix-mysql-mariadb-monitoring/", "published_at": "2017-01-31T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9863acf5b82", "title": "Proxmox 3 to 4 Upgrade Network Issue", "url": "https://grumpy.systems/2017/proxmox-3-to-4-upgrade-network-issue/", "published_at": "2017-01-23T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9863b80af6c", "title": "Mountains to Metros", "url": "https://grumpy.systems/2017/mountains-to-metros/", "published_at": "2017-01-15T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9863c053712", "title": "My Thoughts on Googles Page Speed Insights", "url": "https://grumpy.systems/2016/my-thoughts-on-googles-page-speed-insights/", "published_at": "2016-12-16T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9863cdfabe0", "title": "Installing Gluster on OpenVZ Container", "url": "https://grumpy.systems/2016/installing-gluster-on-openvz-container/", "published_at": "2016-12-03T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9863d0d6ce2", "title": "Resizing Lvm Partitions on Centos", "url": "https://grumpy.systems/2016/resizing-lvm-partitions-on-centos/", "published_at": "2016-10-26T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9863dd627e6", "title": "Doctrine Entity Testing 2.0", "url": "https://grumpy.systems/2016/doctrine-entity-testing-2.0/", "published_at": "2016-10-21T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9863e3b6794", "title": "Cheap Ebay Servers", "url": "https://grumpy.systems/2016/cheap-ebay-servers/", "published_at": "2016-10-05T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9863e5797d2", "title": "Doctrine Entity Testing", "url": "https://grumpy.systems/2016/doctrine-entity-testing/", "published_at": "2016-09-22T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9863ed1d3cd", "title": "This Is Why You Need a UPS", "url": "https://grumpy.systems/2016/this-is-why-you-need-a-ups/", "published_at": "2016-09-09T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9863f8565aa", "title": "Load Balancing With pfSense", "url": "https://grumpy.systems/2016/load-balancing-with-pfsense/", "published_at": "2016-09-01T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b9863fe2f342", "title": "GlusterFS Client Log Files Are Huge", "url": "https://grumpy.systems/2016/glusterfs-client-log-files-are-huge/", "published_at": "2016-08-11T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98640c35842", "title": "Troubleshooting Wonky Zabbix Reports", "url": "https://grumpy.systems/2016/troubleshooting-wonky-zabbix-reports/", "published_at": "2016-08-11T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b986413cc393", "title": "Building a Custom OpenVZ Template", "url": "https://grumpy.systems/2016/building-a-custom-openvz-template/", "published_at": "2016-07-27T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b98641ea05bd", "title": "Robo as a PHP Task Runner", "url": "https://grumpy.systems/2016/robo-as-a-php-task-runner/", "published_at": "2016-07-14T00:00:00+00:00" }, { "id": "01a0877f-b95f-725e-8829-b986426fe740", "title": "About", "url": "https://grumpy.systems/about/", "published_at": null }, { "id": "01a0877f-b95f-725e-8829-b986428ee429", "title": "Privacy", "url": "https://grumpy.systems/privacy/", "published_at": null } ] posts Claim your blog
Back to grumpy.systems
Blog · corpus.blog/blogs/grumpy.systems/posts

grumpy.systems

grumpy.systems

2026

2025

2024

2023

2022

2021

2019

2018

2017

2016

Undated