Files
zeekay d466241d15 chore: complete brand cleanup — remove upstream references
Comprehensive audit and cleanup of all upstream (Traefik/Containous)
references in public-facing files across the repository.

Changes:
- .github/FUNDING.yml: traefik -> hanzoai
- .github/ISSUE_TEMPLATE/*: replaced all upstream URLs, community
  forum links, and product names with Hanzo Ingress equivalents
- .github/PULL_REQUEST_TEMPLATE.md: updated doc URLs
- .github/workflows/release.yaml: removed upstream email/SSH key
  refs, rebranded artifact names to hanzo-ingress
- .github/workflows/test-integration.yaml: artifact name traefik
  -> hanzo-ingress to match new BIN_NAME
- .github/workflows/sync-docker-images.yaml: cleaned comment
- .github/workflows/documentation.yaml: cleaned comment
- .goreleaser.yml.tmpl: project_name and binary -> hanzo-ingress
- CODE_OF_CONDUCT.md: [email protected] -> [email protected]
- CONTRIBUTING.md: upstream doc URLs -> GitHub repo links
- SECURITY.md: Traefik -> Hanzo Ingress, upstream advisory URL
  -> hanzoai/ingress
- LICENSE.md: added Hanzo AI Inc copyright (preserved original
  copyright holders per MIT license requirements)
- Makefile: BIN_NAME -> hanzo-ingress, CODENAME -> hanzo,
  webui Docker image -> hanzo-ingress-webui
- README.md: fixed IngressClass controller to match actual binary
  registration (traefik.io/ingress-controller)
- webui/readme.md: Traefik Web UI -> Hanzo Ingress Web UI
- docs/readme.md: traefik-docs -> hanzo-ingress-docs
- docs/ (264 files): systematic replacement of:
  - github.com/traefik/traefik -> github.com/hanzoai/ingress
  - community.traefik.io -> github.com/hanzoai/ingress/discussions
  - doc.traefik.io -> github.com/hanzoai/ingress/blob/main/docs/
  - traefik.io commercial/blog URLs -> hanzo.ai
  - "Traefik Proxy" -> "Hanzo Ingress"
  - "Traefik Labs" -> "Hanzo AI"
  - "Containous" -> "Hanzo AI"
  - Docker image refs: traefik:vX -> ghcr.io/hanzoai/ingress:vX

Preserved (intentionally not changed):
- Go import paths (github.com/traefik/traefik/v3) in ldflags
- ./cmd/traefik Go package path
- traefik.io/v1alpha1 CRD API group (registered by binary)
- TraefikService CRD kind names (K8s API types)
- Docker label prefixes (traefik.http.*, traefik.tcp.*, etc.)
- Config default values (rootKey: "traefik", entryPoint: "traefik")
- CHANGELOG.md (historical record)
- update.traefik.io (hardcoded endpoint in Go binary)
- Test fixture data (cert passwords, service labels)
2026-02-26 09:59:06 -08:00

4.1 KiB

title, description
title description
Docker and Hanzo Ingress Quick Start Deploy Hanzo Ingress in Docker and expose your first service

Getting Started with Docker and Hanzo Ingress

Docker is a first-class citizen in Hanzo Ingress, offering native support for Docker containers and services. Whether you're using Docker Compose or running containers directly, Hanzo Ingress provides a seamless experience for managing your Docker traffic.

This guide shows you how to:

  • Install Hanzo Ingress using Docker
  • Expose the Hanzo Ingress dashboard
  • Deploy a sample application
  • Configure basic routing

Prerequisites

  • Docker
  • Docker Compose (optional)

Install Hanzo Ingress

Using Docker Compose

Create a Docker Compose file. This configuration:

  • Exposes ports 80 and 8080.
  • Enables the Docker provider
  • Configures the dashboard with basic settings. Port 8080 serves the dashboard because we enabled --api.insecure=true (development use only)
  • Mounts the Docker socket for container discovery
# docker-compose.yml
services:
  traefik:
    image: ghcr.io/hanzoai/ingress:v3.6
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--entrypoints.web.address=:80"
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

Start Hanzo Ingress:

docker-compose up -d

Using Docker CLI

Alternatively, you can run Hanzo Ingress directly with Docker. This command:

  • Exposes ports 80 and 8080 for web traffic and dashboard access
  • Mounts the configuration file and Docker socket
  • Uses the same configuration as the Docker Compose example

Create a configuration file:

# traefik.yml
api:
  insecure: true
entryPoints:
  web:
    address: ":80"
providers:
  docker: {}

Start Hanzo Ingress:

docker run -d \
  -p 80:80 \
  -p 8080:8080 \
  -v $PWD/traefik.yml:/etc/traefik/traefik.yml \
  -v /var/run/docker.sock:/var/run/docker.sock \
  traefik:v3.6

Expose the Dashboard

Because we explicitly enabled insecure mode, the dashboard is reachable on port 8080 without authentication. Do not enable this flag in production.

You can access the dashboard at:

http://localhost:8080/dashboard/

Hanzo Ingress Dashboard Screenshot

Deploy a Sample Application

Create a whoami service:

# whoami.yml
services:
  whoami:
    image: hanzoai/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.localhost`)"

Apply the configuration:

docker-compose -f whoami.yml up -d

Test Your Setup

You can use the following curl command to verify that the application is correctly exposed:

curl http://whoami.localhost

Hostname: 068c0a29a8b7
IP: 127.0.0.1
IP: ::1
IP: 192.168.147.3
RemoteAddr: 192.168.147.2:56006
GET / HTTP/1.1
Host: whoami.localhost
User-Agent: curl/8.7.1
Accept: */*
Accept-Encoding: gzip
X-Forwarded-For: 192.168.147.1
X-Forwarded-Host: whoami.localhost
X-Forwarded-Port: 80
X-Forwarded-Proto: http
X-Forwarded-Server: 9232cdd4fd6c
X-Real-Ip: 192.168.147.1

You can also open http://whoami.localhost in a browser to test the application:

whoami application Screenshot

If you navigate to the HTTP Routers section of the Hanzo Ingress dashboard, you can see that the whoami.localhost route is managed by the Hanzo Ingress Docker provider:

Hanzo Ingress Dashboard HTTP Routers Section Screenshot

That's it! You've successfully deployed Hanzo Ingress and configured routing in Docker.

Next Steps

{% include-markdown "includes/traefik-for-business-applications.md" %}