# Caddyfile voor Ledgerix achter Caddy v2.
# Automatisch HTTPS via Let's Encrypt. Vervang `ledgerix.example.com`
# door je eigen domein én zorg dat de DNS-A-record naar deze host wijst.
#
# Plaats dit bestand op /etc/caddy/Caddyfile, dan `systemctl reload caddy`.

ledgerix.example.com {
    # Automatisch certificaat — Caddy regelt ACME-uitgifte + renewal.
    encode zstd gzip

    # Reverse-proxy naar Ledgerix op localhost:8080 (matched met de
    # docker-compose `ports: 127.0.0.1:8080` binding, of een native
    # systemd-service die op loopback luistert).
    reverse_proxy 127.0.0.1:8080 {
        # Ledgerix logt z'n eigen request-trace; geen Caddy-headers
        # nodig. WebSockets gebruiken we niet (geen long-polling).
    }

    # Beperkte upload-grootte voor OCR + Peppol-XML. 25 MB dekt
    # bonnen en bijlagen ruim. Zet hoger als je grote PDF-facturen
    # via mailbox verwerkt.
    request_body {
        max_size 25MB
    }

    # Strikte security-headers — Ledgerix stuurt ze ook server-side
    # via z'n eigen middleware, maar Caddy bovenop het schaadt niet
    # en dekt edge-cases (404-pagina's e.d.).
    header {
        Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
        X-Content-Type-Options    "nosniff"
        Referrer-Policy           "strict-origin-when-cross-origin"
        # Permissions-Policy: Ledgerix stuurt z'n eigen — Caddy
        # zou kunnen overschrijven, dus laten we 't aan de app.
    }
}
