I'm trying to set up local DNS using Pi-hole.
I have successfully set up Pi-hole and added a local DNS record local.com
, pointing it to the server running the Pi-hole container 192.168.0.101
.
Then I set up the Audiobookshelf container using the guide from Audiobookshelf, where I set up Nginx Proxy Manager with the following compose file:
services:
nginx-proxy-manager:
image: docker.io/jc21/nginx-proxy-manager:latest
container_name: nginx-proxy-manager
ports:
- 80:80
- 443:443
- 81:81
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
restart: unless-stopped
And Audiobookshelf with the following compose file:
services:
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
container_name: audiobookshelf
volumes:
- ./audiobooks:/audiobooks
- ./podcasts:/podcasts
- ./metadata:/metadata
- ./config:/config
restart: unless-stopped
networks:
nginx:
name: nginx-proxy-manager_default
external: true
I did not specify a port, hoping that Nginx could manage it.
Then I set up Nginx Proxy Manager following the guide from Audiobookshelf by adding a proxy host. ~~Trying to resolve audiobookshelf.local.com
to~~ I simply followed the guide and wasn’t sure why the “Forward Hostname / IP” should be the container name audiobookshelf
.
I also created a self-signed certificate.
But I cannot access https://audiobookshelf.local.com/
or http://audiobookshelf.local.com/
(it automatically forwards to HTTPS).
I tried adding a local DNS record:
audiobookshelf.local.com
→ 192.168.0.101
in Pi-hole.
Now, when I access audiobookshelf.local.com
, the site shows:
502 Bad Gateway – openresty
I think the problem lies in the Docker network setup. I suspect the Audiobookshelf Docker container is not communicating with Nginx.
Would appreciate any help!
I'm pretty sure you have to specify a different port. Audiobookshelf uses port 80 by default - which is already taken by NPM - and since you're not mapping it to any other port those services will conflict.
Map the port to something easy to remember in the compose file. Not only is it required in your setup but it is good practice. If you have to manage a lot of services, it is hard to keep track of all the ports they use if you keep them on their default values. I personally chose a port range (like 12300 -> 12399) and map all of my services respectively (Komodo to 12300, Authentik to 12301, etc.).
Also remember to update the port in your NPM config.
TL;DR: Audiobookshelf's default port is 80, which conflicts with NPM. Change it.
thank you!
I have added
in audiobookshelf docker compose and changed npm settings
But it still gives me the same 502 Bad Gateway error.
I've just noticed: you've set your forward hostname/IP to
audiobookshelf
. That should either be your PC's IP address (if you've set up a static one in your router's panel) or its hostname. Unless you've named your PCaudiobookshelf
it still won't work.This is about addressing the containers in docker. It has nothing to do with the local network.