Skip to content

Conversation

@mesudip
Copy link
Owner

@mesudip mesudip commented Feb 1, 2026

No description provided.

@gemini-code-assist
Copy link

Summary of Changes

Hello @mesudip, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request represents a significant wrap-up for the v3 release, primarily by modernizing and expanding the project's documentation to reflect new capabilities. It introduces robust support for Docker Swarm, advanced SSL certificate management via Cloudflare DNS challenges, and sticky sessions, all configurable through environment variables. The accompanying utility scripts for certificate handling have also been refactored to integrate seamlessly with these new configuration paradigms, ensuring a more streamlined and powerful user experience.

Highlights

  • Documentation Overhaul: The README.md has been extensively rewritten and restructured to provide clearer, more comprehensive documentation for the v3 release, covering new features and updated configurations.
  • Enhanced Configuration Flexibility: New environment variables have been introduced for finer control over nginx-proxy behavior, including Docker Swarm integration, CertAPI usage, Cloudflare DNS for wildcard SSL, and sticky sessions.
  • Refactored Certificate Management Scripts: The getssl and verify utility scripts have been updated to align with the new environment variable-driven configuration, support CertAPI integration, and improve robustness.
  • Code Coverage Configuration: A new .coveragerc file has been added to configure code coverage reporting, indicating a focus on code quality and testing for the upcoming release.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request prepares for the v3 release by adding code coverage configuration, significantly overhauling the README.md for better documentation, and refactoring the getssl and verify helper scripts. The script refactoring is well-done, making them more robust and aligned with the application's configuration patterns. The new README is a substantial improvement, but I've found several typos and formatting issues that should be corrected to ensure clarity for users. My review focuses on these documentation fixes.

docker run -d \
--name registry \
--network frontend \
-e VIRTUAL_HOST="htttps://registry.example.com/v2" \

Choose a reason for hiding this comment

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

high

There is a typo in the URL scheme. htttps should be https. This will cause the example to fail if copied by a user.

Suggested change
-e VIRTUAL_HOST="htttps://registry.example.com/v2" \
-e VIRTUAL_HOST="https://registry.example.com/v2" \

README.md Outdated
- **Swarm Ready:** Compatible with Docker Swarm services.

## Philosophy
`nginx-proxy` is built on the belief that infrastructure should be invisible. Each service keeps it's configuration.

Choose a reason for hiding this comment

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

medium

There is a grammatical error here. it's is a contraction for 'it is' or 'it has'. The possessive form is its.

Suggested change
`nginx-proxy` is built on the belief that infrastructure should be invisible. Each service keeps it's configuration.
`nginx-proxy` is built on the belief that infrastructure should be invisible. Each service keeps its configuration.

| `NGINX_WORKER_CONNECTIONS` | `65535` | Max connections per worker. |
| `CERT_RENEW_THRESHOLD_DAYS` | `30` | By default certificates are renewed when they have <=30 days remaining. |
| `ENABLE_IPV6` | `false` | Enable IPv6 support on nginx. |
| `DOCKER_SWARM` | `ignore` | Treats every container like local by defeault. Set `enable` for Swarm support, `strict` for Swarm-only or`exclude` to not include swarm containers |

Choose a reason for hiding this comment

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

medium

There are a couple of typos in the description for DOCKER_SWARM:

  • defeault should be default.
  • The backtick in or\exclude`seems misplaced, which affects formatting. It should probably beor `exclude``.
Suggested change
| `DOCKER_SWARM` | `ignore` | Treats every container like local by defeault. Set `enable` for Swarm support, `strict` for Swarm-only or`exclude` to not include swarm containers |
| `DOCKER_SWARM` | `ignore` | Treats every container like local by default. Set `enable` for Swarm support, `strict` for Swarm-only or `exclude` to not include swarm containers |

README.md Outdated
| `example.com -> :8080` | Proxies to port 8080. |
| `https://example.com` | HTTPS proxy to container exposed http port |
| `https://example.com/api` | Only /api path is passed on to container. /api prefix is not removed |
| `https://example.com/api -> /v1` | Re-maps path `/api` to `/v1` on contianer exposed port|

Choose a reason for hiding this comment

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

medium

Typo: contianer should be container.

Suggested change
| `https://example.com/api -> /v1` | Re-maps path `/api` to `/v1` on contianer exposed port|
| `https://example.com/api -> /v1` | Re-maps path `/api` to `/v1` on container exposed port|

README.md Outdated
| `https://example.com` | HTTPS proxy to container exposed http port |
| `https://example.com/api` | Only /api path is passed on to container. /api prefix is not removed |
| `https://example.com/api -> /v1` | Re-maps path `/api` to `/v1` on contianer exposed port|
| `https://example.com/api -> :8080/v1` | Re-maps path `/api` to `/v1` on contianer port 8080|

Choose a reason for hiding this comment

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

medium

Typo: contianer should be container.

Suggested change
| `https://example.com/api -> :8080/v1` | Re-maps path `/api` to `/v1` on contianer port 8080|
| `https://example.com/api -> :8080/v1` | Re-maps path `/api` to `/v1` on container port 8080|

README.md Outdated
- **Auto-Upgrade:** `VIRTUAL_HOST=https+wss://example.com` (Supports both HTTP and WSS on te host).

### Multiple Hosts
A single container can serve multiple domains path mappings. All that matters is that ev variable starts with `VIRTUAL_HOST` e.g. `VIRTUAL_HOST1`, `VIRTUAL_HOST2`, etc.

Choose a reason for hiding this comment

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

medium

Typo: ev variable should be env variable.

Suggested change
A single container can serve multiple domains path mappings. All that matters is that ev variable starts with `VIRTUAL_HOST` e.g. `VIRTUAL_HOST1`, `VIRTUAL_HOST2`, etc.
A single container can serve multiple domains path mappings. All that matters is that env variable starts with `VIRTUAL_HOST` e.g. `VIRTUAL_HOST1`, `VIRTUAL_HOST2`, etc.

README.md Outdated
Format: `STATIC_VIRTUAL_HOST=domain.com->http://192.168.0.1:8080`.

`-e "VIRTUAL_HOST=https+wss://example.com"`
**Note** Beaware that if domain as target, nginx will crash if DNS resolution fails.

Choose a reason for hiding this comment

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

medium

Typo: Beaware should be Be aware.

Suggested change
**Note** Beaware that if domain as target, nginx will crash if DNS resolution fails.
**Note** Be aware that if domain as target, nginx will crash if DNS resolution fails.

README.md Outdated
### Multiple Virtual Hosts on same container
To have multiple virtual hosts out of single container, you can use `VIRTUAL_HOST1`, `VIRTUAL_HOST2`, `VIRTUAL_HOST3` and so on. In fact the only thing it matters is that the environment variable starts with `VIRTUAL_HOST`.
## Docker Swarm Support [Preview]
Enable warm mode by setting `DOCKER_SWARM` to `enable` (local & swarm) or `strict` (swarm only).

Choose a reason for hiding this comment

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

medium

Typo: warm mode should be swarm mode.

Suggested change
Enable warm mode by setting `DOCKER_SWARM` to `enable` (local & swarm) or `strict` (swarm only).
Enable swarm mode by setting `DOCKER_SWARM` to `enable` (local & swarm) or `strict` (swarm only).

README.md Outdated
If current node is not manager, set `SWARM_DOCKER_HOST=tcp://manager:2375`.

**Example:** setting up a go-ethereum node.
**Warning** : Automatic exposed port detection will not work when swrm support is enabled. You must explicitly set port on the `VIRTUAL_HOST` or set `VIRTUAL_PORT` on the container.

Choose a reason for hiding this comment

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

medium

Typo: swrm support should be swarm support.

Suggested change
**Warning** : Automatic exposed port detection will not work when swrm support is enabled. You must explicitly set port on the `VIRTUAL_HOST` or set `VIRTUAL_PORT` on the container.
**Warning** : Automatic exposed port detection will not work when swarm support is enabled. You must explicitly set port on the `VIRTUAL_HOST` or set `VIRTUAL_PORT` on the container.


## Manual Certificate Commands
```
docker exec nginx-proxy verify www.example.com ## check if request routes back to this server.

Choose a reason for hiding this comment

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

medium

The double hash ## is unusual for a shell comment in an example. For clarity and consistency, a single hash # is preferred.

Suggested change
docker exec nginx-proxy verify www.example.com ## check if request routes back to this server.
docker exec nginx-proxy verify www.example.com # check if request routes back to this server.

@codecov
Copy link

codecov bot commented Feb 1, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 58.43%. Comparing base (a6e8de1) to head (ba124bc).
⚠️ Report is 3 commits behind head on master.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@             Coverage Diff             @@
##           master      #45       +/-   ##
===========================================
- Coverage   70.15%   58.43%   -11.72%     
===========================================
  Files          45       31       -14     
  Lines        3980     2507     -1473     
  Branches      522      406      -116     
===========================================
- Hits         2792     1465     -1327     
+ Misses       1013      932       -81     
+ Partials      175      110       -65     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mesudip mesudip changed the title Wrap-up recent for v3 release Wrap-up changes for v3 release Feb 1, 2026
@mesudip mesudip merged commit 1924c57 into master Feb 1, 2026
7 checks passed
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