Skip to content

[Bug] Reverse Proxy configΒ #221

@sm100327

Description

@sm100327

Hey there! πŸ‘‹ Thanks for taking the time to report this bug β€” we appreciate it!

Please keep in mind: PegaProx is developed and maintained entirely by volunteers in our free time. We do our best, but we can't work magic πŸͺ„ β€” please be patient, we'll get to your issue as soon as we can.

Want to help keep PegaProx alive?

  • ⭐ Star the project β€” it's free and helps a lot!
  • πŸ’– Become a Sponsor β€” helps us dedicate more time to development
  • 🀝 Contributing code or docs is always welcome too!

Describe the bug

The documentation states the /vnc and /ssh respectively should be redirected to other ports then the main WebUI when using a reverse proxy, those are not correct i think, here is an example for traefik as a reverse proxy in front

example for vhost config

http:
  routers:
    pegaprox_vnc:
      entrypoints:
        - "https"
      rule: "Host(`YOUR_PEGAPROX_URL`) && PathRegexp(`/api/clusters/[a-z0-9]+/vms/[a-z0-9-]+/qemu/[0-9]+/vncwebsocket`)"
      service: "pegaprox_vnc"
      tls:
        certResolver: letsEncrypt

    pegaprox_ssh:
      entrypoints:
        - "https"
      rule: "Host(`YOUR_PEGAPROX_URL`) && PathRegexp(`/api/clusters/[a-z0-9]+/nodes/[a-z0-9-]+/shellws`)"
      service: "pegaprox_ssh"
      tls:
        certResolver: letsEncrypt

    pageprox_prod:
      entrypoints:
        - "https"
      rule: "Host(`YOUR_PEGAPROX_URL`)"
      service: "pegaprox_prod"
      tls:
        certResolver: letsEncrypt

  services:
    pegaprox_prod:
      loadBalancer:
        servers:
          - url: "http://127.0.0.1:443"
    pegaprox_vnc:
      loadBalancer:
        servers:
          - url: "http://127.0.0.1:444"
    pegaprox_ssh:
      loadBalancer:
        servers:
          - url: "http://127.0.0.1:445"

to make this complete, here is a docker compose to get the traefik up

services:
  traefik:
    network_mode: host
    image: traefik:v3.6
    container_name: traefik
    restart: always
    volumes:
      - /path_to_traefik/:/etc/traefik
      - /path_to_traefik/logs:/logs
      - /path_to_traefik/letsencrypt:/etc/letsencrypt:ro
    environment:
      - HERE GOES YOUR LETSENCRYPT CONFIG
      - HERE GOES YOUR LETSENCRYPT CONFIG

and a traefik base config

api:
  insecure: true
  dashboard: true

log:
  level: "INFO"
  filePath: "/logs/traefik.log"

accesslog:
  filePath: "/logs/access.log"

metrics:
  prometheus: {}

certificatesResolvers:
  letsEncrypt:
    acme:
      caServer: "https://acme-v02.api.letsencrypt.org/directory"
      email: "ACME_EMAIL"
      storage: /etc/traefik/acme/acme.json
      dnsChallenge:
        provider: ACME PROVIDER
        delayBeforeCheck: 10

providers:
  file:
    directory: "/etc/traefik/config"
    watch: true

serversTransport:
  insecureSkipVerify: true

entryPoints:
  http:
    address: YOUR_IP:80 # your pegaprox is likely to already use 127.0.0.1 if you have a reverse proxy configured
    http:
      redirections:
        entryPoint:
          scheme: https
          to: https
  https:
    address: YOUR_IP:443 # your pegaprox is likely to already use 127.0.0.1 if you have a reverse proxy configured

Hope that helps someone

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions