<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Wallop Where?</title>
	<atom:link href="https://thomas.w-p.me.uk/blog/feed/" rel="self" type="application/rss+xml" />
	<link>https://thomas.w-p.me.uk/blog</link>
	<description>Exercise, geekiness</description>
	<lastBuildDate>Tue, 06 Jan 2026 18:27:12 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>ESPHome ESP8266 connection issues with ASUS (XT8 and XT9) WiFi routers</title>
		<link>https://thomas.w-p.me.uk/blog/2026/01/esphome-esp8266-connection-issues-with-asus-xt8-and-xt9-wifi-routers/</link>
		
		<dc:creator><![CDATA[Thomas W-P]]></dc:creator>
		<pubDate>Tue, 06 Jan 2026 18:27:12 +0000</pubDate>
				<category><![CDATA[ESPHome]]></category>
		<category><![CDATA[Geekiness]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<guid isPermaLink="false">https://thomas.w-p.me.uk/blog/?p=1133</guid>

					<description><![CDATA[This caused me a lot of pain with the ESPHome devices continually throwing up their own access points and refusing to join the wifi. I had full control of the devices when I could get them connected using Home Assistant &#8211; ESPHome Builder. The steps along the way that I took were:]]></description>
										<content:encoded><![CDATA[
<p>This caused me a lot of pain with the ESPHome devices continually throwing up their own access points and refusing to join the wifi. I had full control of the devices when I could get them connected using Home Assistant &#8211; ESPHome Builder. The steps along the way that I took were:</p>



<ul class="wp-block-list">
<li>Separate my WiFi in to an IoT 2.4G network and a 5.0G network for the house. This allows me to simplify the WiFi as much as possible and I think stops the Smart Connect from causing issues.</li>



<li>Turned off everything I could in the 2G network to keep it as simple as possible. I am not sure how much was neccessary but it is working perfectly now and I don&#8217;t want to backtrack.</li>



<li>Set wireless mode on the ASUS to &#8220;<strong>Auto</strong>&#8221; and tick the &#8220;<strong>Disable 11b</strong>&#8220;. </li>



<li>Add this section to esphome > on_boot in the ESPHome builds for ESP8266 devices (I have many smart sockets). I could always get them to connect straight away if I rebooted my WiFi:</li>
</ul>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>esphome:
  on_boot:
    - priority: -100  # Use negative priority to run AFTER WiFi initializes
      then:
        - lambda: |-
            #ifdef ESP8266
              wifi_set_phy_mode(PHY_MODE_11G);
            #endif</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #E53935">esphome</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">  </span><span style="color: #E53935">on_boot</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> </span><span style="color: #E53935">priority</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> </span><span style="color: #F76D47">-100</span><span style="color: #90A4AE">  </span><span style="color: #90A4AE; font-style: italic"># Use negative priority to run AFTER WiFi initializes</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #E53935">then</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">        </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> </span><span style="color: #E53935">lambda</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> </span><span style="color: #39ADB5; font-style: italic">|</span><span style="color: #9C3EDA">-</span></span>
<span class="line"><span style="color: #91B859">            #ifdef ESP8266</span></span>
<span class="line"><span style="color: #91B859">              wifi_set_phy_mode(PHY_MODE_11G);</span></span>
<span class="line"><span style="color: #91B859">            #endif</span></span></code></pre></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Caddy reverse proxy</title>
		<link>https://thomas.w-p.me.uk/blog/2025/04/caddy-reverse-proxy/</link>
		
		<dc:creator><![CDATA[Thomas W-P]]></dc:creator>
		<pubDate>Tue, 22 Apr 2025 10:43:55 +0000</pubDate>
				<category><![CDATA[caddy]]></category>
		<category><![CDATA[Geekiness]]></category>
		<category><![CDATA[pihole]]></category>
		<category><![CDATA[proxmox]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<guid isPermaLink="false">https://thomas.w-p.me.uk/blog/?p=1129</guid>

					<description><![CDATA[I was using Caddy with no problems but it suddenly stopped working after I switched my pihole 6 installation from a proxmox lxc (where it was lagging horribly) to a bare metal Pi3. I put it down to the DNS, and maybe that was the cause but the solution was to remove the wildcard at &#8230; <a href="https://thomas.w-p.me.uk/blog/2025/04/caddy-reverse-proxy/" class="more-link">Continue reading <span class="screen-reader-text">Caddy reverse proxy</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p>I was using Caddy with no problems but it suddenly stopped working after I switched my pihole 6 installation from a proxmox lxc (where it was lagging horribly) to a bare metal Pi3. I put it down to the DNS, and maybe that was the cause but the solution was to remove the wildcard at the top of the Caddyfile.</p>



<p>I was using a wildcard *.local certificate but Firefox rejected it because it didn&#8217;t match dns.local.</p>



<p>Removing the  *.local section from the Caddyfile fixed it once I had installed the root.crt in Firefox. I use <a href="https://community-scripts.github.io/ProxmoxVE/scripts?id=caddy">a proxmox script for the caddy installation</a> and it puts the certificates in </p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="/var/lib/caddy/.local/share/caddy/pki/authorities/local/" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #E2931D">/var/lib/caddy/.local/share/caddy/pki/authorities/local/</span></span></code></pre></div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ethernet Speed</title>
		<link>https://thomas.w-p.me.uk/blog/2025/03/ethernet-speed/</link>
		
		<dc:creator><![CDATA[Thomas W-P]]></dc:creator>
		<pubDate>Thu, 13 Mar 2025 09:40:33 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Geekiness]]></category>
		<guid isPermaLink="false">https://thomas.w-p.me.uk/blog/?p=1126</guid>

					<description><![CDATA[https://serverfault.com/questions/207474/how-do-i-verify-the-speed-of-my-nic Thanks to serverfault I found how to check link speed between two debian machines &#8211; iperf3 You can see the expected max speed using ethtool: To see real-time speeds install iperf3, then run one machine as server and one as client: I got 250 Mb/s whilst doing a backup on the cabling I installed &#8230; <a href="https://thomas.w-p.me.uk/blog/2025/03/ethernet-speed/" class="more-link">Continue reading <span class="screen-reader-text">Ethernet Speed</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p><a href="https://serverfault.com/questions/207474/how-do-i-verify-the-speed-of-my-nic">https://serverfault.com/questions/207474/how-do-i-verify-the-speed-of-my-nic</a></p>



<p>Thanks to serverfault I found how to check link speed between two debian machines &#8211; iperf3</p>



<p>You can see the expected max speed using ethtool:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="# assuming eth0 is the interface we care about
~$ sudo ethtool eth0 | grep Speed
        Speed: 10000Mb/s" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #90A4AE; font-style: italic"># assuming eth0 is the interface we care about</span></span>
<span class="line"><span style="color: #39ADB5">~</span><span style="color: #90A4AE">$ sudo ethtool eth0 </span><span style="color: #39ADB5">|</span><span style="color: #90A4AE"> </span><span style="color: #E2931D">grep</span><span style="color: #90A4AE"> </span><span style="color: #91B859">Speed</span></span>
<span class="line"><span style="color: #90A4AE">        </span><span style="color: #E2931D">Speed:</span><span style="color: #90A4AE"> </span><span style="color: #F76D47">10000</span><span style="color: #91B859">Mb/s</span></span></code></pre></div>



<p>To see real-time speeds install iperf3, then run one machine as server and one as client:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="# on both machines
apt install iperf3 -y
# say no to the install at startup - this is just for occasional testing

# on machine A, which is 192.168.1.3
iperf3 -s

# on machine B - reach out to machine A's IP address
iperf3 -c 192.168.1.3
" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #90A4AE; font-style: italic"># on both machines</span></span>
<span class="line"><span style="color: #E2931D">apt</span><span style="color: #90A4AE"> </span><span style="color: #91B859">install</span><span style="color: #90A4AE"> </span><span style="color: #91B859">iperf3</span><span style="color: #90A4AE"> </span><span style="color: #91B859">-y</span></span>
<span class="line"><span style="color: #90A4AE; font-style: italic"># say no to the install at startup - this is just for occasional testing</span></span>
<span class="line"></span>
<span class="line"><span style="color: #90A4AE; font-style: italic"># on machine A, which is 192.168.1.3</span></span>
<span class="line"><span style="color: #E2931D">iperf3</span><span style="color: #90A4AE"> </span><span style="color: #91B859">-s</span></span>
<span class="line"></span>
<span class="line"><span style="color: #90A4AE; font-style: italic"># on machine B - reach out to machine A&#39;s IP address</span></span>
<span class="line"><span style="color: #E2931D">iperf3</span><span style="color: #90A4AE"> </span><span style="color: #91B859">-c</span><span style="color: #90A4AE"> </span><span style="color: #F76D47">192.168</span><span style="color: #91B859">.1.3</span></span>
<span class="line"></span></code></pre></div>



<p>I got 250 Mb/s whilst doing a backup on the cabling I installed myself 25 years ago (before gigabit was a thing)  to a USB ethernet 25m away from the switch, so I will take that.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WSL2, Docker Desktop and Shared Drives</title>
		<link>https://thomas.w-p.me.uk/blog/2025/01/wsl2-docker-desktop-and-shared-drives/</link>
		
		<dc:creator><![CDATA[Thomas W-P]]></dc:creator>
		<pubDate>Thu, 30 Jan 2025 09:51:54 +0000</pubDate>
				<category><![CDATA[docker]]></category>
		<category><![CDATA[Geekiness]]></category>
		<guid isPermaLink="false">https://thomas.w-p.me.uk/blog/?p=1123</guid>

					<description><![CDATA[A pain in the bum but I got there. I was trying to share a NFS share with an immich docker container to have a play with importing videos. The Debian could see it but the Image could not. I am not sure if it is to do with the limit on the omv NFS &#8230; <a href="https://thomas.w-p.me.uk/blog/2025/01/wsl2-docker-desktop-and-shared-drives/" class="more-link">Continue reading <span class="screen-reader-text">WSL2, Docker Desktop and Shared Drives</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p>A pain in the bum but I got there.</p>



<p>I was trying to share a NFS share with an immich docker container to have a play with importing videos. The Debian could see it  but the Image could not. I am not sure if it is to do with the limit on the omv NFS IP address range or something but I knew if my Windows machine could see it then the damn WSL2 should be able to see it too, natively!</p>



<p>In PowerShell <code>wsl --list --verbose</code> lists which WSL are in use, and confusingly it gives two but the * suggested that this was the one to work with. </p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="  NAME              STATE           VERSION
* Debian            Running         2
  docker-desktop    Running         2" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #90A4AE">  NAME              STATE           VERSION</span></span>
<span class="line"><span style="color: #39ADB5">*</span><span style="color: #90A4AE"> Debian            Running         </span><span style="color: #F76D47">2</span></span>
<span class="line"><span style="color: #90A4AE">  docker</span><span style="color: #39ADB5">-</span><span style="color: #90A4AE">desktop    Running         </span><span style="color: #F76D47">2</span></span></code></pre></div>



<p>I tried and tried to mount the NFS share there, but though the Debian could see it, the Docker image could not. I share the same folder using SMB so was able to get that in to WSL using:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="wsl -d Debian
sudo mkdir /mnt/p
sudo mount -t drvfs P: /mnt/p" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #90A4AE">wsl </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE">d Debian</span></span>
<span class="line"><span style="color: #90A4AE">sudo mkdir </span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">mnt</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">p</span></span>
<span class="line"><span style="color: #90A4AE">sudo mount </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE">t drvfs </span><span style="color: #E2931D">P</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> </span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">mnt</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">p</span></span></code></pre></div>



<p>This makes the p: drive appear on /mnt/p which I could then get working in the yaml with:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="    volumes:
      - /mnt/p:/mnt/p_drive" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">volumes</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> </span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">mnt</span><span style="color: #39ADB5">/</span><span style="color: #E2931D">p</span><span style="color: #39ADB5">:/</span><span style="color: #90A4AE">mnt</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">p_drive</span></span></code></pre></div>



<p>This worked so nicely that I couldn&#8217;t think why the NFS share worked so went back and tried it all over again. It immediately worked! </p>



<p>Argh. </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>reset mysql docker root password</title>
		<link>https://thomas.w-p.me.uk/blog/2025/01/reset-mysql-docker-root-password/</link>
		
		<dc:creator><![CDATA[Thomas W-P]]></dc:creator>
		<pubDate>Tue, 21 Jan 2025 15:08:33 +0000</pubDate>
				<category><![CDATA[Geekiness]]></category>
		<category><![CDATA[mysql]]></category>
		<guid isPermaLink="false">https://thomas.w-p.me.uk/blog/?p=1120</guid>

					<description><![CDATA[CopilotAI was not helpful, this web site was https://wolfgang.gassler.org/reset-password-mariadb-mysql-docker]]></description>
										<content:encoded><![CDATA[
<p>CopilotAI was not helpful, this web site was</p>



<p><a href="https://wolfgang.gassler.org/reset-password-mariadb-mysql-docker">https://wolfgang.gassler.org/reset-password-mariadb-mysql-docker</a></p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>samba machine visible on Windows Network</title>
		<link>https://thomas.w-p.me.uk/blog/2025/01/samba-machine-visible-on-windows-network/</link>
		
		<dc:creator><![CDATA[Thomas W-P]]></dc:creator>
		<pubDate>Thu, 16 Jan 2025 14:32:59 +0000</pubDate>
				<category><![CDATA[docker]]></category>
		<category><![CDATA[Geekiness]]></category>
		<category><![CDATA[samba]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[yaml]]></category>
		<guid isPermaLink="false">https://thomas.w-p.me.uk/blog/?p=1114</guid>

					<description><![CDATA[This has bothered me for ages, but today I worked it out. I am using a docker image for samba (dperson/samba) and that works fine after a bit of work, but it always bothered me that I could not see the computer in the home network. I know it is more secure not to, but &#8230; <a href="https://thomas.w-p.me.uk/blog/2025/01/samba-machine-visible-on-windows-network/" class="more-link">Continue reading <span class="screen-reader-text">samba machine visible on Windows Network</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p>This has bothered me for ages, but today I worked it out.</p>



<p>I am using a docker image for samba (dperson/samba) and that works fine after a bit of work, but it always bothered me that I could not see the computer in the home network. I know it is more secure not to, but sometimes convenience wins.</p>



<p>I finally found the answer, and it is <a href="https://github.com/christgau/wsdd">wsdd</a></p>



<p>I found an undocumented, <a href="https://hub.docker.com/r/viniciusleterio/wsdd/tags">wsdd docker image</a> image with 500k downloads in docker hub but no documentation at all. This yaml was enough to allow me to call it what I wanted rather than it&#8217;s rather prosaic name and it came up INSTANTLY:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="  wsdd:
    image: viniciusleterio/wsdd
    container_name: wsdd
    network_mode: host
    restart: always
    command: &gt;
      -i eth0
      -n MyServerName" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #90A4AE">  </span><span style="color: #E2931D">wsdd</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">image</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> viniciusleterio</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">wsdd</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">container_name</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> wsdd</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">network_mode</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> host</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">restart</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> always</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">command</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> </span><span style="color: #39ADB5">&gt;</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE">i eth0</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE">n MyServerName</span></span></code></pre></div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Multiple Paperless Instances</title>
		<link>https://thomas.w-p.me.uk/blog/2025/01/multiple-paperless-instances/</link>
		
		<dc:creator><![CDATA[Thomas W-P]]></dc:creator>
		<pubDate>Wed, 15 Jan 2025 22:45:08 +0000</pubDate>
				<category><![CDATA[paperless]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[frustration]]></category>
		<guid isPermaLink="false">https://thomas.w-p.me.uk/blog/?p=1109</guid>

					<description><![CDATA[This nearly killed me, I thought I had nuked everything but in the end it was way easier and simpler than I had feared. Assuming you used one of the default .yaml and .env files from the paperless-ngx github you first need to add a database. I use portainer so went to the db shell &#8230; <a href="https://thomas.w-p.me.uk/blog/2025/01/multiple-paperless-instances/" class="more-link">Continue reading <span class="screen-reader-text">Multiple Paperless Instances</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p>This nearly killed me, I thought I had nuked everything but in the end it was way easier and simpler than I had feared.</p>



<p>Assuming you used one of the default .yaml and .env files from the <a href="https://github.com/paperless-ngx/">paperless-ngx github</a> you first need to add a database. I use portainer so went to the db shell and then did this to log in, list them, create a new one, check it is there and quit:</p>



<pre class="wp-block-code has-90-a-4-ae-color has-text-color has-875-rem-font-size"><code>psql -U paperless
\l
CREATE DATABASE mynewdb;
\l
\q
exit</code></pre>



<p>Next I needed to make a new env file. I just Save As&#8230; with the existing one and called it docker-compose-mynewone.env and added these lines:</p>



<pre class="wp-block-code has-90-a-4-ae-color has-text-color has-875-rem-font-size"><code>PAPERLESS_DBNAME=mynewdb
PAPERLESS_SECRET_KEY=an+all+new+random+set+of+characters
PAPERLESS_URL=https://mynewpapaerless.myfinedomain.com</code></pre>



<p>The .yaml file needs one new section &#8211; I copied the webserver one and only changed these lines (the first instance is on 8010). The /1 on the end of the PAPERLESS_REDIS means use a second database and you need all new volumes or things go awry (I found this out the hard way).</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="  webserver-newone:
    ports:
      - &quot;8011:8000&quot;
    env_file: docker-compose-mynewone.env
    environment:
      PAPERLESS_REDIS: redis://broker:6379/1
    volumes:
      - data-new:/usr/src/paperless/data
      - media-new:/usr/src/paperless/media
      - ./export-new:/usr/src/paperless/export
      - ./consume-new:/usr/src/paperless/consume" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #90A4AE">  webserver</span><span style="color: #39ADB5">-</span><span style="color: #E2931D">newone</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">ports</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> </span><span style="color: #39ADB5">&quot;</span><span style="color: #91B859">8011:8000</span><span style="color: #39ADB5">&quot;</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">env_file</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> docker</span><span style="color: #39ADB5">-</span><span style="color: #90A4AE">compose</span><span style="color: #39ADB5">-</span><span style="color: #90A4AE">mynewone</span><span style="color: #39ADB5">.</span><span style="color: #90A4AE">env</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">environment</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #E2931D">PAPERLESS_REDIS</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> </span><span style="color: #E2931D">redis</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE; font-style: italic">//broker:6379/1</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">volumes</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> data</span><span style="color: #39ADB5">-</span><span style="color: #E2931D">new</span><span style="color: #39ADB5">:/</span><span style="color: #90A4AE">usr</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">src</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">paperless</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">data</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> media</span><span style="color: #39ADB5">-</span><span style="color: #E2931D">new</span><span style="color: #39ADB5">:/</span><span style="color: #90A4AE">usr</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">src</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">paperless</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">media</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> </span><span style="color: #39ADB5">./</span><span style="color: #9C3EDA">export</span><span style="color: #39ADB5">-</span><span style="color: #E2931D">new</span><span style="color: #39ADB5">:/</span><span style="color: #90A4AE">usr</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">src</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">paperless</span><span style="color: #39ADB5">/</span><span style="color: #9C3EDA">export</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> </span><span style="color: #39ADB5">./</span><span style="color: #90A4AE">consume</span><span style="color: #39ADB5">-</span><span style="color: #E2931D">new</span><span style="color: #39ADB5">:/</span><span style="color: #90A4AE">usr</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">src</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">paperless</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">consume</span></span></code></pre></div>



<p>You need to tweak the original webserver changing just this one line with the /0.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="  webserver:
      PAPERLESS_REDIS: redis://broker:6379/0" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #90A4AE">  </span><span style="color: #E2931D">webserver</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #E2931D">PAPERLESS_REDIS</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> </span><span style="color: #E2931D">redis</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE; font-style: italic">//broker:6379/0</span></span></code></pre></div>



<p>Then yougo to the folder with the yaml in console, stop all the instances, pull a new one and create a superuser as per the usual, but with a minor difference (the new webserver name):</p>



<pre class="wp-block-code"><code>docker compose down
docker compose pull
docker compose run --rm webserver-newone createsuperuser
docker compose up -d</code></pre>



<p>And that should be it!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Caddy, SEC_ERROR_UNKNOWN_ISSUER and TLS Internal</title>
		<link>https://thomas.w-p.me.uk/blog/2025/01/caddy-sec_error_unknown_issuer-and-tls-internal/</link>
		
		<dc:creator><![CDATA[Thomas W-P]]></dc:creator>
		<pubDate>Tue, 14 Jan 2025 12:59:34 +0000</pubDate>
				<category><![CDATA[caddy]]></category>
		<category><![CDATA[docker]]></category>
		<guid isPermaLink="false">https://thomas.w-p.me.uk/blog/?p=1107</guid>

					<description><![CDATA[I have solved this before but forgot how. Maybe typing something will help me remember the next time. I use Caddy in a docker container to reverse proxy around my docker box and other computers in my network. Something like this: It always gives SEC_ERROR_UNKNOWN_ISSUER error and I can just accept this, which works for &#8230; <a href="https://thomas.w-p.me.uk/blog/2025/01/caddy-sec_error_unknown_issuer-and-tls-internal/" class="more-link">Continue reading <span class="screen-reader-text">Caddy, SEC_ERROR_UNKNOWN_ISSUER and TLS Internal</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p>I have solved this before but forgot how. Maybe typing something will help me remember the next time.</p>



<p>I use Caddy in a docker container to reverse proxy around my docker box and other computers in my network. Something like this:</p>



<pre class="wp-block-code"><code># test subdomain
test.mydomain.net {

        reverse_proxy http://10.10.10.15:8010
        tls internal
}
</code></pre>



<p>It always gives SEC_ERROR_UNKNOWN_ISSUER error and I can just accept this, which works for a while. Ideally you want it to just work, especially if you are setting up a site your 83 year old mum might access.</p>



<p><strong>I had forgotten that if you want it to work, you need to add the subdomain to your DNS as an A record &#8211; and then remove TLS internal. Job done.</strong></p>



<p>This does mean that anyone can hit that domain &#8211; which is fine in some cases and not fine in others. So I updated the internal only domains to this:</p>



<pre class="wp-block-code"><code>fileserver.mydomain.net {

        @denied not client_ip 10.10.10.0/16 172.26.0.0/12

        handle @denied {
                 abort
        }

        reverse_proxy http://10.10.10.15:8081
}
</code></pre>



<p>The 172.26 address comes from docker and I think it fails without it from memory.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Upsampling with squeezelite</title>
		<link>https://thomas.w-p.me.uk/blog/2024/03/upsampling-with-squeezelite/</link>
		
		<dc:creator><![CDATA[Thomas W-P]]></dc:creator>
		<pubDate>Mon, 18 Mar 2024 15:42:13 +0000</pubDate>
				<category><![CDATA[docker]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<category><![CDATA[Logitech Media Server LMS]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<guid isPermaLink="false">https://thomas.w-p.me.uk/blog/?p=1100</guid>

					<description><![CDATA[I had Text-To-Speech (TTW) working really well with squeezelite and Home Assistant on a Raspberry Pi 3B with max2play (which now looks sadly defunct). I thought I would pep things up a bit and use a RPi4 elsewhere as a Speaker for HA so my music was not constantly destroyed. Getting squeezelite to work was &#8230; <a href="https://thomas.w-p.me.uk/blog/2024/03/upsampling-with-squeezelite/" class="more-link">Continue reading <span class="screen-reader-text">Upsampling with squeezelite</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p>I had Text-To-Speech (TTW) working really well with squeezelite and <a href="https://www.home-assistant.io/">Home Assistant</a> on a <a href="https://www.raspberrypi.com/">Raspberry Pi </a>3B with max2play (which now looks sadly defunct). I thought I would pep things up a bit and use a RPi4 elsewhere as a Speaker for HA so my music was not constantly destroyed. </p>



<p>Getting squeezelite to work was easy but could I get TTS to work? The mp3 file was created but squeezelite looped when trying to play it. Sad times.  </p>



<p>I worked out that it played fine when the sample speed was increased and in all my searching hit upon the concept of &#8220;Upsampling&#8221;. Hmmm. Since I had originally used &#8220;apt get install sqeezelite -y&#8221; and found it hard to find any settings at all and had not yet really understood docker I took this opportunity to move to a docker setup. Happily one of the settings allowed the magic &#8220;Eq&#8221; that got things rolling along.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="version: &quot;3&quot;

services:
  squeezelite-my-usb-dac:
    image: giof71/squeezelite:latest
    container_name: squeezelite
    devices:
      - /dev/snd:/dev/snd
    environment:
      - SQUEEZELITE_AUDIO_DEVICE=&quot;hdmi:CARD=vc4hdmi1,DEV=0&quot;
      - SQUEEZELITE_NAME=&quot;Kitchen Panel&quot;
      - SQUEEZELITE_SERVER_PORT=192.168.0.60
      - SQUEEZELITE_LOG_CATEGORY_ALL
      - SQUEEZELITE_MAC_ADDRESS=&quot;45:07:31:83:01:40&quot;
      - DISPLAY_PRESETS=Y
      - SQUEEZELITE_PARAMS=&quot;80:4::&quot;
      - SQUEEZELITE_UPSAMPLING=&quot;Eq&quot;
    restart: unless-stopped" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #E2931D">version</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> </span><span style="color: #39ADB5">&quot;</span><span style="color: #91B859">3</span><span style="color: #39ADB5">&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #E2931D">services</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">  squeezelite</span><span style="color: #39ADB5">-</span><span style="color: #90A4AE">my</span><span style="color: #39ADB5">-</span><span style="color: #90A4AE">usb</span><span style="color: #39ADB5">-</span><span style="color: #E2931D">dac</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">image</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> giof71</span><span style="color: #39ADB5">/</span><span style="color: #E2931D">squeezelite</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE">latest</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">container_name</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> squeezelite</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">devices</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> </span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">dev</span><span style="color: #39ADB5">/</span><span style="color: #E2931D">snd</span><span style="color: #39ADB5">:/</span><span style="color: #90A4AE">dev</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">snd</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">environment</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> SQUEEZELITE_AUDIO_DEVICE</span><span style="color: #39ADB5">=</span><span style="color: #39ADB5">&quot;</span><span style="color: #91B859">hdmi:CARD=vc4hdmi1,DEV=0</span><span style="color: #39ADB5">&quot;</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> SQUEEZELITE_NAME</span><span style="color: #39ADB5">=</span><span style="color: #39ADB5">&quot;</span><span style="color: #91B859">Kitchen Panel</span><span style="color: #39ADB5">&quot;</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> SQUEEZELITE_SERVER_PORT</span><span style="color: #39ADB5">=</span><span style="color: #F76D47">192.168</span><span style="color: #39ADB5">.</span><span style="color: #F76D47">0.60</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> SQUEEZELITE_LOG_CATEGORY_ALL</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> SQUEEZELITE_MAC_ADDRESS</span><span style="color: #39ADB5">=</span><span style="color: #39ADB5">&quot;</span><span style="color: #91B859">45:07:31:83:01:40</span><span style="color: #39ADB5">&quot;</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> DISPLAY_PRESETS</span><span style="color: #39ADB5">=</span><span style="color: #90A4AE">Y</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> SQUEEZELITE_PARAMS</span><span style="color: #39ADB5">=</span><span style="color: #39ADB5">&quot;</span><span style="color: #91B859">80:4::</span><span style="color: #39ADB5">&quot;</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> SQUEEZELITE_UPSAMPLING</span><span style="color: #39ADB5">=</span><span style="color: #39ADB5">&quot;</span><span style="color: #91B859">Eq</span><span style="color: #39ADB5">&quot;</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">restart</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> unless</span><span style="color: #39ADB5">-</span><span style="color: #90A4AE">stopped</span></span></code></pre></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>macvlan with docker and pihole</title>
		<link>https://thomas.w-p.me.uk/blog/2024/03/macvlan-with-docker-and-pihole/</link>
		
		<dc:creator><![CDATA[Thomas W-P]]></dc:creator>
		<pubDate>Mon, 18 Mar 2024 15:32:42 +0000</pubDate>
				<category><![CDATA[docker]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<guid isPermaLink="false">https://thomas.w-p.me.uk/blog/?p=1098</guid>

					<description><![CDATA[This web page (Set up a PiHole using Docker MacVlan Networks) is great and got me there, but here are notes on how I fixed it globally. I use many stacks. You need MACVLAN network to fake an external IP for the DNS/DHCP server or it does not work (the requests don&#8217;t come through docker). &#8230; <a href="https://thomas.w-p.me.uk/blog/2024/03/macvlan-with-docker-and-pihole/" class="more-link">Continue reading <span class="screen-reader-text">macvlan with docker and pihole</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p>This web page (<a href="https://blog.ivansmirnov.name/set-up-pihole-using-docker-macvlan-network/">Set up a PiHole using Docker MacVlan Networks</a>) is great and got me there, but here are notes on how I fixed it globally. I use many stacks.</p>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-dots"/>



<p>You need MACVLAN network to fake an external IP for the DNS/DHCP server or it does not work (the requests don&#8217;t come through docker). But if you make a macvlan IP address, by design the host cannot see that IP address! You have to make a bridge.</p>



<p>If that bridge is local to the docker compose file, then only that stack can see it. For all stacks to see it you need to make a new macvlan and bridge network globally (I did this in portainer).</p>



<p>Steps to create:</p>



<p>1. Make a macvlan configuration</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="name: pihole-macvlan-config
Interface: eth0
IPV4 Subnet - 192.168.0.0/24	IPV4 Gateway - 192.168.0.1
IPV4 IP Range - 192.168.0.8/29	" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #E2931D">name</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> pihole</span><span style="color: #39ADB5">-</span><span style="color: #90A4AE">macvlan</span><span style="color: #39ADB5">-</span><span style="color: #90A4AE">config</span></span>
<span class="line"><span style="color: #E2931D">Interface</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> eth0</span></span>
<span class="line"><span style="color: #90A4AE">IPV4 Subnet </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> </span><span style="color: #F76D47">192.168</span><span style="color: #39ADB5">.</span><span style="color: #F76D47">0.0</span><span style="color: #39ADB5">/</span><span style="color: #F76D47">24</span><span style="color: #90A4AE">	IPV4 Gateway </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> </span><span style="color: #F76D47">192.168</span><span style="color: #39ADB5">.</span><span style="color: #F76D47">0.1</span></span>
<span class="line"><span style="color: #90A4AE">IPV4 IP Range </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> </span><span style="color: #F76D47">192.168</span><span style="color: #39ADB5">.</span><span style="color: #F76D47">0.8</span><span style="color: #39ADB5">/</span><span style="color: #F76D47">29</span><span style="color: #90A4AE">	</span></span></code></pre></div>



<p>2. Make the macvlan using that configuration (just select the configuration and give it a name)</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="name: pihole-macvlan
driver: macvlan" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #E2931D">name</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> pihole</span><span style="color: #39ADB5">-</span><span style="color: #90A4AE">macvlan</span></span>
<span class="line"><span style="color: #E2931D">driver</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> macvlan</span></span></code></pre></div>



<p>3. Set up the bridge</p>



<pre class="wp-block-code"><code>name: pihole-bridge
IPV4 Subnet - 10.123.0.0/24</code></pre>



<p>4. In pihole set up the brige ip address.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="    networks:
      pihole-macvlan:
        ipv4_address: 192.168.0.10
      pihole-bridge:
        ipv4_address: 10.123.0.2" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">networks</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">      pihole</span><span style="color: #39ADB5">-</span><span style="color: #E2931D">macvlan</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">        </span><span style="color: #E2931D">ipv4_address</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> </span><span style="color: #F76D47">192.168</span><span style="color: #39ADB5">.</span><span style="color: #F76D47">0.10</span></span>
<span class="line"><span style="color: #90A4AE">      pihole</span><span style="color: #39ADB5">-</span><span style="color: #E2931D">bridge</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">        </span><span style="color: #E2931D">ipv4_address</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> </span><span style="color: #F76D47">10.123</span><span style="color: #39ADB5">.</span><span style="color: #F76D47">0.2</span></span></code></pre></div>



<p>5. Use nmtui to change the host &#8220;dockerbox&#8221; DNS to 10.123.0.2 and give it a fixed IP address. All the containers will look for that for the DNS but need pihole-bridge network to see it.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sudo nmtui" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #90A4AE">sudo nmtui</span></span></code></pre></div>



<p>6. In each container that needs pihole you add the network pihole-bridge</p>



<p>e.g.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FAFAFA"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="  tasmoadmin:
    container_name: tasmoadmin
    image: ghcr.io/tasmoadmin/tasmoadmin:latest
    volumes:
      - ./tasmoadmin-data:/data 
    ports:
      - 9541:80
    restart: unless-stopped
    depends_on:
      - homeassistant
    networks:
      - mqtt
      - pihole-bridge" style="color:#90A4AE;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-lighter" style="background-color: #FAFAFA" tabindex="0"><code><span class="line"><span style="color: #90A4AE">  </span><span style="color: #E2931D">tasmoadmin</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">container_name</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> tasmoadmin</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">image</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> ghcr</span><span style="color: #39ADB5">.</span><span style="color: #90A4AE">io</span><span style="color: #39ADB5">/</span><span style="color: #90A4AE">tasmoadmin</span><span style="color: #39ADB5">/</span><span style="color: #E2931D">tasmoadmin</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE">latest</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">volumes</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> </span><span style="color: #39ADB5">./</span><span style="color: #90A4AE">tasmoadmin</span><span style="color: #39ADB5">-</span><span style="color: #E2931D">data</span><span style="color: #39ADB5">:/</span><span style="color: #90A4AE">data </span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">ports</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> </span><span style="color: #F76D47">9541</span><span style="color: #90A4AE">:</span><span style="color: #F76D47">80</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">restart</span><span style="color: #39ADB5">:</span><span style="color: #90A4AE"> unless</span><span style="color: #39ADB5">-</span><span style="color: #90A4AE">stopped</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">depends_on</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> homeassistant</span></span>
<span class="line"><span style="color: #90A4AE">    </span><span style="color: #E2931D">networks</span><span style="color: #39ADB5">:</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> mqtt</span></span>
<span class="line"><span style="color: #90A4AE">      </span><span style="color: #39ADB5">-</span><span style="color: #90A4AE"> pihole</span><span style="color: #39ADB5">-</span><span style="color: #90A4AE">bridge</span></span></code></pre></div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
