(To begin with, I apologise for the lack of links, but new members can only have two links in their posts, so I’ve had to remove a heap of them)
Hi there. I’ve recently installed Debian 12 onto an Apple Mac Mini (I’m not running MacOS at all), and have installed Docker onto it. I’m doing everything through the CLI (controlling via SSH in VSCode on my iMac). I’m not using Docker Desktop at all.
I have a few dozen containers running. Most are working fine. However, as I work my way through Jim’s Garage’s Homelab playlist on YouTube, some of the services I’m trying to set up simply aren’t working. I’ve followed the steps in these videos exactly, so I’m assuming the problem is me/my system, not the services.
I realise this isn’t the place for support for individual services, but the problems I’m encountering don’t seem to be documented anywhere else, so I’m wondering if my issues are being caused by some Docker-specific configuration (or an issue with the Docker host computer).
Specifically, I’m having problems with:
- Homepage, and getting it to retrieve data from the Traefik API. I have requested support from the Homepage developer here. When I posted about this same issue in the Traefik support forum, someone suggested posting about it here.
To summarise: Homepage is meant to get data from Traefik and display it on a webpage. I can load the Traefik API directly in my web browser (on my iMac), and I can ping the Docker host’s external IP address from within the Homepage container. However, I cannot curl the Traefik API from within the Homepage container.
curl https://traefik-dashboard.mydomain.com/api/overview
curl: (6) Could not resolve host: traefik-dashboard.mydomain.com
I also noted these lines in the Homepage log file (as seen in Portainer):
[2024-07-16T01:59:01.109Z] error: <httpProxy> Error calling https://traefik-dashboard.mydomain.com/api/overview...
[2024-07-16T01:59:01.110Z] error: <httpProxy> [
500,
Error: getaddrinfo ENOTFOUND traefik-dashboard.mydomain.com
at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) {
errno: -3008,
code: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'traefik-dashboard.mydomain.com'
}"
- Using Authentik (SSO) to log into my Portainer installation. I was able to get it to work just fine when I had Portainer set up with IPaddress:port, but once I set up an FQDN for it, Authentik stopped working (despite configuring Authentik to suit the FQDN). Ultimately, when I go to log into Portainer, if I click the “OAuth” button, all I get is an “Unauthorized” error, with no useful information provided. There’s nothing useful in the logs (for either Portainer or Authentik).
- Netbird (self-hosted VPN) using Authentik for SSO. Again, I followed their official documentation exactly. However, when I reached step 5 of their installation guide, I had to run a script that was meant to access the Authentik API and it was then meant to generate a docker-compose file for me:
./configure.sh
using provided server's public IP
loading OpenID configuration from https://authentik.mydomain.com/application/o/netbird/.well-known/openid-configuration to the openid-configuration.json file
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: authentik.mydomain.com
Again, I can access that API (https://authentik.mydomain.com/application/o/netbird/.well-known/openid-configuration
) directly in a web browser from my iMac without any issues.
It seems to me that these issues have one thing in common: DNS.
So I’m wondering if - for some reason - these problems are being caused by an inability of the various Docker containers/services to resolve the FQDNs.
cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.4.1
…I don’t really understand if that’s the right thing or not. My entire network (UniFi) gateway (a UniFi Dream Machine SE) is at 192.168.1.1. My Docker host (the Mac Mini) is in a VLAN 192.168.4.*, and its IP is 192.168.4.7.
It may/may not be relevant, but I’ve also got Pi-Hole installed (in another Docker container), acting as a DNS. That’s where I’ve got all my custom DNS records for my various services. That appears to be working fine, as far as I can tell. That Pi-Hole instance is accessible via 192.168.4.7:500.
As a test, I just added the Docker host’s IP to that file:
cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.4.1
nameserver 192.168.4.7
…and then I retried the Netbird script, and got the same error: curl: (6) Could not resolve host: authentik.davesservers.com
, so this doesn’t seem to have fixed things. (I didn’t reboot or do anything after changing /etc/resolv.conf… should I have?)
Also, these containers are all on the same network, called “proxy”.
docker network inspect proxy
[
{
"Name": "proxy",
"Id": "b7c9bbbe3655e262291575826d2915eb398fa11a540ac649f8eb32b8800b1afc",
"Created": "2024-07-13T17:13:53.904712745+10:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.22.0.0/16",
"Gateway": "172.22.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
.... (list of containers here, which definitely includes Authentik, Traefik, and Homepage)
Sorry for the lengthy post but hopefully someone out there knows what I’m doing wrong.
Thank you in advance for any ideas anyone may have.