I have readarr and all other arrs working in Ubuntu with docker portainer. I followed the trash guides and LinuxServerio guides to get me this far. I want to expand my book library, and so I have added calibre.
After having calibre import my book library, I went to readarr to delete the root, and re-add it with the new path to the calibre library. I am having problems with the Calibre Settings on the Add Root page.
The calibre server is listening at 172.18.0.2, port 8081, HTTP. I have created a user account on the calibre "sharing over the net" page. In readarr, I have set the Calibre Host to 172.18.0.2 and the Calibre Port to 8081. When I click save, I get the error Unknown exception: Http request timed out.
Most of the guides I have found are 3 or 4 years old. On one guide the Calibre Host was set to: calibre. That doesn't work. Setting the Host to the IP of my server doesn't work either.
Can any one help? I don't know if I have a permissions or firewall problem, or if I am just doing something wrong. The calibre logs are not showing any issues. I have copied the .yaml files used below.
-services:
- calibre:
- image: lscr.io/linuxserver/calibre:latest
- container_name: calibre
- security_opt:
- seccomp:unconfined
- environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- CLI_ARGS = #optional
- volumes:
- /data/calibre:/config
- /data/Media/calibre:/library
- /data/Media/books:/upload
- ports:
- 8080:8080
- 8081:8081
- restart: unless-stopped
-services:
- readarr:
- image: lscr.io/linuxserver/readarr:develop
- container_name: readarr
- environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- volumes:
- /data/readarr:/config
- /data/Media/calibre:/library
- /data/Media/downloads:/downloads
- ports:
- 8787:8787
- restart: unless-stopped
I think you're using docker internal IPs, which are not static and can change between docker compose runs. You can instead address them by name if you connect then to a same virtual network: https://docs.docker.com/compose/networking/#specify-custom-networks
This allows two service to "see eachother". For example "calibre:8081" will resolve to an internal IP address. I'm general, this is a better approach when you need to connect apps to each other.
You were correct, thank you so much. The apps were in the default network docker0. I looked into it, and the easiest option for my situation was simply to create another bridge network and move my apps into that. Now readarr can find Host = Calibre.
Glad you figured it out! A separate network for a set of services that need to talk to eachother is the way I do it for my selfhosted tools, if you want some more ideas on setting up the *arr apps using docker compose, this is my current setup: https://github.com/hosaka/selfhosted/blob/main/servarr.yml