linuxserver / Heimdall

An Application dashboard and launcher
MIT License
7.46k stars 540 forks source link

Not loading correctly when run on a remote server #1312

Closed boi-doingthings closed 3 months ago

boi-doingthings commented 4 months ago

I am trying to run heimdall on a remote server, to access few docker applications. despite issuing a lets encrypt cert, it shows up in a weird layout (probably due to inability in loading css/js files). The current view looks like:

image

The docker compose looks like:

  heimdall:
    image: linuxserver/heimdall
    container_name: heimdall
    volumes:
     - ./heimdall/:/config
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Kolkata
    ports:
      - 3010:80
      - 3011:443
    restart: unless-stopped

Further, the nginx conf file for the site looks like:

server {
    if ($host = heimdall.domain.tld) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80;
    server_name heimdall.domain.tld;
    return 301 https://$server_name$request_uri;

}

server {
    listen 443 ssl;
    server_name heimdall.domain.tld;

    ssl_certificate /etc/letsencrypt/live/heimdall.domain.tld/fullchain.pem; # managed by Certbot
 # manage>
    ssl_certificate_key /etc/letsencrypt/live/heimdall.domain.tld/privkey.pem; # managed by Certbot
 # man
    location / {
        proxy_pass http://localhost:3011;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

}

It might not be an explicit issue, but looking forward for some help over here.

5lianbian commented 3 months ago

3011对应的是443端口,本地地址应该是https://localhost:3011 ? 这是我的nginx代理配置,看起来没有遇到问题,你可以试试 server { listen 8888 ssl; listen [::]:8888 ssl; server_name heimdall.cc; ssl_certificate /etc/nginx/conf.d/fullchain.pem; ssl_certificate_key /etc/nginx/conf.d/privkey.pem; location / { proxy_pass https://127.0.0.1:40050; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host;

This line is optional and may help in some cases.

    proxy_set_header X-Forwarded-Port $server_port;
    client_max_body_size 64M;
    proxy_read_timeout 300s;
    }

}

boi-doingthings commented 3 months ago

Yeah. Updating the proxy forward headers were able to solve it for me as well.

proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;