# Caddyfile for NexusLIMS test environment reverse proxy

# NEMO service
http://nemo.localhost {
    reverse_proxy nemo:8000 {
        # Forward headers needed for Django
        header_up X-Forwarded-Proto {scheme}
        header_up X-Forwarded-Host {host}
        header_up X-Forwarded-For {remote}
    }
}

# Second NEMO instance hostname (same backend, for multi-instance testing)
http://nemo2.localhost {
    reverse_proxy nemo:8000 {
        # Forward headers needed for Django
        header_up X-Forwarded-Proto {scheme}
        header_up X-Forwarded-Host {host}
        header_up X-Forwarded-For {remote}
    }
}

# CDCS service (Django runserver on port 8000)
http://cdcs.localhost {
    reverse_proxy cdcs:8000 {
        # Forward headers needed for Django
        header_up X-Forwarded-Proto {scheme}
        header_up X-Forwarded-Host {host}
        header_up X-Forwarded-For {remote}
    }
}

# eLabFTW service (HTTP frontend via Caddy, HTTPS backend on port 443)
http://elabftw.localhost {
    reverse_proxy https://elabftw:443 {
        # Forward headers needed for eLabFTW
        header_up Host {host}
        header_up X-Real-IP {remote_host}
        header_up X-Forwarded-For {remote_host}
        header_up X-Forwarded-Proto {scheme}

        # Skip TLS verification for self-signed cert
        transport http {
            tls_insecure_skip_verify
        }
    }
}

# Fileserver (served by host Python server to avoid Docker volume issues)
http://fileserver.localhost {
    reverse_proxy host.docker.internal:48081
}

# Mailpit SMTP testing UI
http://mailpit.localhost {
    reverse_proxy mailpit:8025
}
