Skip to content

feat(drop): replace public gateway toggle with an optional TLS domain#38

Merged
ansm merged 1 commit into
mainfrom
devin/drop-tls-gateway
Jul 12, 2026
Merged

feat(drop): replace public gateway toggle with an optional TLS domain#38
ansm merged 1 commit into
mainfrom
devin/drop-tls-gateway

Conversation

@Shachindra

Copy link
Copy Markdown
Member

The previous DROP_PUBLIC_GATEWAY_ENABLED=true exposed raw Kubo on 8080/tcp and produced unencrypted http://:8080/ipfs/ URLs. That required a second public port and was difficult to TLS-terminate for browser clients.

Now the public gateway is configured with DROP_PUBLIC_GATEWAY_DOMAIN. When set, a pinned Traefik v3.7.7 sidecar terminates TLS on 443/tcp, uses TLS-ALPN-01 ACME to obtain a certificate, and proxies only /ipfs/* to the internal Kubo gateway. The raw Kubo 8080 and admin RPC 5001 ports remain on the private Compose network and are never host-published.

The node validates the domain, probes https:///ipfs/ for reachable TLS, and advertises public_gateway_url only while the probe is succeeding. The installer, OpenAPI spec, WebSocket protocol docs, env example, and all operator docs are updated to match.

The previous DROP_PUBLIC_GATEWAY_ENABLED=true exposed raw Kubo on 8080/
  │   tcp and produced unencrypted http://<ip>:8080/ipfs/<cid> URLs. That required a second public port and was difficult to TLS-terminate for browser clients.

Now
  │   the public gateway is configured with DROP_PUBLIC_GATEWAY_DOMAIN. When set, a pinned Traefik v3.7.7 sidecar terminates TLS on 443/tcp, uses TLS-ALPN-01 ACME to
  │   obtain a certificate, and proxies only /ipfs/* to the internal Kubo gateway. The raw Kubo 8080 and admin RPC 5001 ports remain on the private Compose network and
  │   are never host-published.

The node validates the domain, probes https://<domain>/ipfs/<cid> for reachable TLS, and advertises public_gateway_url only while
  │   the probe is succeeding. The installer, OpenAPI spec, WebSocket protocol docs, env example, and all operator docs are updated to match.
@Shachindra
Shachindra requested a review from ansm July 12, 2026 10:30
@Shachindra Shachindra self-assigned this Jul 12, 2026

@ansm ansm left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay

@ansm
ansm merged commit d1e1f79 into main Jul 12, 2026
2 checks passed
@Shachindra
Shachindra deleted the devin/drop-tls-gateway branch July 12, 2026 11:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants