{
    auto_https off
}

# Main cell domain — no service-IP restriction needed
http://pic0.dec, http://172.20.0.2:80 {
    handle /api/* {
        reverse_proxy cell-api:3000
    }
    handle /calendar* {
        reverse_proxy cell-radicale:5232
    }
    handle /files* {
        reverse_proxy cell-filegator:8080
    }
    handle /webmail* {
        reverse_proxy cell-rainloop:8888
    }
    handle {
        reverse_proxy cell-webui:80
    }
}

# Per-service virtual IPs — each gets its own IP so iptables can target them
http://calendar.dec, http://172.20.0.21:80 {
    reverse_proxy cell-radicale:5232
}

http://files.dec, http://172.20.0.22:80 {
    reverse_proxy cell-filegator:8080
}

http://mail.dec, http://webmail.dec, http://172.20.0.23:80 {
    reverse_proxy cell-rainloop:8888
}

http://webdav.dec, http://172.20.0.24:80 {
    reverse_proxy cell-webdav:80
}

http://api.dec {
    reverse_proxy cell-api:3000
}

http://webui.dec {
    reverse_proxy cell-webui:80
}

# Catch-all for direct IP / localhost
:80 {
    handle /api/* {
        reverse_proxy cell-api:3000
    }
    handle {
        reverse_proxy cell-webui:80
    }
}
