Try adding the / after the port in your widget config.
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
What is the api error (click on the red box)?
Likely unable to reach the host provided.
In paperless' docker compose, set 'container_name:' to 'paperless' or similar, then use that same name as the host given to homepage:
widget: type: paperlessngx url: "http://paperless:8000/" key: [key]
Where is paperless in relation to homepage? For me i have both of them in the same docker host and same docker network on that host and with that i only need to set the paperless container name in the widget. If paperless is on another machine make sure there is no firewall blocking the port number.
They are both a docker-compose on the same machine.
Then you should be able to do like I said and it might solve whatever is happening. I also have both homepage and paperless in the same docker-compose file. If you set the container name for each container then you can just reference that in homepage widgets. For example here is my homepage and paperless:
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
volumes:
- /opt/docker/homepage:/app/config
- /var/run/docker.sock:/var/run/docker.sock:ro # (optional) For docker integrations)
paperless:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
container_name: paperless
restart: unless-stopped
depends_on:
- paperless-redis
- postgres
networks:
- proxy
user: "1000"
environment:
- USERMAP_UID=1000
- USERMAP_GID=1000
- TZ=Europe/Berlin
- PAPERLESS_REDIS=redis://paperless-redis:6379
- PAPERLESS_TIKA_ENABLED=1
- PAPERLESS_TIKA_GOTENBERG_ENDPOINT=http://gotenberg:3000/
- PAPERLESS_TIKA_ENDPOINT=http://tika:9998/
- PAPERLESS_DBENGINE=postgresql
- PAPERLESS_DBHOST=postgres
- PAPERLESS_DBNAME=paperless
- PAPERLESS_DBUSER=paperless
- PAPERLESS_DBPASS=password
volumes:
- /opt/docker/paperless/data:/usr/src/paperless/data
- /opt/docker/paperless/export:/usr/src/paperless/export
- /opt/docker/paperless/consume:/usr/src/paperless/consume
- /mnt/paperless:/usr/src/paperless/media
so both have conatiner_name
set to the same string as the service name. And in my homepage widgets I just use the container name in the URL, example:
- Paperless:
icon: paperless-ngx
href: https://paperless.local.tld/
widget:
type: paperlessngx
url: http://paperless:8000/
username: username
password: password
This only works if they are in the same docker network. If you don't explicitly set the network for the containers and they are in the same compose file then they should be in the same network.
I don't think it's you. The paperless widget stopped working for me recently after it had been fine before. Similar setup to yours.
It bothered me a little but since the widget isn't actually very useful to me I didn't care to invest more time to get to the bottom of it.
Mine works but I'm not in a position to confirm what my yaml looks like, I'll try to remember to check before work.
Would love to see it.
Here's mine from the Paperless compose.yml (non functional):
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx
[...]
labels:
- homepage.group=Productivity
- homepage.name=Paperless
- homepage.icon=paperless.png
- homepage.href=https://[LOCAL URL]
- homepage.description=Document Management
- homepage.widget.type=paperlessngx
- homepage.widget.url=http://[PAPERLESS IP:PORT]
- homepage.widget.key=[PAPERLESS API TOKEN]
And here's the error from Homepage frontend:
API Error: Unknown error
URL: http://[PAPERLESS IP:PORT]/api/statistics/?format=json
Raw Error:
{
"errno": -110,
"code": "ETIMEDOUT",
"syscall": "connect",
"address": "[PAPERLESS IP]",
"port": [PAPERLESS PORT]
}
"code": "ETIMEDOUT"
Homepage is unable to reach the host you gave it. IP/hostname changed.
Don't use the IP of the container, use its name (which you should set in paperless' compose file: 'container_name: paperless')
I need to use the IP for specific reasons concerning my setup; and I don't want the two containers to share a Docker network.
This used to work exactly as is when I set it up, but doesn't anymore.
I tinkered with it some more now and I found that while I can ping the docker host, I can't actually wget anything from any docker services from within the Homepage container. Currently at a loss why that might be.