devmaker.net is a hands-on blog from a real homelab: honest guides and lessons learned on self-hosting & Linux, smart home, electronics & 3D printing, plus AI and MCP development. Tested, documented, pitfalls and all.
No space left on device: Docker logs killed Postgres
A full `/var` from never-rotated Docker json logs drove a shared Postgres container into a crash loop – result: HTTP 500 on all sites with "could not translate host name db". The article covers diagnosis, the immediate fix …
Claude Code over SSH: Keep Sessions Alive with tmux & mosh
Run Claude Code over SSH without losing sessions: tmux decouples the process from the connection, mosh survives network switches and hiccups. For …
Control FreeCAD with AI: Robust MCP Bridge + Claude
How I hooked the FreeCAD Robust MCP Bridge Server up to Claude Code on Linux – and had the AI model parametric …
Dragon Burner X-Carriage for the HevORT: A FreeCAD Build
A custom X-carriage for the HevORT that holds the Dragon Burner: stable and universal rather than tuned for low weight, with an …
Prefer step by step? Start a learning path.
AI Agents Guide: MCP, Claude Code and Local LLMs
The curated learning path: from the MCP concept through Claude Code to a local LLM
Home Assistant Guide: From First Install to Your Own Automation
The curated learning path: installation, basics, your own sensors and automations
Homelab Self-Hosting Guide
From a Debian server to a production setup – the curated learning path
~/ latest posts
Klipper Status LEDs on the Toolhead (Neopixel + led_effect)
Printer status at a glance: three Neopixels on the toolhead show homing, heating, printing and standby using the Klipper led_effect plugin. Setup via the …
LDO Orbiter v2.5: Dual-Gear Direct Drive Instead of Bowden
Honest field report: why my cheap Bondtech-clone extruders jammed after a few months in a Bowden setup – and why a genuine LDO Orbiter …
Rapido 2F upgrade: high-flow hotend for Klipper
Upgrading a Klipper printer (BTT Octopus) with the Phaetus Rapido 2F high-flow hotend: mounting, PT1000 wiring, PID tuning plus volumetric-flow and pressure-advance calibration – …
Imagen vs. gpt-image-1: AI Image Models in a Real-World Test
Imagen vs. gpt-image-1 from real practice: reference-image/logo fidelity, exposure, text artifacts and failure cases – each sent through both models with the same prompt …
Extending an MCP Tool: Product Logos in AI Images
How to extend an MCP image tool with reference images: product/logo input via gpt-image-1 (images.edit) and Gemini gemini-2.5-flash-image (generate_content), with automatic model switching and …
Affiliate Click Tracking in Django: Why GA Doesn't See It
How to track affiliate clicks in Django/Wagtail yourself: a /go/ redirect with a bot filter and a GDPR-lean log (without IP/UA), why Google Analytics …
Proxmox vs. plain KVM: when it's worth switching
Proxmox VE or plain KVM/QEMU (libvirt)? No performance difference, but different effort and feature set. An honest comparison, a decision guide and a short …
GT2 idler from the printer: a build-time stopgap
A printed smooth GT2 idler (12 mm belt, runs on a 625 bearing, 5 mm bore) as a stopgap during a printer build: print …