Repository navigation
develop(common-configuration): listen on 0.0.0.0:$PORT everywhere, and describe the application settings - #1065
Merged
Merged
Conversation
…nd the application settings
…9000 with Request Flow
…ist the managed runtimes
…g and Elastic APM examples
👋` Review app deletedYou closed this PR and deleted the review app. |
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The port-configuration guidance lacks necessary qualifications for ASP.NET Core, Java, and native uv deployments, potentially causing requests to reach the wrong port or leaving applications unreachable.
3 open issues
What changed in this PR
This PR centralizes application port and settings guidance, then updates runtime documentation and examples to reference it.
Changes:
- Standardizes guidance around
0.0.0.0:$PORT, including Request Flow and runtime-specific exceptions. - Expands common configuration with application settings and navigation cards.
- Updates examples and links across deployment, observability, and troubleshooting documentation.
| File | Description |
|---|---|
shared/request-flow.md |
Updates shared middleware port guidance. |
content/doc/security/ssl.md |
Links to the new Force HTTPS section. |
content/doc/find-help/troubleshooting.md |
Uses PORT in the Node.js example. |
content/doc/develop/request-flow/varnish.md |
Explains backend ports and managed runtimes. |
content/doc/develop/request-flow/_index.md |
Clarifies runtime exceptions and disabling services. |
content/doc/develop/observability/metrics.md |
Reads PORT in the Haskell example. |
content/doc/develop/mise.md |
Updates the task description to reference $PORT. |
content/doc/develop/common-configuration/lifecycle.md |
Replaces settings details with a central link. |
content/doc/develop/common-configuration/environment-variables/reference.md |
Clarifies PORT and Python exceptions. |
content/doc/develop/common-configuration/_index.md |
Centralizes port rules and application settings. |
content/doc/deploy/databases/elastic.md |
Uses ${PORT} in the APM configuration example. |
content/doc/deploy/applications/v.md |
Links to shared port requirements. |
content/doc/deploy/applications/static.md |
Documents Request Flow and custom Caddyfile ports. |
content/doc/deploy/applications/scala/_index.md |
Explains http.port and Play behavior. |
content/doc/deploy/applications/rust.md |
Updates port guidance and build-instance links. |
content/doc/deploy/applications/python/uv.md |
Clarifies middleware ports and command arguments. |
content/doc/deploy/applications/python/_index.md |
Explains custom-command ports behind Nginx. |
content/doc/deploy/applications/nodejs.md |
Links to shared port requirements. |
content/doc/deploy/applications/meteor.md |
Clarifies supplied PORT and updates a settings link. |
content/doc/deploy/applications/linux.md |
Links to shared port requirements. |
content/doc/deploy/applications/java/java-war.md |
Describes automatic container port configuration. |
content/doc/deploy/applications/java/java-maven.md |
References the supplied http.port property. |
content/doc/deploy/applications/java/java-jar.md |
Documents http.port and Request Flow. |
content/doc/deploy/applications/java/java-gradle.md |
Documents http.port and Request Flow. |
content/doc/deploy/applications/haskell.md |
Updates server examples to read PORT. |
content/doc/deploy/applications/golang.md |
Links to shared port requirements. |
content/doc/deploy/applications/frankenphp.md |
Clarifies managed ports and custom commands. |
content/doc/deploy/applications/elixir.md |
Adds port guidance for Phoenix configuration. |
content/doc/deploy/applications/dotnet.md |
Explains ASP.NET Core’s required port setting. |
content/doc/deploy/applications/docker.md |
Updates the dedicated build-instance link. |
content/doc/deploy/applications/_index.md |
Updates common application port guidance. |
.github/styles/config/vocabularies/Doc/accept.txt |
Accepts “Vlang” in editorial checks. |
Review effort: Balanced
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

📝 Summary
This PR rewrites the common configuration page around the port your application listens on, and applies the same rule to the whole documentation, guides excluded. Behaviors were checked against the code, then tested on deployed applications: Node.js with and without Varnish, Python with
CC_RUN_COMMAND, .NET, a custom Caddyfile, Java WAR and Spring Boot, region change, zero downtime deployment, sticky sessions, Force HTTPS, and build instances onpico,nanoandXS.The rule: an application starting its own HTTP server listens on
0.0.0.0:$PORT. Clever Cloud setsPORTto8080, so it doesn't belong in environment variables or code; with Request Flow, setPORT=9000. Frameworks listening on another port, runtimes with a managed web server, Docker, Network Groups and TCP redirections are covered.The common configuration page now covers:
Other pages:
PORT=9000when a middleware runs, and the runtimes that need no configurationPORT🧪 Type of Change
✅ Validation