{
    email {env.CLOUDFLARE_EMAIL}
    acme_dns cloudflare {env.CLOUDFLARE_API_TOKEN}
    acme_ca https://acme-v02.api.letsencrypt.org/directory
}
:80 {
    respond "Caddy alive on new Contabo — migration in progress" 200
}

git.bizmatch.net {
    handle {
        reverse_proxy gitea:3500
    }
}

##############
##### BIZMATCH
##############
www.bizmatch.net, bizmatch.net {
    handle /pictures/* {
        # Caddy sucht hier den Pfad, der in SEINER eigenen docker-compose gemountet ist:
        root * /home/aknuth/git/bizmatch-project/bizmatch-server
        file_server
    }

    handle {
        reverse_proxy bizmatch-ssr:4000
    }
}

api.bizmatch.net {
    reverse_proxy bizmatch-app:3001
}
auth.bizmatch.net {
        reverse_proxy https://bizmatch-net.firebaseapp.com {
            header_up Host bizmatch-net.firebaseapp.com
            header_up X-Forwarded-For {remote_host}
            header_up X-Forwarded-Proto {scheme}
            header_up X-Real-IP {remote_host}
        }
}

##############
##### INNUNGSAPP
##############
*.innungsapp.com, innungsapp.com {
    # Nutzt die oben definierte Cloudflare DNS-Challenge
    tls {
        dns cloudflare {env.CLOUDFLARE_API_TOKEN}
    }

    handle {
        reverse_proxy innungsapp-admin:3000
    }

    log {
        output file /var/log/caddy/innungsapp.log
        format console
    }

    encode gzip
}

##############
##### GREENLENS
##############
greenlenspro.com {
  encode zstd gzip

  @storage path /storage /storage/*
  handle @storage {
    uri strip_prefix /storage
    reverse_proxy minio:9000
  }

  @api path /api /api/* /auth /auth/* /v1 /v1/* /health /plants /plants/*
  handle @api {
    reverse_proxy api:3000
  }

  handle {
    reverse_proxy landing:3000
  }
}

##############
##### QRMASTER
##############
www.qrmaster.net, qrmaster.net {
    handle {
        reverse_proxy qrmaster-web:3000
    }
}

##############
##### EMAIL-CC
##############
www.email-cc.com, email-cc.com {
    handle {
        reverse_proxy email-cc-web:3000
    }
    log {
        output file /var/log/caddy/email-cc.log
        format console
    }
    encode gzip zstd    
}

############################
##### config.email-bayarea.com
############################
config.email-bayarea.com {
    # 1. API-Anfragen an das Node.js Backend weiterleiten
    handle /api/* {
        reverse_proxy config-email-backend:3001
    }
    handle /health {
        reverse_proxy config-email-backend:3001
    }

    # 2. Alles andere an das Nginx Frontend weiterleiten
    handle {
        reverse_proxy config-email-frontend:80
    }

    log {
        output file /var/log/caddy/config-email.log
        format console
    }
    encode gzip zstd
}

##############
##### ANNAVILLE
##############
annavillesda.org {
  # API requests to backend
  handle /api/* {
    reverse_proxy host.docker.internal:3070
  }

  # Frontend requests to Nginx container
  handle {
    reverse_proxy host.docker.internal:3071
  }

  log {
    output file /var/log/caddy/annaville.access.log
  }

  encode gzip
}

www.annavillesda.org {
    redir https://annavillesda.org{uri} permanent
}

##############
##### BAYAREA
##############
bayarea-cc.com {

    # 2. Frontend Requests
    handle {
        reverse_proxy host.docker.internal:8080
    }

    log {
        output file /var/log/caddy/bayarea.access.log
    }
    encode gzip zstd
}

www.bayarea-cc.com {
    redir https://bayarea-cc.com{uri} permanent
}

##############
##### POCS
##############
cielectrical.bayarea-cc.com {
    handle {
        # Direkter Proxy zum Next.js Container im bizmatch Netzwerk
        reverse_proxy cielectrical-web:3000
    }
    log {
        output file /var/log/caddy/cielectrical.log
        format console
    }
    encode gzip zstd
}

buddelectric.bayarea-cc.com {
    handle {
        # NEU: Direkter Proxy zum Container auf dem nativen Next.js Port
        reverse_proxy buddelectric:3000
    }
    log {
        output file /var/log/caddy/buddelectric.log
        format console
    }
    encode gzip zstd
}
