mirror of
https://github.com/fosrl/pangolin.git
synced 2026-05-06 12:55:03 -05:00
[GH-ISSUE #778] '404 Page Not Found' error on Pangolin frontend - after switching to Wildcard certificates #3569
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @BlackrazorNZ on GitHub (May 24, 2025).
Original GitHub issue: https://github.com/fosrl/pangolin/issues/778
Hi,
While it works flawlessly on HTTPS certificates, I'm having a pig of a time getting Pangolin working with DNS challenge certificates. It got so frustrating that I destroyed and rebuilt my entire Pangolin VPS from scratch so that setting up DNS challenge for wildcard could be the first thing I did after completing the Pangolin install and setting up a Site - I've not even created any Resources yet.
The DNS challenge attempt via Cloudfare seems to work fine (and I can verify seperately that the Cloudflare DNS API call is working correctly as it generates a DNS challenge cert almost instantly in NGINX Proxy Manager), but any attempt to access the Pangolin frontend is met with a 404 error.
Given that I've followed the instructions in the Pangolin Docs to the letter, I'm stumped as to where to go here. I have changed nothing post-install apart from the exact changes recommended in the documentation for wildcard certs. If I revert the changes (via a backup of the config directory etc) it starts working again immediately, albeit via HTTPS certificate.
Any advice on what could be wrong? I've spent 5 hours on this now just trying to debug the issue. Relevant (redacted) files below.
docker-compose.yml :
traefik_config.yml (from config/traefik):
dynamic_config.yml (from config/traefik):
config.yml (from config):
acme.json (from config/letsencrypt):
@BlackrazorNZ commented on GitHub (May 24, 2025):
A log dump from 'docker compose logs -f' follows, approximately 2 minutes after bringing the docker stack up:
@kmanwar89 commented on GitHub (May 26, 2025):
Hey there, not a pangolin expert but I just spent a few hours last night on this (though my issue was caused by something else)
I didn't notice any difference in using the
prefer_wildcard_certsflag in my testing, nor did I need to specify the domains/sans field (though I did this one anyways).What stood out to me in the output you shared is this line:
traefik | 2025-05-24T01:36:14Z DBG github.com/traefik/traefik/v3/pkg/tls/tlsmanager.go:321 > No default certificate, fallback to the internal generated certificate tlsStoreName=defaultYour config looks almost identical to my working wildcard + Pangolin setup. For troubleshooting, I would try the following:
config/traefik/traefik_config.ymlfile to increase the verbosity of logging and follow the logs usingdocker compose logs -fin a second terminal window. Under thelogsection, changelevel: INFOtolevel: DEBUG.config/letsencrypt) by deleting thatacme.jsonfile.stagingletsencrypt URL (caServer: https://acme-staging-v02.api.letsencrypt.org/directory) so you don't inadvertently hit the rate limit while troubleshooting this. If it works, you should have youracme.jsonfile populated again (mine was about 40k file size from about 6 domains) and if you go to a website, it'll show a cert error, and the cert will show Lets Encrypt Staging.I think because you already have certs, net-new ones aren't being requested. I got this from the 'Verify it works' section of the doc page on this topic
Good luck!
@BlackrazorNZ commented on GitHub (May 27, 2025):
Closing this one, figured it out with assistance from the Discord group. The issue is that the 'domains' value in
dynamic_config.ymlwas incorrectly indented, and needs to be formatted so that the 'domains' is indented to align with 'certResolver' like so: