GoodiesHQ / headscale-admin

Admin Web Interface for juanfont/headscale
GNU General Public License v3.0
431 stars 29 forks source link

Refuses to accept API key #40

Open ilium007 opened 1 week ago

ilium007 commented 1 week ago

Unable to authenticate API. I have a reverse proxy on a public IP handling Tailscale client traffic to a headscale server. This all works. I put the same URL (same as server_url in headscale config.yaml) https://xxxx.xxxx.com.au into the API URL field with an API Key but it does not accept it.

As I'm only testing I am running the docker container:

root@headscale:~# docker run -p 8000:80 goodieshq/headscale-admin:latest

ccigas commented 4 days ago

Think I am having the same issue. Traefik v3 using docker compose for headscale and admin.



services:
  headscale:
    image: headscale/headscale:0.23.0-rc.1
    restart: unless-stopped
    container_name: headscale
    ports:
      - "8081:8080"
      - "9090:9090"
    volumes:
      - /home/ccigas/headscale/conf:/etc/headscale
    command: serve
    networks:
      - proxy
    labels:
      traefik.enable: "true"
      traefik.docker.network: "proxy"
      # Configure service and router
      traefik.http.services.headscale.loadbalancer.server.port: 8081
      traefik.http.services.headscale.loadbalancer.server.scheme: http-external
      traefik.http.routers.headscale.rule: Host(`tailscale.xxxxx.cc`)
      traefik.http.routers.headscale.entrypoints: https-external
      traefik.http.routers.headscale.tls.certresolver: cloudflare
      traefik.http.routers.headscale.service: headscale
      # Configure CORS middleware if needed
      traefik.http.middlewares.headscale-cors.headers.accesscontrolallowmethods: "GET,POST,PUT,PATCH,DELETE,OPTIONS"
      traefik.http.middlewares.headscale-cors.headers.accesscontrolallowheaders: "Authorization,Content-Type,*"
      traefik.http.middlewares.headscale-cors.headers.accesscontrolalloworiginlist: "https://headscale.xxxxx.cc"  # Add other origins if needed
      traefik.http.middlewares.headscale-cors.headers.accesscontrolmaxage: 100
      traefik.http.middlewares.headscale-cors.headers.addvaryheader: true
      traefik.http.routers.headscale.middlewares: headscale-cors
      # UDP ports for DERP, etc
      traefik.udp.services.headscale-udp-41641.loadbalancer.server.port: 41641
      traefik.udp.services.headscale-udp-3478.loadbalancer.server.port: 3478

    headscale-admin:
      image: goodieshq/headscale-admin:latest
      container_name: headscale-admin
      restart: unless-stopped
      networks:
        - proxy
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.headscaleadmin.rule=Host(`headscale.xxxxx.cc`)"
        - "traefik.http.services.headscaleadmin.loadbalancer.server.port=80"
        - "traefik.http.routers.headscaleadmin-internal.rule=Host(`headscale.xxxxx.cc`) && PathPrefix(`/admin`)"
        - "traefik.http.routers.headscaleadmin-internal.entrypoints=http"
        - "traefik.http.routers.headscaleadmin-internal.middlewares=headscaleadmin-internal-https-redirect"
        - "traefik.http.middlewares.headscaleadmin-internal-https-redirect.redirectscheme.scheme=https"
        - "traefik.http.routers.headscaleadmin-internal-secure.rule=Host(`headscale.xxxxx.cc`)"
        - "traefik.http.routers.headscaleadmin-internal-secure.entrypoints=https"
        - "traefik.http.routers.headscaleadmin-internal-secure.tls=true"
        - "traefik.http.routers.headscaleadmin-internal-secure.service=headscaleadmin"
        - "traefik.docker.network=proxy"```

Just getting internal server error on this, error code 500. I have the legacy api unchecked. 
Nortonko commented 1 day ago

I think i have the same issue. I tried it and all the docker contianers runing OK but when i click on save button on page „../admin/settings/“ i get error on caddy log: error“:“reading: read tcp 172.18.0.2:37362->172.18.0.4:8080: read: connection reset by peer and nothing saved and cant get to other pages of headscale-admin. I also tried it with traefik and got the same error on treafik logs. I think this is caused by access rights between containers. But i don't know how i would solve it.