Error While setting up Calibre Web

Hey, These are my logs I’m not able to set up calibre web.
Ps : pi4 with docker installed

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-envfile: executing... 
[cont-init.d] 01-envfile: exited 0.
[cont-init.d] 01-migrations: executing... 
[migrations] started
[migrations] no migrations found
[cont-init.d] 01-migrations: exited 0.
[cont-init.d] 10-adduser: executing... 

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/


Brought to you by linuxserver.io
-------------------------------------

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    1000
User gid:    100
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing... 
[cont-init.d] 30-config: exited 0.
[cont-init.d] 90-custom-folders: executing... 
[cont-init.d] 90-custom-folders: exited 0.
[cont-init.d] 99-custom-scripts: executing... 
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-scripts: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Traceback (most recent call last):
  File "/usr/lib/python3.8/urllib/request.py", line 1354, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
  File "/usr/lib/python3.8/http/client.py", line 1256, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1302, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1251, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1011, in _send_output
    self.send(msg)
  File "/usr/lib/python3.8/http/client.py", line 951, in send
    self.connect()
  File "/usr/lib/python3.8/http/client.py", line 1418, in connect
    super().connect()
  File "/usr/lib/python3.8/http/client.py", line 922, in connect
    self.sock = self._create_connection(
  File "/usr/lib/python3.8/socket.py", line 787, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "/usr/lib/python3.8/socket.py", line 918, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 64, in get
    with contextlib.closing(urlopen(
  File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.8/urllib/request.py", line 525, in open
    response = self._open(req, data)
  File "/usr/lib/python3.8/urllib/request.py", line 542, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.8/urllib/request.py", line 1397, in https_open
    return self.do_open(http.client.HTTPSConnection, req,
  File "/usr/lib/python3.8/urllib/request.py", line 1357, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [Errno -3] Temporary failure in name resolution>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 154, in load
    for item in get_browsers(verify_ssl=verify_ssl):
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 97, in get_browsers
    html = get(settings.BROWSERS_STATS_PAGE, verify_ssl=verify_ssl)
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 84, in get
    raise FakeUserAgentError('Maximum amount of retries reached')
fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.8/urllib/request.py", line 1354, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
  File "/usr/lib/python3.8/http/client.py", line 1256, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1302, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1251, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1011, in _send_output
    self.send(msg)
  File "/usr/lib/python3.8/http/client.py", line 951, in send
    self.connect()
  File "/usr/lib/python3.8/http/client.py", line 1418, in connect
    super().connect()
  File "/usr/lib/python3.8/http/client.py", line 922, in connect
    self.sock = self._create_connection(
  File "/usr/lib/python3.8/socket.py", line 787, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "/usr/lib/python3.8/socket.py", line 918, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 64, in get
    with contextlib.closing(urlopen(
  File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.8/urllib/request.py", line 525, in open
    response = self._open(req, data)
  File "/usr/lib/python3.8/urllib/request.py", line 542, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.8/urllib/request.py", line 1397, in https_open
    return self.do_open(http.client.HTTPSConnection, req,
  File "/usr/lib/python3.8/urllib/request.py", line 1357, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [Errno -3] Temporary failure in name resolution>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/app/calibre-web/cps.py", line 34, in <module>
    from cps.about import about
  File "/app/calibre-web/cps/about.py", line 62, in <module>
    from scholarly import scholarly
  File "/usr/local/lib/python3.8/dist-packages/scholarly/__init__.py", line 4, in <module>
    scholarly = _Scholarly()
  File "/usr/local/lib/python3.8/dist-packages/scholarly/_scholarly.py", line 28, in __init__
    self.__nav = Navigator()
  File "/usr/local/lib/python3.8/dist-packages/scholarly/_navigator.py", line 26, in __call__
    cls._instances[cls] = super(Singleton, cls).__call__(*args,
  File "/usr/local/lib/python3.8/dist-packages/scholarly/_navigator.py", line 42, in __init__
    self.pm1 = ProxyGenerator()
  File "/usr/local/lib/python3.8/dist-packages/scholarly/_proxy_generator.py", line 53, in __init__
    self._new_session()
  File "/usr/local/lib/python3.8/dist-packages/scholarly/_proxy_generator.py", line 442, in _new_session
    'User-Agent': UserAgent().random,
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/fake.py", line 69, in __init__
    self.load()
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/fake.py", line 75, in load
    self.data = load_cached(
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 250, in load_cached
    update(path, use_cache_server=use_cache_server, verify_ssl=verify_ssl)
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 245, in update
    write(path, load(use_cache_server=use_cache_server, verify_ssl=verify_ssl))
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 187, in load
    ret = json.loads(get(
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 84, in get
    raise FakeUserAgentError('Maximum amount of retries reached')
fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached```

Any help would be appreciated.

Please share the compose or docker run snippet.


version: “2.1”
services:
calibre-web:
image: linuxserver/calibre-web:arm32v7-nightly
container_name: calibre-web
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Kolkata

volumes:
  - /srv/dev-disk-by-uuid-700b0409-4b12-4895-a974-f9e9619a5489/container_data/clients/calibreweb:/config
  - /srv/dev-disk-by-uuid-3bc342b7-0969-4708-bbad-da78f5e92988/volume/calibre/:/books
ports:
  - 8083:8083
restart: unless-stopped

Update :
I thought something was wrong with docker. After reboot, I tried recreating the container with isioarmhf/calibre-web image to find it was working perfect. The WebUI along with database is working fine, So I suppose the problem is on your side, Kindly look into.
Processing: Screenshot from 2022-01-20 19-17-05.png…


Note : Isoioarmhf image is an older fork of linuxserver.io image.

you went from a nightly unsupported release to a 3 year old release and then determined the fault is ours… also lsioarmhf is not a fork, it’s just how we used to handle different architectures prior to our multi-arch images.

i would start by running the stable supported version and provide an updated compose and logs with that for us to go from.

I used the nightly release because I tried setting up the container with the latest release. Anyhow I’ll setup another container with the latest image post the compose and the logs, maybe you can then work on it.

Update :
I used the latest calibre-web image here’s my compose :

version: “2.1”
services:
calibre-web:
image: linuxserver/calibre-web:latest
container_name: calibre-web
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Kolkata

volumes:
  - /srv/dev-disk-by-uuid-700b0409-4b12-4895-a974-f9e9619a5489/container_data/clients/calibrewebtest:/config
  - /srv/dev-disk-by-uuid-3bc342b7-0969-4708-bbad-da78f5e92988/volume/calibre/:/books
ports:
  - 8083:8083
restart: unless-stopped

And here are the Logs

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-envfile: executing... 
[cont-init.d] 01-envfile: exited 0.
[cont-init.d] 01-migrations: executing... 
[migrations] started
[migrations] no migrations found
[cont-init.d] 01-migrations: exited 0.
[cont-init.d] 10-adduser: executing... 
-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/
Brought to you by linuxserver.io
-------------------------------------
To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------
User uid:    1000
User gid:    100
-------------------------------------
[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing... 
cp: cannot stat '/app/calibre-web/gdrive.db': No such file or directory
[cont-init.d] 30-config: exited 0.
[cont-init.d] 90-custom-folders: executing... 
[cont-init.d] 90-custom-folders: exited 0.
[cont-init.d] 99-custom-scripts: executing... 
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-scripts: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Traceback (most recent call last):
  File "/usr/lib/python3.8/urllib/request.py", line 1354, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
  File "/usr/lib/python3.8/http/client.py", line 1256, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1302, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1251, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1011, in _send_output
    self.send(msg)
  File "/usr/lib/python3.8/http/client.py", line 951, in send
    self.connect()
  File "/usr/lib/python3.8/http/client.py", line 1418, in connect
    super().connect()
  File "/usr/lib/python3.8/http/client.py", line 922, in connect
    self.sock = self._create_connection(
  File "/usr/lib/python3.8/socket.py", line 787, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "/usr/lib/python3.8/socket.py", line 918, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 64, in get
    with contextlib.closing(urlopen(
  File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.8/urllib/request.py", line 525, in open
    response = self._open(req, data)
  File "/usr/lib/python3.8/urllib/request.py", line 542, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.8/urllib/request.py", line 1397, in https_open
    return self.do_open(http.client.HTTPSConnection, req,
  File "/usr/lib/python3.8/urllib/request.py", line 1357, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [Errno -3] Temporary failure in name resolution>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 154, in load
    for item in get_browsers(verify_ssl=verify_ssl):
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 97, in get_browsers
    html = get(settings.BROWSERS_STATS_PAGE, verify_ssl=verify_ssl)
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 84, in get
    raise FakeUserAgentError('Maximum amount of retries reached')
fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3.8/urllib/request.py", line 1354, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
  File "/usr/lib/python3.8/http/client.py", line 1256, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1302, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1251, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1011, in _send_output
    self.send(msg)
  File "/usr/lib/python3.8/http/client.py", line 951, in send
    self.connect()
  File "/usr/lib/python3.8/http/client.py", line 1418, in connect
    super().connect()
  File "/usr/lib/python3.8/http/client.py", line 922, in connect
    self.sock = self._create_connection(
  File "/usr/lib/python3.8/socket.py", line 787, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "/usr/lib/python3.8/socket.py", line 918, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 64, in get
    with contextlib.closing(urlopen(
  File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.8/urllib/request.py", line 525, in open
    response = self._open(req, data)
  File "/usr/lib/python3.8/urllib/request.py", line 542, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.8/urllib/request.py", line 1397, in https_open
    return self.do_open(http.client.HTTPSConnection, req,
  File "/usr/lib/python3.8/urllib/request.py", line 1357, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [Errno -3] Temporary failure in name resolution>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/app/calibre-web/cps.py", line 34, in <module>
    from cps.about import about
  File "/app/calibre-web/cps/about.py", line 62, in <module>
    from scholarly import scholarly
  File "/usr/local/lib/python3.8/dist-packages/scholarly/__init__.py", line 4, in <module>
    scholarly = _Scholarly()
  File "/usr/local/lib/python3.8/dist-packages/scholarly/_scholarly.py", line 28, in __init__
    self.__nav = Navigator()
  File "/usr/local/lib/python3.8/dist-packages/scholarly/_navigator.py", line 26, in __call__
    cls._instances[cls] = super(Singleton, cls).__call__(*args,
  File "/usr/local/lib/python3.8/dist-packages/scholarly/_navigator.py", line 42, in __init__
    self.pm1 = ProxyGenerator()
  File "/usr/local/lib/python3.8/dist-packages/scholarly/_proxy_generator.py", line 53, in __init__
    self._new_session()
  File "/usr/local/lib/python3.8/dist-packages/scholarly/_proxy_generator.py", line 442, in _new_session
    'User-Agent': UserAgent().random,
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/fake.py", line 69, in __init__
    self.load()
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/fake.py", line 75, in load
    self.data = load_cached(
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 250, in load_cached
    update(path, use_cache_server=use_cache_server, verify_ssl=verify_ssl)
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 245, in update
    write(path, load(use_cache_server=use_cache_server, verify_ssl=verify_ssl))
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 187, in load
    ret = json.loads(get(
  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 84, in get
    raise FakeUserAgentError('Maximum amount of retries reached')

Facing the same problem. kindly look into it.

How are you deploying these? You linked a screenshot earlier which is not part of docker
https://discourse.linuxserver.io/uploads/default/original/2X/7/7029a248e84664c5c60c20188a8ec20fcf7ad724.png
are you using some tool to deploy containers?

Yes I’m deploying them using portainer stack.

Unfortunately, portainer is likely the cause of the issue. We don’t support deploying our containers via portainer due to the numerous issues it introduces. I would suggest trying to use pure docker-compose (portainer on arm uses libcompose which has been dead for 6 years) and see if the issue persists. If you choose to continue using portainer, i’m at the end of any support I can offer as we are unable to reproduce your issue.

I have 17 containers running, 14 of them linuxserver containers… I have deployed every single one fo them as a stack, and never had an issue that was stack related.

this is irrelevant and misleading, please stay on topic in the future and don’t be a troll.

It seems quite relevant when it’s suggested portainer is the problem, when I have deployed I don’t know how many containers with Portainer, and never once had an issue that using docker-compose or docker-run solved.

Which arm processor do you use again?

I’ve set up several… same experience… but I’ve got an hC2, Rock64, and Pi3. The two former are still in service as remote backups.

That’s good, you have a similar cpu to the OP, thank you for offering to help him since you’ve already worked out the kinks. Unfortunately, we do not (and have no plans to ever) support portainer ESPECIALLY on arm. But, fortunately, we have users like you with experience with the product and a willingness to assist others.

and that’s fine… but why would you just jump straight to “Well, Portainer is the problem”, w/o any evidence?

We do not support portainer and we never will because of the multitude of bugs portainer introduces especially on arm platforms. Regardless, if you would like to support this user, please do so, we have no intention of ever supporting portainer and the bug encountered aligns with known bugs for libcompose.

Woah, Some real spice here! But to note, all of your images I’ve used till now work just smooth in portainer and give next to zero bugs/errors. Calibreweb was the only exception, On that note the mod could have been a bit more toned down in response! No one’s supporting no one here! I understand mod, you do come across a lot of responses like these out in the wild, but it’s your responsibility to enforce the platform’s rules and be nice. Calling users troll for asking constructive questions is not the way to go!

you are correct, I apologize to anyone I offended. However, as always coming into someone else’s thread to say you have X things working doesnt negate the fact that theirs isn’t, nor does it negate that libcompose has been deprecated for 5 years. (libcompose is what portainer uses for “stacks” on arm, it is NOT docker-compose) . Posts like that are just unhelpful.

I took your compose and deployed it fine without issue. That means there is either a host level issue causing a nuance or portainer. We’re happy to help diagnose the host, as long as portainer is excluded as a potential cause.