Assets load from IP instead of ASSET_URL (reverse proxy using traefik) #527

Open
opened 2026-02-05 17:44:04 +03:00 by OVERLORD · 1 comment
Owner

Originally created by @stephanrenggli on GitHub (Dec 20, 2025).

Current Behavior

I am currently running panel:v1.0.0-beta29 using docker and traefik as reverse proxy.

services:
  pelican:
    container_name: pelican
    image: ghcr.io/pelican-dev/panel:v1.0.0-beta29
    restart: always
    # ports:
    #   - "8888:80"
    #   - "8843:443"
    extra_hosts:
      - "host.docker.internal:host-gateway"
    volumes:
      - pelican-data:/pelican-data
      - pelican-logs:/var/www/html/storage/logs
    environment:
      XDG_DATA_HOME: /pelican-data
      APP_URL: "https://panel.example.com"
      APP_DEBUG: "false"
      APP_ENV: "production"
      ADMIN_EMAIL: "me@example.com"
      MAIL_DRIVER: "log"
      BEHIND_PROXY: "true"
      TRUSTED_PROXIES: "172.16.0.0/12"
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=proxy"
      - "traefik.http.services.pelican.loadbalancer.server.port=80"
      # http
      - "traefik.http.routers.pelican.entrypoints=http"
      - "traefik.http.routers.pelican.rule=Host(`panel.example.com`)"
      - "traefik.http.routers.pelican.middlewares=https-redirect@file"
      # https
      - "traefik.http.routers.pelican-secure.entrypoints=https"
      - "traefik.http.routers.pelican-secure.rule=Host(`panel.example.com`)"
      - "traefik.http.routers.pelican-secure.middlewares=secured@file"
      - "traefik.http.routers.pelican-secure.tls=true"
      - "traefik.http.routers.pelican-secure.service=pelican"
    networks:
      - proxy

volumes:
  pelican-data:
  pelican-logs:

networks:
  proxy:
    external: true

This works as intended. However when switching to panel:v1.0.0-beta29 the reverse proxy setup seems to break, as assets are requested from an IP instead of the APP_URL.

I then found this post on Discord and also set ASSET_URL to the same url as APP_URL in my docker-compose.yaml, but that did not help.

I saw there were some changes to the Dockerfile in beta30 https://github.com/pelican-dev/panel/pull/1999, and ASSET_URL should be automatically set to APP_URL anyway.

So currently not sure where the issue could be, as the setup works perfectly fine with beta29.

Expected Behavior

Assets should be served from the APP_URL instead of from the Docker Host IP.

Steps to Reproduce

  1. Run pelican with the docker-compose described above.
  2. Load website (should work)
  3. Update version to beta30
  4. Restart container with new version
  5. Load website (assets are not being loaded from the correct url)

Panel Version

beta29

Wings Version

beta21

Games and/or Eggs Affected

No response

Docker Image

No response

Error Logs


Is there an existing issue for this?

  • I have searched the existing issues before opening this issue.
  • I have provided all relevant details, including the specific game and Docker images I am using if this issue is related to running a server.
  • I have checked in the Discord server and believe this is a bug with the software, and not a configuration issue with my specific system.
Originally created by @stephanrenggli on GitHub (Dec 20, 2025). ### Current Behavior I am currently running `panel:v1.0.0-beta29` using docker and traefik as reverse proxy. ```yaml services: pelican: container_name: pelican image: ghcr.io/pelican-dev/panel:v1.0.0-beta29 restart: always # ports: # - "8888:80" # - "8843:443" extra_hosts: - "host.docker.internal:host-gateway" volumes: - pelican-data:/pelican-data - pelican-logs:/var/www/html/storage/logs environment: XDG_DATA_HOME: /pelican-data APP_URL: "https://panel.example.com" APP_DEBUG: "false" APP_ENV: "production" ADMIN_EMAIL: "me@example.com" MAIL_DRIVER: "log" BEHIND_PROXY: "true" TRUSTED_PROXIES: "172.16.0.0/12" labels: - "traefik.enable=true" - "traefik.docker.network=proxy" - "traefik.http.services.pelican.loadbalancer.server.port=80" # http - "traefik.http.routers.pelican.entrypoints=http" - "traefik.http.routers.pelican.rule=Host(`panel.example.com`)" - "traefik.http.routers.pelican.middlewares=https-redirect@file" # https - "traefik.http.routers.pelican-secure.entrypoints=https" - "traefik.http.routers.pelican-secure.rule=Host(`panel.example.com`)" - "traefik.http.routers.pelican-secure.middlewares=secured@file" - "traefik.http.routers.pelican-secure.tls=true" - "traefik.http.routers.pelican-secure.service=pelican" networks: - proxy volumes: pelican-data: pelican-logs: networks: proxy: external: true ``` This works as intended. However when switching to ``panel:v1.0.0-beta29`` the reverse proxy setup seems to break, as assets are requested from an IP instead of the `APP_URL`. I then found [this post on Discord](https://discord.com/channels/1218730176297439332/1451819764795183114/1451833650969710762) and also set `ASSET_URL` to the same url as `APP_URL` in my docker-compose.yaml, but that did not help. I saw there were some changes to the Dockerfile in beta30 https://github.com/pelican-dev/panel/pull/1999, and `ASSET_URL` should be automatically set to `APP_URL` anyway. So currently not sure where the issue could be, as the setup works perfectly fine with beta29. ### Expected Behavior Assets should be served from the `APP_URL` instead of from the Docker Host IP. ### Steps to Reproduce 1. Run pelican with the docker-compose described above. 2. Load website (should work) 3. Update version to beta30 4. Restart container with new version 5. Load website (assets are not being loaded from the correct url) ### Panel Version beta29 ### Wings Version beta21 ### Games and/or Eggs Affected _No response_ ### Docker Image _No response_ ### Error Logs ```bash ``` ### Is there an existing issue for this? - [x] I have searched the existing issues before opening this issue. - [x] I have provided all relevant details, including the specific game and Docker images I am using if this issue is related to running a server. - [x] I have checked in the Discord server and believe this is a bug with the software, and not a configuration issue with my specific system.
OVERLORD added the not confirmed label 2026-02-05 17:44:04 +03:00
Author
Owner

@coderabbitai[bot] commented on GitHub (Dec 20, 2025):

📝 CodeRabbit Plan Mode

Generate an implementation plan and prompts that you can use with your favorite coding agent.

  • Create Plan
Examples

🔗 Similar Issues

Possible Duplicates

Related Issues

🔗 Related PRs

pelican-dev/panel#1917 - Update docker image [merged]
pelican-dev/panel#1965 - Fix docker entrypoint ASSET_URL not APP_ASSET [merged]

👤 Suggested Assignees

🧪 Issue enrichment is currently in open beta.

You can configure auto-planning by selecting labels in the issue_enrichment configuration.

To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

issue_enrichment:
  auto_enrich:
    enabled: false

💬 Have feedback or questions? Drop into our discord or schedule a call!

@coderabbitai[bot] commented on GitHub (Dec 20, 2025): <!-- This is an auto-generated issue plan by CodeRabbit --> ### 📝 CodeRabbit Plan Mode Generate an implementation plan and prompts that you can use with your favorite coding agent. - [ ] <!-- {"checkboxId": "8d4f2b9c-3e1a-4f7c-a9b2-d5e8f1c4a7b9"} --> Create Plan <details> <summary>Examples</summary> - [Example 1](https://github.com/coderabbitai/git-worktree-runner/issues/29#issuecomment-3589134556) - [Example 2](https://github.com/coderabbitai/git-worktree-runner/issues/12#issuecomment-3606665167) </details> --- <details> <summary><b>🔗 Similar Issues</b></summary> **Possible Duplicates** - https://github.com/pelican-dev/panel/issues/1642 **Related Issues** - https://github.com/pelican-dev/panel/issues/2018 - https://github.com/pelican-dev/panel/issues/1373 - https://github.com/pelican-dev/panel/issues/1791 </details> <details> <summary><b>🔗 Related PRs</b></summary> pelican-dev/panel#1917 - Update docker image [merged] pelican-dev/panel#1965 - Fix docker entrypoint `ASSET_URL` not `APP_ASSET` [merged] </details> <details> <summary><b>👤 Suggested Assignees</b></summary> - [LastSkywalkerER](https://github.com/LastSkywalkerER) - [felinusfish](https://github.com/felinusfish) - [SteadEXE](https://github.com/SteadEXE) - [Bungeefan](https://github.com/Bungeefan) - [parkervcp](https://github.com/parkervcp) </details> --- <details> <summary> 🧪 Issue enrichment is currently in open beta.</summary> You can configure auto-planning by selecting labels in the issue_enrichment configuration. To disable automatic issue enrichment, add the following to your `.coderabbit.yaml`: ```yaml issue_enrichment: auto_enrich: enabled: false ``` </details> 💬 Have feedback or questions? Drop into our [discord](https://discord.gg/coderabbit) or [schedule a call](https://calendly.com/parth-coderabbit/issues-feedback)!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/panel-pelican-dev#527