Skip to content

Add additional info about enabling proxyprotocol#178

Merged
cfis merged 1 commit intodocker-mailserver:masterfrom
kiaraly:patch-1
Jul 28, 2025
Merged

Add additional info about enabling proxyprotocol#178
cfis merged 1 commit intodocker-mailserver:masterfrom
kiaraly:patch-1

Conversation

@kiaraly
Copy link
Copy Markdown
Contributor

@kiaraly kiaraly commented Jul 27, 2025

As discussed in #176.

@kiaraly kiaraly requested a review from funkypenguin as a code owner July 27, 2025 10:43
One approach to preserving the client IP address is to use the PROXY protocol, which is explained in the [documentation](https://docker-mailserver.github.io/docker-mailserver/latest/config/advanced/kubernetes/#proxy-port-to-service-via-proxy-protocol).

The Helm chart supports the use of the proxy protocol via the `proxyProtocol` key. By default `proxyProtocol.enable` is true, and `trustedNetworks` is set to the private IP network ranges, as are typically used inside a cluster.
The Helm chart supports the use of the proxy protocol via the `proxyProtocol` key. By default `proxyProtocol.enable` is true, and `trustedNetworks` is set to the private IP network ranges, as are typically used inside a cluster. Additionally, you will need to enable the proxyProtocol for your loadbalancer. If you are using a cloud service they will most likely have documentation on how to do this for their loadbalancer. If you are using k3s then this is currently impossible with the default components.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

If you are using k3s then this is currently impossible with the default components.

Please add a link for context so those that care about this caveat can better understand why this is the case.

Suggested change
The Helm chart supports the use of the proxy protocol via the `proxyProtocol` key. By default `proxyProtocol.enable` is true, and `trustedNetworks` is set to the private IP network ranges, as are typically used inside a cluster. Additionally, you will need to enable the proxyProtocol for your loadbalancer. If you are using a cloud service they will most likely have documentation on how to do this for their loadbalancer. If you are using k3s then this is currently impossible with the default components.
The Helm chart supports the use of the proxy protocol via the `proxyProtocol` key. By default `proxyProtocol.enable` is true, and `trustedNetworks` is set to the private IP network ranges, as are typically used inside a cluster.
Additionally, you will need to enable the proxyProtocol for your loadbalancer. If you are using a cloud service they will most likely have documentation on how to do this for their loadbalancer. If you are using k3s then this is [currently impossible][k3s-klipperlb-pp] with the default components.
[k3s-klipperlb-pp]: https://github.com/docker-mailserver/docker-mailserver-helm/issues/176#issuecomment-3097915161

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Sorry I missed this comment before merging. @polarathene do you mind creating a new MR for this update?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Done: #179

@cfis cfis merged commit a770809 into docker-mailserver:master Jul 28, 2025
5 checks passed
@cfis
Copy link
Copy Markdown
Collaborator

cfis commented Jul 28, 2025

Thanks!

@kiaraly kiaraly deleted the patch-1 branch July 28, 2025 09:36
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.

3 participants