Hi everyone,
I am attempting to run Grampsweb on a Raspberry Pi 4 behind a Traefik reverse proxy via docker swarm. There is one other service in the same docker-compose file that runs without issues.
For Grampsweb however, I get either Gateway Timeout, 404 or Bad Gateway errors when attempting to access the UI via browser.
I did notice that when I try a wget towards Grampsweb from inside my Traefik container, I can only connect via http not https. See below:
/ # wget http://10.0.2.8:5000
Connecting to 10.0.2.8:5000 (10.0.2.8:5000)
saving to 'index.html'
index.html 100% |********************************| 1377 0:00:00 ETA
'index.html' saved
/ # wget https://10.0.2.8:5000
Connecting to 10.0.2.8:5000 (10.0.2.8:5000)
^C
Does Grampsweb not receive TLS traffic via port 5000? Has anyone else successfully got it to run behind Traefik with LetsEncrypt certificates?
Thank you!
version: "3.7"
services:
traefik:
# The latest official supported Traefik docker image
image: traefik:latest
ports:
- "80:80"
- "443:443"
networks:
- proxy
volumes:
# So that Traefik can listen to the Docker events
- /var/run/docker.sock:/var/run/docker.sock
# Mounts the Traefik static configuration inside the Traefik container
- /home/traefik/traefik.yml:/etc/traefik/traefik.yml
- /home/traefik/traefiklogs:/traefiklogs
- /home/traefik/letsencrypt:/letsencrypt
environment:
- CLOUDFLARE_DNS_API_TOKEN= ***********
navidrome:
image: deluan/navidrome:latest
environment:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_BASEURL: ""
networks:
- proxy
volumes:
- /home/traefik/navidrome/data:/data
- /mnt/audiostick:/music:ro
deploy:
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefikstack_proxy"
- "traefik.http.routers.navidrome.rule=Host(`music.mydomain.com`)"
- "traefik.http.services.navidrome.loadbalancer.server.port=4533"
- "traefik.http.routers.navidrome.entrypoints=websecure"
- "traefik.http.routers.navidrome.service=navidrome"
- "traefik.http.routers.navidrome.tls=true"
- "traefik.http.routers.navidrome.tls.certresolver=cloudflare"
grampsweb: &grampsweb
image: ghcr.io/gramps-project/grampsweb:latest
environment:
GRAMPSWEB_TREE: "Gramps Web" # will create a new tree if not exists
GRAMPSWEB_CELERY_CONFIG__broker_url: "redis://grampsweb_redis:6379/0"
GRAMPSWEB_CELERY_CONFIG__result_backend: "redis://grampsweb_redis:6379/0"
GRAMPSWEB_RATELIMIT_STORAGE_URI: "redis://grampsweb_redis:6379/1"
depends_on:
- grampsweb_redis
ports: []
networks:
- proxy
volumes:
- /home/traefik/gramps/gramps_users:/app/users # persist user database
- /home/traefik/gramps/gramps_index:/app/indexdir # persist search index
- /home/traefik/gramps/gramps_thumb_cache:/app/thumbnail_cache # persist thumbnails
- /home/traefik/gramps/gramps_cache:/app/cache # persist export and report caches
- /home/traefik/gramps/gramps_secret:/app/secret # persist flask secret
- /home/traefik/gramps/gramps_db:/root/.gramps/grampsdb # persist Gramps database
- /home/traefik/gramps/gramps_media:/app/media # persist media files
- /home/traefik/gramps/gramps_tmp:/tmp
deploy:
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefikstack_proxy"
- "traefik.http.routers.grampsweb.service=grampsweb"
- "traefik.http.routers.grampsweb.rule=Host(`ahnen.mydomain.com`)"
- "traefik.http.services.grampsweb.loadbalancer.server.port=5000"
- "traefik.http.routers.grampsweb.entrypoints=websecure"
- "traefik.http.routers.grampsweb.tls=true"
- "traefik.http.routers.grampsweb.tls.certresolver=cloudflare"
- "traefik.http.services.grampsweb.loadbalancer.server.scheme=https"
grampsweb_celery:
<<: *grampsweb # YAML merge key copying the entire grampsweb service config
ports: []
depends_on:
- grampsweb_redis
networks:
- proxy
command: celery -A gramps_webapi.celery worker --loglevel=INFO
labels: []
grampsweb_redis:
image: redis:alpine
networks:
- proxy
networks:
proxy: