I’ve had Pi Hole running on my Umbrel Home for a while now. Umbrel told me a new version was available so I upgraded to it (version 2024.02.0), but after the upgrade it won’t start - the icon continually pulses on the home screen with “Starting…” underneath it. I tried rebooting and that hasn’t helped and it still won’t start. Looking at the logs using “Troubleshoot” in the system menu I can see logs for all the other apps I’ve installed but at the very end is “pi-hole” which only shows this:
pi-hole
Attaching to
================
==== Result ====
================
The debug script did not automatically detect any issues with your Umbrel.
Please can someone tell me how to fix this?
So I’ve just sshed into the box to poke around a bit and have discovered that there’s currently no Pi Hole Docker container defined (let alone running) and the image that’s there is four months old:
root@umbrel:~# docker container ls | grep hole
root@umbrel:~# docker container ls -a | grep hole
root@umbrel:~# docker image ls | grep hole
pihole/pihole <none> 1fd7e7caffbd 4 months ago 309MB
So my current thinking is that the upgrade process is:
- Stop and remove the old container
- Download the new image
- Create & start a new container based on the new image
And that step 2 never happened because Pi Hole was no longer running so all DNS queries would fail. That’s because I’ve set my DHCP server to tell all the devices on my network to use the Umbrel Home as the DNS server (which is the entire point of Pi Hole). The /etc/resolv.conf
file on the Umbrel Home contains the line nameserver 192.168.1.131
which is the IP address of the Umbrel Home itself.
But I’m doubtful that my thinking is correct, becaue if this is what happened then surely eveyone attempting to upgrade Pi Hole would encounter the exact same problem?
I’ve started looking at Umbrel’s code and there’s an “app” shell script. Looking at the help message there’s no command listed to upgrade an app, but reading the actual script there is actually an “update” command.
The ‘update’ script is for the umbrel OS. if you just run the ‘app’ script without any arguments it will give a list of commands that you can use to uninstall an reinstall pihole.
You can also watch the karen.log in /umbrel/logs: tail -f umbrel/log/.karen.log if using the web interface to perform the update.
When I mentioned the “update” command I was talking about the first argument passed to “scripts/app”, not “scripts/update”. I’ve now opened umbrel#1741 to fix the help message.
Thanks for mentioning karen.log
. Looking at that I can see that my thinking about what happened was broadly correct, but it’s a little more involved than I first thought as it involves both git and docker:
- A git pull happens for
https://github.com/getumbrel/umbrel-apps.git
- The Docker container(s) get stopped
- A Docker pull is attempted
- That fails as it can’t lookup
registry-1.docker.io
Here’s the relevant bit of karen.log
:
Got signal: app-update-pi-hole
karen is getting triggered!
Updating 'pi-hole' from: https://github.com/getumbrel/umbrel-apps.git
Stopping app pi-hole...
Stopping pi-hole_server_1 ...
ESC[1AESC[2K^MStopping pi-hole_server_1 ... ESC[32mdoneESC[0m^MESC[1BRemoving pi-hole_server_1 ...
ESC[1AESC[2K^MRemoving pi-hole_server_1 ... ESC[32mdoneESC[0m^MESC[1BGoing to remove pi-hole_server_1
Pulling images for app pi-hole...
Pulling server ...
ESC[1AESC[2K^MPulling server ... ESC[31merrorESC[0m^MESC[1B
ERROR: for server Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 192.168.1.131:53: re
ad udp 192.168.1.131:32784->192.168.1.131:53: read: connection refused
Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 192.168.1.131:53: read udp 192.168.1.13
1:32784->192.168.1.131:53: read: connection refused
I’ve just found another bug, this time in the pi-hole pre-install hook. Here’s a fix for that: umbrel-apps#984.
OK, I’ve got it working now. Here’s the fix: umbrel#1742.
1 Like
thanks will make sure that hotfix is added shortly.