<?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet type="text/xsl" href="rss.xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>du.nkel.dev</title><description>A personal code notes blog</description><link>https://du.nkel.dev/</link><atom:link href="https://du.nkel.dev/feed_rss_created.xml" rel="self" type="application/rss+xml" /> <managingEditor>Alexander Dunkel</managingEditor><language>en</language> <pubDate>Wed, 22 Apr 2026 05:30:36 -0000</pubDate> <lastBuildDate>Wed, 22 Apr 2026 05:30:36 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.19.0</generator> <image> <url>https://du.nkel.dev/blog/img/mastodon.webp</url> <title>du.nkel.dev</title> <link>https://du.nkel.dev/</link> </image> <item> <title>Local-only Marstek Venus E Battery Integration with Home Assistant</title> <description>Integrating a cheap (~1050€) 5kWh AC-coupled battery into an existing 30kWp PV system. The goal: Zero-cloud dependency, full local control via Modbus TCP, and a &#39;Zero Export&#39; regulation loop using Home Assistant. This post covers the physical installation using a standard TV mount, RS485 wiring, and the complete software logic. </description> <link>https://du.nkel.dev/blog/2026-01-11_marstek-battery-homeassistant/</link> <pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate> <source url="https://du.nkel.dev/feed_rss_created.xml">du.nkel.dev</source><guid isPermaLink="true">https://du.nkel.dev/blog/2026-01-11_marstek-battery-homeassistant/</guid> <enclosure url="https://du.nkel.dev/blog/img/pv.webp" type="image/webp" length="None" /> </item> <item> <title>Lokale Einbindung und Steuerung vom Marstek Venus E Batteriespeicher mit Home Assistant</title> <description>In diesem Beitrag beschreibe ich die Integration eines günstigen (~1050€) 5kWh AC-Speichers in eine bestehende 30kWp PV-Anlage mit Open-Source tools. Das Ziel: Null Cloud-Abhängigkeit und volle lokale Kontrolle mittels Modbus TCP und Nulleinspeisungs-Automatik in Home Assistant. Ich zeige die physische Installation mit einer Standard-TV-Wandhalterung, die RS485-Verkabelung und teile die komplette Software-Logik. </description> <link>https://du.nkel.dev/blog/de/2026-01-11_marstek-batterie-homeassistant/</link> <pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate> <source url="https://du.nkel.dev/feed_rss_created.xml">du.nkel.dev</source><guid isPermaLink="true">https://du.nkel.dev/blog/de/2026-01-11_marstek-batterie-homeassistant/</guid> <enclosure url="https://du.nkel.dev/blog/img/pv.webp" type="image/webp" length="None" /> </item> <item> <title>Automating rootless Docker host updates with Ansible</title> <description>Running &lt;code&gt;apt upgrade&lt;/code&gt; on hosts with rootless Docker services can break them. A version mismatch occurs between the running user daemon and the newly upgraded system binaries, causing containers to fail on restart. This post provides an ansible playbook that detects critical package changes and automatically restarts only the necessary rootless user daemons, preventing downtime and manual intervention. </description> <link>https://du.nkel.dev/blog/2025-11-15_docker-rootless-ansible/</link> <pubDate>Sat, 15 Nov 2025 00:00:00 +0000</pubDate> <source url="https://du.nkel.dev/feed_rss_created.xml">du.nkel.dev</source><guid isPermaLink="true">https://du.nkel.dev/blog/2025-11-15_docker-rootless-ansible/</guid> <enclosure url="https://du.nkel.dev/blog/img/2025-11-15_ansible.webp" type="image/webp" length="None" /> </item> <item> <title>Keycloak SSO with docker compose and nginx</title> <description>I always hesitated to deploy an extra tool for user management and &lt;abbr title=&#39;Single Sign-On&#39;&gt;SSO&lt;/abbr&gt;, but the current state of the web makes it very difficult to keep up with security, CVEs etc. Why not trust one of the longest standing solutions for identity and access management? Keycloak is open source, interoperable with major SSO protocols (&lt;code&gt;OpenID Connect (OIDC), OAuth 2.0, SAML&lt;/code&gt;), and robust. The setup with docker compose is not complicated, but it was not straight forward either. This is why I provide a summary of the process below. </description> <link>https://du.nkel.dev/blog/2024-02-10_keycloak-docker-compose-nginx/</link> <pubDate>Sun, 11 Feb 2024 00:00:00 +0000</pubDate> <source url="https://du.nkel.dev/feed_rss_created.xml">du.nkel.dev</source><guid isPermaLink="true">https://du.nkel.dev/blog/2024-02-10_keycloak-docker-compose-nginx/</guid> <enclosure url="https://du.nkel.dev/blog/img/keycloak_fog_sf.webp" type="image/webp" length="None" /> </item> <item> <title>Mastodon with docker rootless, compose, and nginx reverse proxy</title> <description>Everyone &lt;em&gt;talks&lt;/em&gt; about docker rootless, e.g. for security reasons, but no one actually seems to do it. Very little information is available. Migrations from rootfull systems? File permissions? Reverse-proxy setup? Here I go through the steps to run Mastodon </description> <link>https://du.nkel.dev/blog/2023-12-12_mastodon-docker-rootless/</link> <pubDate>Tue, 12 Dec 2023 00:00:00 +0000</pubDate> <source url="https://du.nkel.dev/feed_rss_created.xml">du.nkel.dev</source><guid isPermaLink="true">https://du.nkel.dev/blog/2023-12-12_mastodon-docker-rootless/</guid> <enclosure url="https://du.nkel.dev/blog/img/mastodon.webp" type="image/webp" length="None" /> </item> <item> <title>IPSEC between OPNsense and pfSense</title> <description>A site-to-site connection between pfSense/OPNsense with IPSEC is straight-forward. This post explains some of the peculiarities needed to establish a connection, if one side is behind a &lt;a href=&#34;https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing&#34;&gt;Carrier-grade NAT&lt;/a&gt; or in an internal subnet. This can happen, for example, with an upstream &lt;a href=&#34;https://en.wikipedia.org/wiki/Wide_Area_Network&#34;&gt;WAN&lt;/a&gt; uplink that uses a dynamic IP address. I also show how to handle routing with multiple subnets on one end, using &lt;a href=&#34;https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing&#34;&gt;Classless Inter-Domain Routing (CIDR)&lt;/a&gt;. The sections are largely independent, choose what&#39;s interesting to you. </description> <link>https://du.nkel.dev/blog/2021-11-19_pfsense_opnsense_ipsec_cgnat/</link> <pubDate>Sat, 12 Nov 2022 00:00:00 +0000</pubDate> <source url="https://du.nkel.dev/feed_rss_created.xml">du.nkel.dev</source><guid isPermaLink="true">https://du.nkel.dev/blog/2021-11-19_pfsense_opnsense_ipsec_cgnat/</guid> <enclosure url="https://du.nkel.dev/blog/img/schema_ipsec.png" type="image/png" length="None" /> </item> <item> <title>Proxmox root migration (a report)</title> <description>Migration is a tedious process because it depends on a number of custom setup parameters. Understandably, the Proxmox docs provide only basic information on how to migrate the hypervisor itself. </description> <link>https://du.nkel.dev/blog/2022-01-21_proxmox_root_migration/</link> <pubDate>Thu, 04 Aug 2022 00:00:00 +0000</pubDate> <source url="https://du.nkel.dev/feed_rss_created.xml">du.nkel.dev</source><guid isPermaLink="true">https://du.nkel.dev/blog/2022-01-21_proxmox_root_migration/</guid> <enclosure url="https://du.nkel.dev/blog/img/root.webp" type="image/webp" length="None" /> </item> <item> <title>Flashing the Supermicro variant of SAS9201-16e (SAS2116)</title> <description>Flashing SAS Cards feels like a trip to the 90s, with all the peculiarities included. This particular LSI SAS9201-16e card left me puzzled, until I realized it is the Supermicro variant that needs special handling. Let&#39;s see if I can pull together the important pieces, so that those who come after me don&#39;t need to give up on their cards. </description> <link>https://du.nkel.dev/blog/2021-12-05_supermicro_sas2116_flashing/</link> <pubDate>Sun, 05 Dec 2021 00:00:00 +0000</pubDate> <source url="https://du.nkel.dev/feed_rss_created.xml">du.nkel.dev</source><guid isPermaLink="true">https://du.nkel.dev/blog/2021-12-05_supermicro_sas2116_flashing/</guid> <enclosure url="https://du.nkel.dev/blog/img/lsi-sas.png" type="image/png" length="None" /> </item> <item> <title>Proxmox Hypervisor Monitoring with Telegraf and InfluxDB</title> <description>This is a description of the process to install Telegraf on proxmox to collect sensor reading, smart data and metrics in InfluxDB 2.0. </description> <link>https://du.nkel.dev/blog/2021-05-05_proxmox_influxdb/</link> <pubDate>Wed, 05 May 2021 00:00:00 +0000</pubDate> <source url="https://du.nkel.dev/feed_rss_created.xml">du.nkel.dev</source><guid isPermaLink="true">https://du.nkel.dev/blog/2021-05-05_proxmox_influxdb/</guid> <enclosure url="https://du.nkel.dev/blog/img/influx_04.png" type="image/png" length="None" /> </item> <item> <title>Building SnapOS Image for Raspberry Pi Zero W with buildroot in WSL2</title> <description>This is a description of the process to create `sdcard.img` for the Raspberry Pi Zero W with HiFiBerry DAC Hat in Windows Subsystem for Linux (WSL2). </description> <link>https://du.nkel.dev/blog/2021-04-10_buildroot-snapos/</link> <pubDate>Sat, 10 Apr 2021 00:00:00 +0000</pubDate> <source url="https://du.nkel.dev/feed_rss_created.xml">du.nkel.dev</source><guid isPermaLink="true">https://du.nkel.dev/blog/2021-04-10_buildroot-snapos/</guid> <enclosure url="https://du.nkel.dev/blog/img/hifi.jpg" type="image/jpeg" length="None" /> </item> <item> <title>Running docker inside an unprivileged LXC container on Proxmox</title> <description>This is a brief description of the setup process for running docker in unprivileged LXC containers on proxmox. There are two primary sources, one is &lt;cite&gt;a post on &lt;a href=&#39;https://www.reddit.com/r/Proxmox/comments/g3wozs/best_way_to_run_docker_in_proxmox/fnu3t51?utm_source=share&amp;utm_medium=web2x&amp;context=3&#39;&gt;Reddit&lt;/a&gt;&lt;/cite&gt; and &lt;cite&gt;a more general &lt;a href=&#39;https://discuss.linuxcontainers.org/t/working-install-of-docker-ce-in-lxc-unprivileged-container-in-proxmox/3828&#39;&gt;discussion&lt;/a&gt;&lt;/cite&gt; on linuxcontainers.org. </description> <link>https://du.nkel.dev/blog/2021-03-25_proxmox_docker/</link> <pubDate>Thu, 25 Mar 2021 00:00:00 +0000</pubDate> <source url="https://du.nkel.dev/feed_rss_created.xml">du.nkel.dev</source><guid isPermaLink="true">https://du.nkel.dev/blog/2021-03-25_proxmox_docker/</guid> </item> </channel> </rss>