I Cut My Homelab Logs 95% With This 10-Minute Fix (2026)

Susiloharjo

Five Rules That Cut My Homelab Logs by 95%

It is Tuesday morning. I am cleaning up disk space because my homelab server is screaming at 94% capacity. I run du -sh /var/log/* and the output stops me: 200GB. Just logs. Uncompressed. From 18 services I forgot I was running.

The largest offender: docker/json-file logs from a Prometheus container that has been logging every single scrape target every 15 seconds for eight months. 87GB by itself. Next: nginx access logs, 34GB, no rotation configured. Then Grafana, 22GB, debug level still on from a troubleshooting session in November.

I deleted 190GB in about ten minutes. Not because I was reckless. Because none of it was indexed. None of it was searchable. None of it had ever been read.

Read more

How to Fix Linux Menu Icons for Portable Electron Apps

Linux desktop menu showing an Electron application shortcut with its icon properly rendered beside the system tray

How to Fix Linux Menu Icons for Portable Electron Apps

You downloaded a Linux app as a portable folder or a raw binary — Antigravity IDE, a portable VS Code, a side-loaded Electron tool. You wrote a .desktop file, dropped it in ~/.local/share/applications/, and the app is gone from the menu. The launcher grid shows nothing. The search box finds nothing. You open the .desktop file and the Icon= line points at a perfectly valid PNG discover how 3 bash aliases saved me 10 hours last week, yet the system acts like the icon does not exist learn how to resize your Ubuntu VM disk step by step.

The problem is almost never the icon file. The problem is whitespace in the path.

GNOME, KDE, and most freedesktop-compliant desktop environments parse .desktop files with a config parser that is unusually strict about spaces. A path like /home/ubuntu/Downloads/Antigravity IDE/resources/app/resources/linux/code.png will silently fail to load for two reasons: the unquoted space inside Icon= breaks the parser, and even when the parser survives, the desktop file validator (which runs when update-desktop-database regenerates the cache) treats the entry as malformed and drops it.

I burned an hour on this the first time. The second time I wrote the fix down. This is the four-step version that survives every Electron portable app I have thrown at it.

Read more

Beyond Microservices: Adopting 4 AI-Native Development Patterns in 2026

Susiloharjo

Beyond Microservices: Adopting 4 AI-Native Development Patterns in 2026 Published: March 2026 | Category: AI Development | Author: Susiloharjo Introduction: The End of Microservices Era The microservices architecture has dominated software development for nearly a decade. Since Martin Fowler popularized the pattern in 2014, companies large and small have adopted service decomposition to achieve scalability, … Read more

Howto resolve nginx proxy manager failed to renew ssl

nginx-error-log

  I’ve been using Nginx Proxy Manager for a couple of years now. It provides free SSL with Let’s Encrypt, is designed with security in mind, and is perfect for home networks. Today, I encountered an issue where Nginx Proxy Manager failed to renew my SSL certificate using Let’s Encrypt. This was actually a problem … Read more

How to forward proxy nginx to custom port

nginx proxy

This is a sample nginx proxy config for forwarding nonstandard SSL port to other ip/domain with a custom port, not 443 standard https port server { listen 3000 ssl; server_name xxx.domain.com; error_page 497 301 =307 https://$host:$server_port$request_uri; ssl_certificate /etc/letsencrypt/live/xxx.domain.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/xxx.domain.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam … Read more