Sign inSign up

zachbg/auth-proxy

By zachbg

•Updated 6 months ago

Add authentication (basic auth, token headers, IP allowlist) to any service

Image
1

2.7K

zachbg/auth-proxy repository overview

⁠Auth Proxy

Add authentication to any service with a single container. Supports basic auth, token headers, and IP allowlisting — with automatic HTTPS via Caddy.

⁠Why?

Many services (dashboards, APIs, internal tools) don't have built-in auth. Instead of modifying each app, put auth-proxy in front and get instant authentication plus HTTPS.

⁠Quick Start

services:
  auth-proxy:
    image: zachbg/auth-proxy:latest
    restart: unless-stopped
    ports:
      - "443:443"
    environment:
      UPSTREAM: http://app:8080
      AUTH_USER: admin
      AUTH_PASSWORD: supersecret
      DOMAIN: dashboard.example.com

  app:
    image: grafana/grafana:latest
    # No ports exposed — auth-proxy handles access

⁠Environment Variables

VariableDefaultDescription
UPSTREAMrequiredBackend URL (e.g., http://app:8080)
AUTH_TYPEbasicAuth method: basic, header, none
AUTH_USERadminUsername for basic auth
AUTH_PASSWORDPassword for basic auth
AUTH_HEADERX-Auth-TokenHeader name for header auth
AUTH_TOKENExpected token value for header auth
LISTEN_PORT80Port to listen on
DOMAINDomain for automatic HTTPS
TRUSTED_IPSSpace-separated trusted IP ranges

⁠Auth Types

⁠Basic Auth
environment:
  UPSTREAM: http://app:3000
  AUTH_TYPE: basic
  AUTH_USER: admin
  AUTH_PASSWORD: mypassword
⁠Token Header Auth
environment:
  UPSTREAM: http://api:8080
  AUTH_TYPE: header
  AUTH_HEADER: Authorization
  AUTH_TOKEN: "Bearer my-secret-token"
⁠IP Allowlist + Basic Auth
environment:
  UPSTREAM: http://app:3000
  AUTH_USER: admin
  AUTH_PASSWORD: mypassword
  TRUSTED_IPS: "192.168.1.0/24 10.0.0.0/8"
⁠Reverse Proxy Only (no auth, just HTTPS)
environment:
  UPSTREAM: http://app:3000
  AUTH_TYPE: none
  DOMAIN: app.example.com

⁠Use Cases

  • Protect Grafana, Prometheus, Kibana dashboards
  • Add auth to APIs and webhooks
  • Restrict admin panels by IP
  • Add HTTPS to any HTTP service
  • Quick staging environment access control

Tag summary

Content type

Image

Digest

sha256:6a1971a30…

Size

23.4 MB

Last updated

6 months ago

docker pull zachbg/auth-proxy