docker icon indicating copy to clipboard operation
docker copied to clipboard

issue with web ui

Open ReaperOfTheSoul opened this issue 1 year ago • 3 comments

Current ENV: Portainer with 7 Docker hosts in swam mode Storage: QNAP with nfs shares

Web UI not loading.

Error NGINX Conatiner: 10.255.250.153 - - [25/Oct/2024:07:44:57 +0000] "GET /static/images/favicon.png HTTP/1.1" 403 555 "https://opvolging.slimfit-center.be/en/software/features" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0" "10.255.0.6"

composer file via portainer deployed:

Please consult the Deployment section in the readme if you want to deploy

this. You need to keep this nginx service, even if you have your own,

otherwise the static files will not be served correctly! If you do remove

it, configure yours similarly to what's in config/nginx.conf

Also take a look at the "Static files" section in the .env file

services: web: image: wger/server:latest depends_on: - db - cache volumes: - static:/home/wger/static - media:/home/wger/media networks: - wger healthcheck: test: wget --no-verbose --tries=1 --spider http://localhost:8000 interval: 10s timeout: 5s start_period: 300s retries: 5 restart: unless-stopped environment: SECRET_KEY: ${SECRET_KEY} SIGNING_KEY: ${SIGNING_KEY} TIME_ZONE: ${TIME_ZONE} WGER_INSTANCE: ${WGER_INSTANCE} ALLOW_REGISTRATION: ${ALLOW_REGISTRATION} ALLOW_GUEST_USERS: ${ALLOW_GUEST_USERS} ALLOW_UPLOAD_VIDEOS: ${ALLOW_UPLOAD_VIDEOS} MIN_ACCOUNT_AGE_TO_TRUST: ${MIN_ACCOUNT_AGE_TO_TRUST} SYNC_EXERCISES_CELERY: ${SYNC_EXERCISES_CELERY} SYNC_EXERCISE_IMAGES_CELERY: ${SYNC_EXERCISE_IMAGES_CELERY} SYNC_EXERCISE_VIDEOS_CELERY: ${SYNC_EXERCISE_VIDEOS_CELERY} SYNC_INGREDIENTS_CELERY: ${SYNC_INGREDIENTS_CELERY} DOWNLOAD_INGREDIENTS_FROM: ${DOWNLOAD_INGREDIENTS_FROM} USE_CELERY: ${USE_CELERY} CELERY_BROKER: ${CELERY_BROKER} CELERY_BACKEND: ${CELERY_BACKEND} CELERY_FLOWER_PASSWORD: ${CELERY_FLOWER_PASSWORD} DJANGO_DB_ENGINE: ${DJANGO_DB_ENGINE} DJANGO_DB_DATABASE: ${DJANGO_DB_DATABASE} DJANGO_DB_USER: ${DJANGO_DB_USER} DJANGO_DB_PASSWORD: ${DJANGO_DB_PASSWORD} DJANGO_DB_HOST: ${DJANGO_DB_HOST} DJANGO_DB_PORT: ${DJANGO_DB_PORT} DJANGO_PERFORM_MIGRATIONS: ${DJANGO_PERFORM_MIGRATIONS} DJANGO_CACHE_BACKEND: ${DJANGO_CACHE_BACKEND} DJANGO_CACHE_LOCATION: ${DJANGO_CACHE_LOCATION} DJANGO_CACHE_TIMEOUT: ${DJANGO_CACHE_TIMEOUT} DJANGO_CACHE_CLIENT_CLASS: ${DJANGO_CACHE_CLIENT_CLASS} AXES_ENABLED: ${AXES_ENABLED} AXES_FAILURE_LIMIT: ${AXES_FAILURE_LIMIT} AXES_COOLOFF_TIME: ${AXES_COOLOFF_TIME} AXES_HANDLER: ${AXES_HANDLER} AXES_LOCKOUT_PARAMETERS: ${AXES_LOCKOUT_PARAMETERS} AXES_IPWARE_PROXY_COUNT: ${AXES_IPWARE_PROXY_COUNT} AXES_IPWARE_META_PRECEDENCE_ORDER: ${AXES_IPWARE_META_PRECEDENCE_ORDER} DJANGO_DEBUG: ${DJANGO_DEBUG} WGER_USE_GUNICORN: ${WGER_USE_GUNICORN} EXERCISE_CACHE_TTL: ${EXERCISE_CACHE_TTL} SITE_URL: ${SITE_URL} ACCESS_TOKEN_LIFETIME: ${ACCESS_TOKEN_LIFETIME} REFRESH_TOKEN_LIFETIME: ${REFRESH_TOKEN_LIFETIME} USE_RECAPTCHA: ${USE_RECAPTCHA} DJANGO_CLEAR_STATIC_FIRST: ${DJANGO_CLEAR_STATIC_FIRST} FROM_EMAIL: ${FROM_EMAIL} NUMBER_OF_PROXIES: ${NUMBER_OF_PROXIES} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} CSRF_TRUSTED_ORIGINS: ${CSRF_TRUSTED_ORIGINS} SECURE_PROXY_SSL_HEADER: ${SECURE_PROXY_SSL_HEADER}

db: image: postgres:15-alpine volumes: - postgres-data:/var/lib/postgresql/data/ healthcheck: test: pg_isready -U wger interval: 10s timeout: 5s retries: 5 start_period: 30s restart: unless-stopped networks: - wger environment: SECRET_KEY: ${SECRET_KEY} SIGNING_KEY: ${SIGNING_KEY} TIME_ZONE: ${TIME_ZONE} WGER_INSTANCE: ${WGER_INSTANCE} ALLOW_REGISTRATION: ${ALLOW_REGISTRATION} ALLOW_GUEST_USERS: ${ALLOW_GUEST_USERS} ALLOW_UPLOAD_VIDEOS: ${ALLOW_UPLOAD_VIDEOS} MIN_ACCOUNT_AGE_TO_TRUST: ${MIN_ACCOUNT_AGE_TO_TRUST} SYNC_EXERCISES_CELERY: ${SYNC_EXERCISES_CELERY} SYNC_EXERCISE_IMAGES_CELERY: ${SYNC_EXERCISE_IMAGES_CELERY} SYNC_EXERCISE_VIDEOS_CELERY: ${SYNC_EXERCISE_VIDEOS_CELERY} SYNC_INGREDIENTS_CELERY: ${SYNC_INGREDIENTS_CELERY} DOWNLOAD_INGREDIENTS_FROM: ${DOWNLOAD_INGREDIENTS_FROM} USE_CELERY: ${USE_CELERY} CELERY_BROKER: ${CELERY_BROKER} CELERY_BACKEND: ${CELERY_BACKEND} CELERY_FLOWER_PASSWORD: ${CELERY_FLOWER_PASSWORD} DJANGO_DB_ENGINE: ${DJANGO_DB_ENGINE} DJANGO_DB_DATABASE: ${DJANGO_DB_DATABASE} DJANGO_DB_USER: ${DJANGO_DB_USER} DJANGO_DB_PASSWORD: ${DJANGO_DB_PASSWORD} DJANGO_DB_HOST: ${DJANGO_DB_HOST} DJANGO_DB_PORT: ${DJANGO_DB_PORT} DJANGO_PERFORM_MIGRATIONS: ${DJANGO_PERFORM_MIGRATIONS} DJANGO_CACHE_BACKEND: ${DJANGO_CACHE_BACKEND} DJANGO_CACHE_LOCATION: ${DJANGO_CACHE_LOCATION} DJANGO_CACHE_TIMEOUT: ${DJANGO_CACHE_TIMEOUT} DJANGO_CACHE_CLIENT_CLASS: ${DJANGO_CACHE_CLIENT_CLASS} AXES_ENABLED: ${AXES_ENABLED} AXES_FAILURE_LIMIT: ${AXES_FAILURE_LIMIT} AXES_COOLOFF_TIME: ${AXES_COOLOFF_TIME} AXES_HANDLER: ${AXES_HANDLER} AXES_LOCKOUT_PARAMETERS: ${AXES_LOCKOUT_PARAMETERS} AXES_IPWARE_PROXY_COUNT: ${AXES_IPWARE_PROXY_COUNT} AXES_IPWARE_META_PRECEDENCE_ORDER: ${AXES_IPWARE_META_PRECEDENCE_ORDER} DJANGO_DEBUG: ${DJANGO_DEBUG} WGER_USE_GUNICORN: ${WGER_USE_GUNICORN} EXERCISE_CACHE_TTL: ${EXERCISE_CACHE_TTL} SITE_URL: ${SITE_URL} ACCESS_TOKEN_LIFETIME: ${ACCESS_TOKEN_LIFETIME} REFRESH_TOKEN_LIFETIME: ${REFRESH_TOKEN_LIFETIME} USE_RECAPTCHA: ${USE_RECAPTCHA} DJANGO_CLEAR_STATIC_FIRST: ${DJANGO_CLEAR_STATIC_FIRST} FROM_EMAIL: ${FROM_EMAIL} NUMBER_OF_PROXIES: ${NUMBER_OF_PROXIES} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB}

cache: image: redis volumes: - redis-data:/data healthcheck: test: redis-cli ping interval: 10s timeout: 5s retries: 5 start_period: 30s restart: unless-stopped networks: - wger

celery_worker: image: wger/server:latest command: /start-worker volumes: - media:/home/wger/media depends_on: - web healthcheck: test: celery -A wger inspect ping interval: 10s timeout: 5s retries: 5 start_period: 30s networks: - wger environment: SECRET_KEY: ${SECRET_KEY} SIGNING_KEY: ${SIGNING_KEY} TIME_ZONE: ${TIME_ZONE} WGER_INSTANCE: ${WGER_INSTANCE} ALLOW_REGISTRATION: ${ALLOW_REGISTRATION} ALLOW_GUEST_USERS: ${ALLOW_GUEST_USERS} ALLOW_UPLOAD_VIDEOS: ${ALLOW_UPLOAD_VIDEOS} MIN_ACCOUNT_AGE_TO_TRUST: ${MIN_ACCOUNT_AGE_TO_TRUST} SYNC_EXERCISES_CELERY: ${SYNC_EXERCISES_CELERY} SYNC_EXERCISE_IMAGES_CELERY: ${SYNC_EXERCISE_IMAGES_CELERY} SYNC_EXERCISE_VIDEOS_CELERY: ${SYNC_EXERCISE_VIDEOS_CELERY} SYNC_INGREDIENTS_CELERY: ${SYNC_INGREDIENTS_CELERY} DOWNLOAD_INGREDIENTS_FROM: ${DOWNLOAD_INGREDIENTS_FROM} USE_CELERY: ${USE_CELERY} CELERY_BROKER: ${CELERY_BROKER} CELERY_BACKEND: ${CELERY_BACKEND} CELERY_FLOWER_PASSWORD: ${CELERY_FLOWER_PASSWORD} DJANGO_DB_ENGINE: ${DJANGO_DB_ENGINE} DJANGO_DB_DATABASE: ${DJANGO_DB_DATABASE} DJANGO_DB_USER: ${DJANGO_DB_USER} DJANGO_DB_PASSWORD: ${DJANGO_DB_PASSWORD} DJANGO_DB_HOST: ${DJANGO_DB_HOST} DJANGO_DB_PORT: ${DJANGO_DB_PORT} DJANGO_PERFORM_MIGRATIONS: ${DJANGO_PERFORM_MIGRATIONS} DJANGO_CACHE_BACKEND: ${DJANGO_CACHE_BACKEND} DJANGO_CACHE_LOCATION: ${DJANGO_CACHE_LOCATION} DJANGO_CACHE_TIMEOUT: ${DJANGO_CACHE_TIMEOUT} DJANGO_CACHE_CLIENT_CLASS: ${DJANGO_CACHE_CLIENT_CLASS} AXES_ENABLED: ${AXES_ENABLED} AXES_FAILURE_LIMIT: ${AXES_FAILURE_LIMIT} AXES_COOLOFF_TIME: ${AXES_COOLOFF_TIME} AXES_HANDLER: ${AXES_HANDLER} AXES_LOCKOUT_PARAMETERS: ${AXES_LOCKOUT_PARAMETERS} AXES_IPWARE_PROXY_COUNT: ${AXES_IPWARE_PROXY_COUNT} AXES_IPWARE_META_PRECEDENCE_ORDER: ${AXES_IPWARE_META_PRECEDENCE_ORDER} DJANGO_DEBUG: ${DJANGO_DEBUG} WGER_USE_GUNICORN: ${WGER_USE_GUNICORN} EXERCISE_CACHE_TTL: ${EXERCISE_CACHE_TTL} SITE_URL: ${SITE_URL} ACCESS_TOKEN_LIFETIME: ${ACCESS_TOKEN_LIFETIME} REFRESH_TOKEN_LIFETIME: ${REFRESH_TOKEN_LIFETIME} USE_RECAPTCHA: ${USE_RECAPTCHA} DJANGO_CLEAR_STATIC_FIRST: ${DJANGO_CLEAR_STATIC_FIRST} FROM_EMAIL: ${FROM_EMAIL} NUMBER_OF_PROXIES: ${NUMBER_OF_PROXIES} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB}

celery_beat: image: wger/server:latest command: /start-beat volumes: - celery-beat:/home/wger/beat/ depends_on: - celery_worker networks: - wger environment: SECRET_KEY: ${SECRET_KEY} SIGNING_KEY: ${SIGNING_KEY} TIME_ZONE: ${TIME_ZONE} WGER_INSTANCE: ${WGER_INSTANCE} ALLOW_REGISTRATION: ${ALLOW_REGISTRATION} ALLOW_GUEST_USERS: ${ALLOW_GUEST_USERS} ALLOW_UPLOAD_VIDEOS: ${ALLOW_UPLOAD_VIDEOS} MIN_ACCOUNT_AGE_TO_TRUST: ${MIN_ACCOUNT_AGE_TO_TRUST} SYNC_EXERCISES_CELERY: ${SYNC_EXERCISES_CELERY} SYNC_EXERCISE_IMAGES_CELERY: ${SYNC_EXERCISE_IMAGES_CELERY} SYNC_EXERCISE_VIDEOS_CELERY: ${SYNC_EXERCISE_VIDEOS_CELERY} SYNC_INGREDIENTS_CELERY: ${SYNC_INGREDIENTS_CELERY} DOWNLOAD_INGREDIENTS_FROM: ${DOWNLOAD_INGREDIENTS_FROM} USE_CELERY: ${USE_CELERY} CELERY_BROKER: ${CELERY_BROKER} CELERY_BACKEND: ${CELERY_BACKEND} CELERY_FLOWER_PASSWORD: ${CELERY_FLOWER_PASSWORD} DJANGO_DB_ENGINE: ${DJANGO_DB_ENGINE} DJANGO_DB_DATABASE: ${DJANGO_DB_DATABASE} DJANGO_DB_USER: ${DJANGO_DB_USER} DJANGO_DB_PASSWORD: ${DJANGO_DB_PASSWORD} DJANGO_DB_HOST: ${DJANGO_DB_HOST} DJANGO_DB_PORT: ${DJANGO_DB_PORT} DJANGO_PERFORM_MIGRATIONS: ${DJANGO_PERFORM_MIGRATIONS} DJANGO_CACHE_BACKEND: ${DJANGO_CACHE_BACKEND} DJANGO_CACHE_LOCATION: ${DJANGO_CACHE_LOCATION} DJANGO_CACHE_TIMEOUT: ${DJANGO_CACHE_TIMEOUT} DJANGO_CACHE_CLIENT_CLASS: ${DJANGO_CACHE_CLIENT_CLASS} AXES_ENABLED: ${AXES_ENABLED} AXES_FAILURE_LIMIT: ${AXES_FAILURE_LIMIT} AXES_COOLOFF_TIME: ${AXES_COOLOFF_TIME} AXES_HANDLER: ${AXES_HANDLER} AXES_LOCKOUT_PARAMETERS: ${AXES_LOCKOUT_PARAMETERS} AXES_IPWARE_PROXY_COUNT: ${AXES_IPWARE_PROXY_COUNT} AXES_IPWARE_META_PRECEDENCE_ORDER: ${AXES_IPWARE_META_PRECEDENCE_ORDER} DJANGO_DEBUG: ${DJANGO_DEBUG} WGER_USE_GUNICORN: ${WGER_USE_GUNICORN} EXERCISE_CACHE_TTL: ${EXERCISE_CACHE_TTL} SITE_URL: ${SITE_URL} ACCESS_TOKEN_LIFETIME: ${ACCESS_TOKEN_LIFETIME} REFRESH_TOKEN_LIFETIME: ${REFRESH_TOKEN_LIFETIME} USE_RECAPTCHA: ${USE_RECAPTCHA} DJANGO_CLEAR_STATIC_FIRST: ${DJANGO_CLEAR_STATIC_FIRST} FROM_EMAIL: ${FROM_EMAIL} NUMBER_OF_PROXIES: ${NUMBER_OF_PROXIES} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB}

nginx: image: nginx:stable depends_on: - web volumes: - nginxconfig:/etc/nginx/conf.d - static:/wger/static - media:/wger/media healthcheck: test: service nginx status interval: 10s timeout: 5s retries: 5 start_period: 30s restart: unless-stopped networks: - wger - traefik deploy: placement: constraints: # Make the traefik service run only on the node with this label # as the node with it has the volume for the certificates - node.labels.traefik-public.traefik-public-certificates == true labels: #BaseConfig - "traefik.enable=true" - "traefik.constraint-label=traefik-public" - "traefik.docker.network=traefik_traefik-public" #MiddleWare - "traefik.http.middlewares.slimfitcenteropvolging-redirect.redirectscheme.scheme=https" - "traefik.http.middlewares.slimfitcenteropvolging-redirect.redirectscheme.permanent=true" #ServiceConfig - "traefik.http.routers.slimfitcenteropvolging-http.service=gregitedms" - "traefik.http.services.slimfitcenteropvolging.loadbalancer.server.port=80" #EntryPoints - "traefik.http.routers.slimfitcenteropvolging-http.entrypoints=http" - "traefik.http.routers.slimfitcenteropvolging-http.rule=Host(${SITE_HOST})" - "traefik.http.routers.slimfitcenteropvolging-http.middlewares=slimfitcenteropvolging-redirect" - "traefik.http.routers.slimfitcenteropvolging-https.entrypoints=https" - "traefik.http.routers.slimfitcenteropvolging-https.rule=Host(${SITE_HOST})" - "traefik.http.routers.slimfitcenteropvolging-https.tls=true" - "traefik.http.routers.slimfitcenteropvolging-https.tls.certresolver=le"

volumes: postgres-data: driver_opts: type: nfs o: addr=10.0.105.1,rw device: ":/DockerClusterData/SlimFitCenter/Wger/POSTGRES" celery-beat: driver_opts: type: nfs o: addr=10.0.105.1,rw device: ":/DockerClusterData/SlimFitCenter/Wger/CELERY" static: driver_opts: type: nfs o: addr=10.0.105.1,rw device: ":/DockerClusterData/SlimFitCenter/Wger/STATIC" media: driver_opts: type: nfs o: addr=10.0.105.1,rw device: ":/DockerClusterData/SlimFitCenter/Wger/MEDIA" nginxconfig: driver_opts: type: nfs o: addr=10.0.105.1,rw device: ":/DockerClusterData/SlimFitCenter/Wger/NGINXCONFIG" redis-data: driver_opts: type: nfs o: addr=10.0.105.1,rw device: ":/DockerClusterData/SlimFitCenter/Wger/REDIS" caddy: driver_opts: type: nfs o: addr=10.0.105.1,rw device: ":/DockerClusterData/SlimFitCenter/Wger/CADDY" caddy-data: driver_opts: type: nfs o: addr=10.0.105.1,rw device: ":/DockerClusterData/SlimFitCenter/Wger/CADDYDATA" caddy-logs: driver_opts: type: nfs o: addr=10.0.105.1,rw device: ":/DockerClusterData/SlimFitCenter/Wger/CADDYLOGS" caddy-config: driver_opts: type: nfs o: addr=10.0.105.1,rw device: ":/DockerClusterData/SlimFitCenter/Wger/CADDYCONFIG"

networks: wger: driver: overlay attachable: true ipam: config: - subnet: 10.250.12.0/24 traefik: external: name: traefik_traefik-public

ReaperOfTheSoul avatar Oct 25 '24 07:10 ReaperOfTheSoul

conflicting access rights for ngnx vs wweb service

ReaperOfTheSoul avatar Oct 25 '24 14:10 ReaperOfTheSoul

conflicting access rights for ngnx vs wweb service

hi! yes, if there you mount folders you will get problems when accessing these files (that's why we're using the volumes). However, this should be fixable with some chown and chmod. If you manage to fix this, tell us what you did you I can mention this in a comment in the readme

rolandgeider avatar Oct 26 '24 07:10 rolandgeider

Dear,

I did but the web lost access

Sent from my Galaxy

-------- Original message -------- From: Roland Geider @.> Date: 10/26/24 09:59 (GMT+01:00) To: wger-project/docker @.> Cc: ReaperOfSouls @.>, Author @.> Subject: Re: [wger-project/docker] issue with web ui (Issue #106)

conflicting access rights for ngnx vs wweb service

hi! yes, if there you mount folders you will get problems when accessing these files (that's why we're using the volumes). However, this should be fixable with some chown and chmod. If you manage to fix this, tell us what you did you I can mention this in a comment in the readme

— Reply to this email directly, view it on GitHubhttps://github.com/wger-project/docker/issues/106#issuecomment-2439422815, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AR3INHC6HH4XA3HEEFRFNATZ5NDXBAVCNFSM6AAAAABQSWD3CKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZZGQZDEOBRGU. You are receiving this because you authored the thread.Message ID: @.***>

ReaperOfTheSoul avatar Oct 27 '24 13:10 ReaperOfTheSoul