diff --git a/.github/DISCUSSION_TEMPLATE/general.yml b/.github/DISCUSSION_TEMPLATE/general.yml
new file mode 100644
index 000000000..0ebcb153f
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general.yml
@@ -0,0 +1,15 @@
+---
+body:
+ - type: markdown
+ attributes:
+ value: |
+ For NGINX troubleshooting/technical help, please visit our community forum instead of asking your questions here. We will politely redirect these types of questions to the forum.
+ - type: textarea
+ id: general
+ attributes:
+ label: What would you like to discuss?
+ description: Please provide as much context as possible. Remember that only general discussions related to the NGINX codebase will be addressed on GitHub. For anything else, please visit our [community forum](https://community.nginx.org/).
+ value: |
+ I would like to discuss...
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/ideas.yml b/.github/DISCUSSION_TEMPLATE/ideas.yml
new file mode 100644
index 000000000..73fb6ec3b
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/ideas.yml
@@ -0,0 +1,15 @@
+---
+body:
+ - type: markdown
+ attributes:
+ value: |
+ For NGINX troubleshooting/technical help, please visit our community forum instead of asking your questions here. We will politely redirect these types of questions to the forum.
+ - type: textarea
+ id: ideas
+ attributes:
+ label: What idea would you like to discuss?
+ description: Please provide as much context as possible. Remember that only ideas related to the NGINX codebase will be addressed on GitHub. For anything else, please visit our [community forum](https://community.nginx.org/).
+ value: |
+ I have an idea for...
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/q-a.yml b/.github/DISCUSSION_TEMPLATE/q-a.yml
new file mode 100644
index 000000000..f103ef2d7
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/q-a.yml
@@ -0,0 +1,15 @@
+---
+body:
+ - type: markdown
+ attributes:
+ value: |
+ For NGINX troubleshooting/technical help, please visit our community forum instead of asking your questions here. We will politely redirect these types of questions to the forum.
+ - type: textarea
+ id: q-a
+ attributes:
+ label: What question do you have?
+ description: Please provide as much context as possible. Remember that only questions related to the NGINX codebase will be addressed on GitHub. For anything else, please visit our [community forum](https://community.nginx.org/).
+ value: |
+ I would like to know...
+ validations:
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index efdc1167f..000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-name: Bug report
-about: Create a report to help us improve
-title: ""
-labels: "bug"
----
-
-### Environment
-
-Include the result of the following commands:
- - `nginx -V`
- - `uname -a`
-
-### Description
-
-Describe the bug in full detail including expected and actual behavior.
-Specify conditions that caused it. Provide the relevant part of nginx
-configuration and debug log.
-
-- [ ] The bug is reproducible with the latest version of nginx
-- [ ] The nginx configuration is minimized to the smallest possible
-to reproduce the issue and doesn't contain third-party modules
-
-#### nginx configuration
-
-```
-# Your nginx configuration here
-```
-or share the configuration in [gist](https://gist.github.com/).
-
-#### nginx debug log
-
-It is advised to enable
-[debug logging](http://nginx.org/en/docs/debugging_log.html).
-```
-# Your nginx debug log here
-```
-or share the debug log in [gist](https://gist.github.com/).
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 000000000..2f3aea12c
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,106 @@
+---
+name: 🐛 Bug report
+description: Create a report to help us improve
+labels: bug
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to fill out this bug report!
+
+ Before you continue filling out this report, please take a moment to check that your bug has not been [already reported on GitHub][issue search], is reproducible with the latest version of nginx, and does not involve any third-party modules 🙌
+
+ Remember to redact any sensitive information such as authentication credentials and/or license keys!
+
+ **Note:** If you are seeking community support, please start a new topic in the [NGINX Community forum][forum]. If you wish to discuss the codebase, please start a new thread via [GitHub discussions][discussions].
+
+ [issue search]: https://github.com/nginx/nginx/search?q=is%3Aissue&type=issues
+ [discussions]: https://github.com/nginx/nginx/discussions
+ [forum]: https://community.nginx.org
+
+ - type: textarea
+ id: overview
+ attributes:
+ label: Bug Overview
+ description: A clear and concise overview of the bug.
+ placeholder: When I do "X", "Y" happens instead of "Z".
+ validations:
+ required: true
+
+ - type: textarea
+ id: behavior
+ attributes:
+ label: Expected Behavior
+ description: A clear and concise description of what you expected to happen.
+ placeholder: When I do "X", I expect "Z" to happen.
+ validations:
+ required: true
+
+ - type: textarea
+ id: steps
+ attributes:
+ label: Steps to Reproduce the Bug
+ description: Detail the series of steps required to reproduce the bug.
+ placeholder: When I run "X" using [...], "X" fails with "Y" error message. If I check the terminal outputs and/or logs, I see the following info.
+ validations:
+ required: true
+
+ - type: textarea
+ id: configuration
+ attributes:
+ label: NGINX Configuration
+ description: Please provide your NGINX configuration. Minimize it to the smallest possible configuration that reproduces the issue.
+ value: |
+ ```
+ # Your NGINX configuration
+ ```
+ validations:
+ required: true
+
+ - type: textarea
+ id: environment
+ attributes:
+ label: NGINX version and build configuration options
+ description: Please provide details about your NGINX build.
+ value: |
+ The output of `nginx -V`: [...]
+ validations:
+ required: true
+
+ - type: textarea
+ id: environment
+ attributes:
+ label: Environment where NGINX is being built and/or deployed
+ description: Please provide details about your environment.
+ value: |
+ - Target deployment platform: [e.g. AWS/GCP/local cluster/etc...]
+ - Target OS: [e.g. RHEL 9/Ubuntu 24.04/etc...]
+ validations:
+ required: true
+
+ - type: textarea
+ id: environment
+ attributes:
+ label: Architecture where NGINX is being built and/or deployed
+ description: Please provide details about your deployment environment.
+ value: |
+ The output of `uname -a`: [...]
+ validations:
+ required: true
+
+ - type: textarea
+ id: logs
+ attributes:
+ label: NGINX Debug Log
+ description: Please provide your NGINX debug log. See this [doc](http://nginx.org/en/docs/debugging_log.html) for details on how to enable it.
+ value: |
+ ```
+ # Your NGINX debug log
+ ```
+
+ - type: textarea
+ id: context
+ attributes:
+ label: Additional Context
+ description: Add any other context about the problem here.
+ placeholder: Feel free to add any other context/information/screenshots/etc... that you think might be relevant to this issue in here.
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 000000000..3f7850f70
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,12 @@
+---
+blank_issues_enabled: false
+contact_links:
+ - name: 💬 Talk to the NGINX community!
+ url: https://community.nginx.org
+ about: A community forum for NGINX users, developers, and contributors
+ - name: 📝 Code of Conduct
+ url: https://www.contributor-covenant.org/version/2/1/code_of_conduct
+ about: NGINX follows the Contributor Covenant Code of Conduct to ensure a safe and inclusive community
+ - name: 💼 For commercial & enterprise users
+ url: https://www.f5.com/products/nginx
+ about: F5 offers a wide range of NGINX products for commercial & enterprise users
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index 67471b083..000000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-name: Feature request
-about: Suggest a feature for nginx
-title: ""
-labels: "feature"
----
-
-### Describe the feature you'd like to add to nginx
-
-A clear and concise description of the feature.
-
-### Describe the problem this feature solves
-
-A clear and concise description of the problem.
-
-### Additional context
-
-Add any other context about the feature request here.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 000000000..cafb5eaf3
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,40 @@
+---
+name: ✨ Feature request
+description: Suggest an idea for this project
+labels: enhancement
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to fill out this feature request!
+
+ Before you continue filling out this request, please take a moment to check that your feature has not been [already requested on GitHub][issue search] 🙌
+
+ **Note:** If you are seeking community support, please start a new topic in the [NGINX Community forum][forum]. If you wish to discuss the codebase, please start a new thread via [GitHub discussions][discussions].
+
+ [issue search]: https://github.com/nginx/nginx/search?q=is%3Aissue&type=issues
+ [discussions]: https://github.com/nginx/nginx/discussions
+ [forum]: https://community.nginx.org
+
+ - type: textarea
+ id: overview
+ attributes:
+ label: Feature Overview
+ description: A clear and concise description of what the feature request is.
+ placeholder: I would like this project to be able to do "X".
+ validations:
+ required: true
+
+ - type: textarea
+ id: alternatives
+ attributes:
+ label: Alternatives Considered
+ description: Detail any potential alternative solutions/workarounds you've used or considered.
+ placeholder: I have done/might be able to do "X" in this project by doing "Y".
+
+ - type: textarea
+ id: context
+ attributes:
+ label: Additional Context
+ description: Add any other context about the problem here.
+ placeholder: Feel free to add any other context/information/screenshots/etc... that you think might be relevant to this feature request here.
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index 14ac4639b..1e7e0a9d7 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -1,10 +1,10 @@
### Proposed changes
-Describe the use case and detail of the change.
+Describe the use case and detail of the change. If this PR addresses an issue on GitHub, make sure to include a link to that issue using one of the [supported keywords](https://docs.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue) in this PR's description or commit message.
-If this pull request addresses an issue on GitHub, make sure to reference that
-issue using one of the
-[supported keywords](https://docs.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue).
+### Checklist
-Before creating a pull request, make sure to comply with the
-[Contributing Guidelines](https://github.com/nginx/nginx/blob/master/CONTRIBUTING.md).
+Before creating a PR, run through this checklist and mark each as complete:
+
+- [ ] I have read the [contributing guidelines](/CONTRIBUTING.md).
+- [ ] I have checked that NGINX compiles and runs after adding my changes.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 864e7989b..4436414f3 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -5,34 +5,34 @@ We really appreciate that you are considering contributing!
## Table of Contents
-- [Ask a Question](#ask-a-question)
- [Report a Bug](#report-a-bug)
- [Suggest a Feature or Enhancement](#suggest-a-feature-or-enhancement)
- [Open a Discussion](#open-a-discussion)
- [Submit a Pull Request](#submit-a-pull-request)
- [Issue Lifecycle](#issue-lifecycle)
-## Ask a Question
-
-To ask a question, open an issue on GitHub with the label `question`.
-
## Report a Bug
To report a bug, open an issue on GitHub with the label `bug` using the
-available bug report issue template. Before reporting a bug, make sure the
-issue has not already been reported.
+available [bug report issue form](/.github/ISSUE_TEMPLATE/bug_report.yml).
+Please ensure the bug has not already been reported. **If the bug is a
+potential security vulnerability, please report it using our
+[security policy](/SECURITY.md).**
## Suggest a Feature or Enhancement
-To suggest a feature or enhancement, open an issue on GitHub with the label
-`feature` or `enhancement` using the available feature request issue template.
+To suggest a feature or enhancement, please create an issue on GitHub with the
+label `enhancement` using the available
+[feature request issue form](/.github/ISSUE_TEMPLATE/feature_request.yml).
Please ensure the feature or enhancement has not already been suggested.
## Open a Discussion
If you want to engage in a conversation with the community and maintainers,
we encourage you to use
-[GitHub Discussions](https://github.com/nginx/nginx/discussions).
+[GitHub Discussions](https://github.com/nginx/nginx/discussions) to discuss
+the NGINX codebase or the [NGINX Community forum](https://community.nginx.org)
+to chat anything else NGINX (including troubleshooting).
## Submit a Pull Request
@@ -89,7 +89,20 @@ git clone https://github.com/nginx/nginx-tests.git
```
- Submitting a change implies granting project a permission to use it under the
-[BSD-2-Clause license](https://github.com/nginx/nginx/blob/master/LICENSE)
+[BSD-2-Clause license](/LICENSE)
+
+### F5 Contributor License Agreement (CLA)
+
+F5 requires all contributors to agree to the terms of the F5 CLA
+(available [here](https://github.com/f5/f5-cla/blob/main/docs/f5_cla.md))
+before any of their changes can be incorporated into an F5 Open Source
+repository (even contributions to the F5 CLA itself!).
+
+If you have not yet agreed to the F5 CLA terms and submit a PR to this
+repository, a bot will prompt you to view and agree to the F5 CLA.
+You will have to agree to the F5 CLA terms through a comment in the PR
+before any of your changes can be merged. Your agreement signature
+will be safely stored by F5 and no longer be required in future PRs.
## Issue Lifecycle
diff --git a/README.md b/README.md
index b97181e30..d6761842c 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,11 @@
+[](https://www.repostatus.org/#active)
+[](https://community.nginx.org)
+[](/LICENSE)
+[](/CODE_OF_CONDUCT.md)
+
NGINX (pronounced "engine x" or "en-jin-eks") is the world's most popular Web Server, high performance Load Balancer, Reverse Proxy, API Gateway and Content Cache.
NGINX is free and open source software, distributed under the terms of a simplified [2-clause BSD-like license](LICENSE).
@@ -60,7 +65,6 @@ nginx -V
```
> See [Configuring the build](#configuring-the-build) for information on how to include specific Static modules into your nginx build.
-
## Configurations
NGINX is highly flexible and configurable. Provisioning the software is achieved via text-based config file(s) accepting parameters called "[Directives](https://nginx.org/en/docs/dirindex.html)". See [Configuration File's Structure](https://nginx.org/en/docs/beginners_guide.html#conf_structure) for a comprehensive description of how NGINX configuration files work.
@@ -209,9 +213,7 @@ The output of which should start with:
```
# Asking questions and reporting issues
-We encourage you to engage with us.
-- [NGINX GitHub Discussions](https://github.com/nginx/nginx/discussions), is the go-to place to start asking questions and sharing your thoughts.
-- Our [GitHub Issues](https://github.com/nginx/nginx/issues) page offers space to submit and discuss specific issues, report bugs, and suggest enhancements.
+See our [Support](SUPPORT.md) guidelines for information on how discuss the codebase, ask troubleshooting questions, and report issues.
# Contributing code
Please see the [Contributing](CONTRIBUTING.md) guide for information on how to contribute code.
diff --git a/SUPPORT.md b/SUPPORT.md
new file mode 100644
index 000000000..4e8ab2034
--- /dev/null
+++ b/SUPPORT.md
@@ -0,0 +1,48 @@
+# Support
+
+## Ask a Question
+
+We use GitHub issues for tracking bugs and feature requests
+related to this project.
+
+If you don't know how something in the codebase works, are curious if NGINX
+is capable of achieving your desired functionality or want to discuss the
+implementation of an existing or in development feature, please start a
+GitHub discussion!
+
+## NGINX Specific Questions and/or Issues
+
+This project isn't the right place to get support for NGINX and/or NGINX
+troubleshooting questions, but the following resources are available below.
+Thanks for your understanding!
+
+### Community Forum
+
+We have a [community forum](https://community.nginx.org/)!
+If you have any NGINX specific questions and/or issues,
+try checking out the [`NGINX category`](https://community.nginx.org/c/projects/nginx/23).
+For general discussions around anything tangentially NGINX related,
+check out the [`General Discussion category`](https://community.nginx.org/c/general-discussion/34).
+Both fellow community members and NGINXers might be able to help you! :)
+
+### Documentation
+
+For a comprehensive list of all NGINX directives, check out .
+
+For a comprehensive list of administration and deployment guides for all
+NGINX products, check out .
+
+## Contributing
+
+Please see the [contributing guide](/CONTRIBUTING.md) for guidelines
+on how to best contribute to this project.
+
+## Commercial Support
+
+Commercial support for this project is available.
+Please get in touch with [F5 sales](https://www.f5.com/products/get-f5/)
+or check your contract details for more information!
+
+## Community Support
+
+Community support is offered on a best effort basis through any of our active communities.