NginxProxyManager / NginxProxyManager/nginx-proxy-manager

Podman socket activation support

Open
#3,922 12 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
TypeScript
Stars
34.2k
Forks
3.9k
Avg merge
21h 12m
Merged PRs (30d)
20

Description

Is your feature request related to a problem? Please describe.
Client IP addresses are not accessible by Nginx and therefore other containers

When using rootless podman, client IP addresses get rewritten to the internal container IP. There is no workaround other than using host networking, or using another option that is incompatible with container networks.

Describe the solution you'd like
Podman supports a feature where a systemd socket is forwarded to a container, which fixes this issue and also reduces overhead since the requests don't have to be processed by slirp4netns.

Nginx already has support for this by setting an Env variable NGINX=3;. Example 1 demonstates how to.
When using Nginx PM, this variable gets passed down to Nginx. However, an error occurs:
fd 3: Socket not connected
I don't have enough experience to troubleshoot, but perhaps NPM is not passing the socket to Nginx.

Describe alternatives you've considered
Podman 5 supports a new networking stack called Pasta which apparently can pass the real IP, however it will take a considerable time until most distributions ship it.
As mentioned, other workarounds either break user networks, or require network-mode host alltogether.

Additional context
Podman socket activation
nginx documentation

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the Podman socket activation and Nginx systemd socket activation documentation linked in the issue, then trace how Nginx Proxy Manager passes the NGINX=3 environment variable and socket-related descriptors to Nginx. Done means rootless Podman socket activation works without the “fd 3: Socket not connected” error and client IP addresses remain available to Nginx.

Written by the indexing model from the issue text.

Assessment

Tech stack
nginx, typescript
Domain
devops, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.