Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/changelog/2025/06-17-images-update.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ We updated all our images. Deployment is in progress for all our users.
## Other changes

- Multiple fixes for logs
- [Varnish support](/doc/administrate/cache/) for FrankenPHP, [upcoming Linux, Static and V runtimes](https://github.com/CleverCloud/Community/discussions/66)
- [Varnish support](/doc/develop/varnish/) for FrankenPHP, [upcoming Linux, Static and V runtimes](https://github.com/CleverCloud/Community/discussions/66)
- Astro, Docusaurus, MkDocs autobuild support for [upcoming static runtime](https://github.com/CleverCloud/Community/discussions/66)
- `-x -race` flags are added to `go install` if `CC_TROUBLESHOOT` is set to `true` in Go runtime
- `proxy_fcgi` is now default in PHP with Apache if `CC_CGI_IMPLEMENTATION` environment variable is not set
Expand Down
2 changes: 1 addition & 1 deletion content/changelog/2025/07-17-request-flow.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
excludeSearch: true
---

Clever Cloud exists to ease developers' life. For many years, you can use [Varnish in front of your application](/doc/administrate/cache/) just by adding a `varnish.vcl` file in your repository. For some months, you can also use [Redirection.io](/doc/reference/reference-environment-variables/#use-redirectionio-as-a-proxy) as a reverse proxy to handle redirects, rewrites, and more. In our latest release, we've gone a step further with Request Flow, available in new runtimes first :
Clever Cloud exists to ease developers' life. For many years, you can use [Varnish in front of your application](/doc/develop/varnish/) just by adding a `varnish.vcl` file in your repository. For some months, you can also use [Redirection.io](/doc/reference/reference-environment-variables/#use-redirectionio-as-a-proxy) as a reverse proxy to handle redirects, rewrites, and more. In our latest release, we've gone a step further with Request Flow, available in new runtimes first :

Check warning on line 15 in content/changelog/2025/07-17-request-flow.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/changelog/2025/07-17-request-flow.md#L15

[Google.We] Try to avoid using first-person plural like 'our'.
Raw output
{"message": "[Google.We] Try to avoid using first-person plural like 'our'.", "location": {"path": "content/changelog/2025/07-17-request-flow.md", "range": {"start": {"line": 15, "column": 385}}}, "severity": "WARNING"}

Check warning on line 15 in content/changelog/2025/07-17-request-flow.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/changelog/2025/07-17-request-flow.md#L15

[Google.We] Try to avoid using first-person plural like 'we'.
Raw output
{"message": "[Google.We] Try to avoid using first-person plural like 'we'.", "location": {"path": "content/changelog/2025/07-17-request-flow.md", "range": {"start": {"line": 15, "column": 405}}}, "severity": "WARNING"}

- `frankenphp`
- `linux`
Expand Down
2 changes: 1 addition & 1 deletion content/changelog/2026/01-28-images-update.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@

## Request Flow expansion

Request Flow is now available in .Net, Elixir, Haskell and Rust applications. We plan its expansion to more runtimes in the coming weeks in three releases:
Request Flow is now available in .NET, Elixir, Haskell and Rust applications. We plan its expansion to more runtimes in the coming weeks in three releases:

Check warning on line 48 in content/changelog/2026/01-28-images-update.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/changelog/2026/01-28-images-update.md#L48

[Google.OxfordComma] Use the Oxford comma in 'Request Flow is now available in .NET, Elixir, Haskell and'.
Raw output
{"message": "[Google.OxfordComma] Use the Oxford comma in 'Request Flow is now available in .NET, Elixir, Haskell and'.", "location": {"path": "content/changelog/2026/01-28-images-update.md", "range": {"start": {"line": 48, "column": 1}}}, "severity": "WARNING"}

Check warning on line 48 in content/changelog/2026/01-28-images-update.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/changelog/2026/01-28-images-update.md#L48

[Google.We] Try to avoid using first-person plural like 'We'.
Raw output
{"message": "[Google.We] Try to avoid using first-person plural like 'We'.", "location": {"path": "content/changelog/2026/01-28-images-update.md", "range": {"start": {"line": 48, "column": 79}}}, "severity": "WARNING"}
- Go and Node.js/Bun
- Java and PHP
- Python and Ruby
Expand Down
2 changes: 1 addition & 1 deletion content/changelog/2026/02-03-images-update.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ We updated all our images. Deployment is in progress for all our users.
* OAuth2 Proxy 7.14.2
* Otoroshictl 0.0.15
* Tailscale 1.94.1
* **.Net:**
* **.NET:**
* Update to 6.0.136
* **Docker:**
* Docker Buildx 0.31.1
Expand Down
6 changes: 3 additions & 3 deletions content/changelog/2026/02-12-images-update.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Images update: .Net 10, Go 1.26, Mise 2026.2, Python 3.14, uv 0.10"
title: "Images update: .NET 10, Go 1.26, Mise 2026.2, Python 3.14, uv 0.10"

Check failure on line 2 in content/changelog/2026/02-12-images-update.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/changelog/2026/02-12-images-update.md#L2

[Vale.Spelling] Did you really mean 'uv'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'uv'?", "location": {"path": "content/changelog/2026/02-12-images-update.md", "range": {"start": {"line": 2, "column": 68}}}, "severity": "ERROR"}
description: "Many tiny updates, and some surprises we'll detail soon"
date: 2026-02-12
tags:
Expand All @@ -19,7 +19,7 @@
* Mise 2026.2.8
* nginx 1.28.2
* pgpool2 4.7
* **.Net:**
* **.NET:**
* Update to 10.0.102
* **Docker:**
* Docker 29.2.1
Expand All @@ -34,7 +34,7 @@
* pip 26.0.1
* uv 0.10.2

## .Net 10 support
## .NET 10 support

You can now set `CC_DOTNET_VERSION=10.0`, default version is still `8.0`. We'll move to `10.0` in the coming weeks.

Expand Down
43 changes: 43 additions & 0 deletions content/changelog/2026/02-18-images-update.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
title: "Images update: Kernel 6.19, Request Flow in Go, Java, Node.js, PHP and Static with Apache"
description: "Use Request Flow almost everywhere, and benefit from many updates in our images"

Check warning on line 3 in content/changelog/2026/02-18-images-update.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/changelog/2026/02-18-images-update.md#L3

[Google.We] Try to avoid using first-person plural like 'our'.
Raw output
{"message": "[Google.We] Try to avoid using first-person plural like 'our'.", "location": {"path": "content/changelog/2026/02-18-images-update.md", "range": {"start": {"line": 3, "column": 84}}}, "severity": "WARNING"}
date: 2026-02-18
tags:
- images
- update
authors:
- name: David Legrand
link: https://github.com/davlgd
image: https://github.com/davlgd.png?size=40
excludeSearch: true
---

We updated all our images. Deployment is in progress for all our users.

Check warning on line 15 in content/changelog/2026/02-18-images-update.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/changelog/2026/02-18-images-update.md#L15

[Google.We] Try to avoid using first-person plural like 'We'.
Raw output
{"message": "[Google.We] Try to avoid using first-person plural like 'We'.", "location": {"path": "content/changelog/2026/02-18-images-update.md", "range": {"start": {"line": 15, "column": 1}}}, "severity": "WARNING"}

Check warning on line 15 in content/changelog/2026/02-18-images-update.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/changelog/2026/02-18-images-update.md#L15

[Google.We] Try to avoid using first-person plural like 'our'.
Raw output
{"message": "[Google.We] Try to avoid using first-person plural like 'our'.", "location": {"path": "content/changelog/2026/02-18-images-update.md", "range": {"start": {"line": 15, "column": 16}}}, "severity": "WARNING"}

Check warning on line 15 in content/changelog/2026/02-18-images-update.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/changelog/2026/02-18-images-update.md#L15

[Google.We] Try to avoid using first-person plural like 'our'.
Raw output
{"message": "[Google.We] Try to avoid using first-person plural like 'our'.", "location": {"path": "content/changelog/2026/02-18-images-update.md", "range": {"start": {"line": 15, "column": 62}}}, "severity": "WARNING"}

* **Common:**
* Linux Kernel 6.19.2
* ClamAV 1.5.1
* Mise 2026.2.13
* Otoroshictl 0.0.16

Check failure on line 21 in content/changelog/2026/02-18-images-update.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/changelog/2026/02-18-images-update.md#L21

[Vale.Spelling] Did you really mean 'Otoroshictl'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Otoroshictl'?", "location": {"path": "content/changelog/2026/02-18-images-update.md", "range": {"start": {"line": 21, "column": 5}}}, "severity": "ERROR"}
* **.NET:**
* Update to 8.0.123
* Update to 9.0.113
* **Elixir:**
* Erlang 27.3.4.7
* **Node.js & Bun:**
* Update to 24.13.1 (npm 11.8.0)
* **PHP:**
* Update to 8.4.18
* Update to 8.5.3
* **Rust:**
* Update to 1.93.1

## Apache Basic Auth

`X-Robots-Tag: noindex, nofollow` header is now added to responses [with Basic Authentication](/doc/applications/php/apache/#basic-authentication) through Apache

## Request Flow extension

Request Flow is now available in Go, Java/Scala, Meteor, Node.js & Bun, PHP and Static with Apache runtimes. Python (without uv) and Ruby are coming soon. If your application currently uses Varnish in Go or Node.js, you must ask support to switch to this new release. Your application will have to move from port `8081` to `9000`.

Check warning on line 41 in content/changelog/2026/02-18-images-update.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/changelog/2026/02-18-images-update.md#L41

[Google.OxfordComma] Use the Oxford comma in 'Request Flow is now available in Go, Java/Scala, Meteor, Node.js & Bun, PHP and'.
Raw output
{"message": "[Google.OxfordComma] Use the Oxford comma in 'Request Flow is now available in Go, Java/Scala, Meteor, Node.js \u0026 Bun, PHP and'.", "location": {"path": "content/changelog/2026/02-18-images-update.md", "range": {"start": {"line": 41, "column": 1}}}, "severity": "WARNING"}

Check failure on line 41 in content/changelog/2026/02-18-images-update.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/changelog/2026/02-18-images-update.md#L41

[Vale.Spelling] Did you really mean 'uv'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'uv'?", "location": {"path": "content/changelog/2026/02-18-images-update.md", "range": {"start": {"line": 41, "column": 126}}}, "severity": "ERROR"}

Check warning on line 41 in content/changelog/2026/02-18-images-update.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/changelog/2026/02-18-images-update.md#L41

[Google.Will] Avoid using 'will'.
Raw output
{"message": "[Google.Will] Avoid using 'will'.", "location": {"path": "content/changelog/2026/02-18-images-update.md", "range": {"start": {"line": 41, "column": 286}}}, "severity": "WARNING"}

- [Learn more about Request Flow](/doc/develop/request-flow/)
1 change: 0 additions & 1 deletion content/doc/administrate/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ aliases:
{{< card link="/developers/doc/administrate/service-dependencies" title="Service dependencies" icon="plug" >}}
{{< card link="/developers/doc/administrate/ssh-clever-tools" title="SSH access to running instances" icon="command-line" >}}
{{< card link="/developers/doc/administrate/tcp-redirections" title="TCP redirections with Clever Tools" icon="tcp-ip-service" >}}
{{< card link="/developers/doc/administrate/cache" title="Varnish as HTTP cache" icon="bubbles" >}}
{{< card link="/developers/doc/administrate/zone-migration" title="Zone migration" icon="map-pin" >}}

{{< /cards >}}
71 changes: 0 additions & 71 deletions content/doc/administrate/cache.md

This file was deleted.

1 change: 1 addition & 0 deletions content/doc/applications/golang.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ To access environment variables from your code, use `os.Getenv("MY_VARIABLE")`.
{{% content "more-config" %}}

{{% content "url_healthcheck" %}}
{{% content "request-flow" %}}

## See also

Expand Down
1 change: 1 addition & 0 deletions content/doc/applications/java/java-gradle.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,3 +129,4 @@ Just create and commit the `gradlew` file and the wrapper `jar` and `properties`
{{% content "more-config" %}}

{{% content "url_healthcheck" %}}
{{% content "request-flow" %}}
1 change: 1 addition & 0 deletions content/doc/applications/java/java-jar.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,3 +142,4 @@ For Groovy applications, just use the `System.getProperty("MY_VARIABLE")`.
{{% content "more-config" %}}

{{% content "url_healthcheck" %}}
{{% content "request-flow" %}}
1 change: 1 addition & 0 deletions content/doc/applications/java/java-maven.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,3 +135,4 @@ CC_RUN_COMMAND="java -jar somefile.jar <options>"
{{% content "more-config" %}}

{{% content "url_healthcheck" %}}
{{% content "request-flow" %}}
1 change: 1 addition & 0 deletions content/doc/applications/java/java-war.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ Here's the list of the configuration values for the "container" field in `war.js
| WILDFLY23 | Use Wildfly servlet container 23.x (see <https://wildfly.org/>) | |

{{% content "url_healthcheck" %}}
{{% content "request-flow" %}}

## Custom run command

Expand Down
1 change: 1 addition & 0 deletions content/doc/applications/nodejs.md
Original file line number Diff line number Diff line change
Expand Up @@ -290,3 +290,4 @@ To access environment variables from your code, you can use `process.env.MY_VARI
{{% content "more-config" %}}

{{% content "url_healthcheck" %}}
{{% content "request-flow" %}}
3 changes: 1 addition & 2 deletions content/doc/applications/php/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,5 +214,4 @@ Then, set `APP_LOG=syslog` as Clever application environment variable.
You can learn more about ProxySQL on the [dedicated documentation page](/guides/proxysql)

{{% content "url_healthcheck" %}}
{{% content "redirectionio" %}}
{{% content "varnish" %}}
{{% content "request-flow" %}}
2 changes: 1 addition & 1 deletion content/doc/applications/static.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

## Overview

Static is a flexible, light and simple runtime dedicated to static sites generators (SSG), designed for minimum configuration effort with Auto-build feature. Pico instances are available, it allows users to put services in front of it, such as [Redirection.io](/doc/reference/reference-environment-variables/#use-redirectionio-as-a-proxy) or [Varnish](/doc/administrate/cache/).
Static is a flexible, light and simple runtime dedicated to static sites generators (SSG), designed for minimum configuration effort with Auto-build feature. Pico instances are available, it allows users to put services in front of it, such as [Redirection.io](/doc/reference/reference-environment-variables/#use-redirectionio-as-a-proxy) or [Varnish](/doc/develop/varnish/).

Check warning on line 32 in content/doc/applications/static.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/applications/static.md#L32

[Google.OxfordComma] Use the Oxford comma in 'Static is a flexible, light and'.
Raw output
{"message": "[Google.OxfordComma] Use the Oxford comma in 'Static is a flexible, light and'.", "location": {"path": "content/doc/applications/static.md", "range": {"start": {"line": 32, "column": 1}}}, "severity": "WARNING"}

Check notice on line 32 in content/doc/applications/static.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/applications/static.md#L32

[Google.Acronyms] Spell out 'SSG', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'SSG', if it's unfamiliar to the audience.", "location": {"path": "content/doc/applications/static.md", "range": {"start": {"line": 32, "column": 86}}}, "severity": "INFO"}

> [!NOTE] Static is a new runtime
> Help us to improve it by reporting any issue or suggestion on the [Clever Cloud Community](https://github.com/CleverCloud/Community/discussions/categories/paas-runtimes)
Expand Down
11 changes: 9 additions & 2 deletions content/doc/develop/request-flow.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,18 @@
- [.NET](/doc/applications/dotnet/)
- [Elixir](/doc/applications/elixir/)
- [FrankenPHP](/doc/applications/frankenphp/)
- [Go](/doc/applications/golang/)
- [Haskell](/doc/applications/haskell/)
- [Java](/doc/applications/java/) (Gradle, Jar, Maven, War/Ear)
- [Linux](/doc/applications/linux/)
- [Meteor](/doc/applications/meteor/)
- [Node.js & Bun](/doc/applications/nodejs/)
- [PHP with Apache](/doc/applications/php/)
- [Python with uv](/doc/applications/python/uv/)
- [Rust](/doc/applications/rust/)
- [Scala](/doc/applications/scala/)
- [Static](/doc/applications/static/)
- [Static with Apache](/doc/applications/static-apache/)
- [V (Vlang)](/doc/applications/v/)

## Supported services
Expand Down Expand Up @@ -64,7 +71,7 @@
Your application must listen on port `8080` when no middleware is active, or on port `9000` when at least one middleware is configured.

> [!NOTE]
> In runtimes where Clever Cloud manages the port configuration (FrankenPHP, Static), port allocation is handled transparently with no additional configuration.
> In runtimes where Clever Cloud manages the port configuration (FrankenPHP, Java, PHP, Static), port allocation is handled transparently with no additional configuration.

Check notice on line 74 in content/doc/develop/request-flow.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/develop/request-flow.md#L74

[Google.Passive] In general, use active voice instead of passive voice ('is handled').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('is handled').", "location": {"path": "content/doc/develop/request-flow.md", "range": {"start": {"line": 74, "column": 114}}}, "severity": "INFO"}

## Explicit configuration with CC_REQUEST_FLOW

Expand Down Expand Up @@ -127,7 +134,7 @@
| `CC_VARNISH_FILE` | Path to a custom Varnish VCL file (default: `clevercloud/varnish.vcl`) |
| `OTOROSHI_CHALLENGE_SECRET` | Otoroshi challenge secret. Activates Otoroshi Challenge verification in the request flow |

- [Learn more about Varnish on Clever Cloud](/doc/administrate/cache/)
- [Learn more about Varnish on Clever Cloud](/doc/develop/varnish/)
- [Learn more about Redirection.io](https://redirection.io/)
- [Learn more about OAuth2 Proxy](https://oauth2-proxy.github.io/oauth2-proxy/)
- [Learn more about Otoroshi on Clever Cloud](/doc/addons/otoroshi/)
Expand Down
67 changes: 67 additions & 0 deletions content/doc/develop/varnish.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
type: docs
linkTitle: Varnish as HTTP Cache
title: Varnish as HTTP Cache
description: Configure Varnish HTTP accelerator on Clever Cloud for performance optimization, content delivery, and traffic management
keywords:
- varnish cache
- http accelerator
- performance optimization
- content delivery
- reverse proxy
- caching strategy
aliases:
- /administrate/cache
- /doc/administrate/cache
- /doc/tools/varnish
---

## Overview

[Varnish](https://www.varnish-cache.org/) is an HTTP proxy-cache that sits as a reverse proxy between your application and the client. It caches responses according to rules you define, reducing load on your application. Clever Cloud provides **Varnish {{< runtime_version varnish >}} and varnish-modules {{< runtime_version varnish-modules >}}**.

Check failure on line 21 in content/doc/develop/varnish.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/develop/varnish.md#L21

[Vale.Spelling] Did you really mean 'runtime_version'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'runtime_version'?", "location": {"path": "content/doc/develop/varnish.md", "range": {"start": {"line": 21, "column": 258}}}, "severity": "ERROR"}

> [!NOTE] Supported runtimes
> Varnish is available on all runtimes that support [Request Flow](/doc/develop/request-flow/): **.NET**, **Elixir**, **FrankenPHP**, **Go**, **Haskell**, **Java**, **Linux**, **Node.js & Bun**, **PHP with Apache**, **Rust**, **Static**, and **V (Vlang)**

Check failure on line 24 in content/doc/develop/varnish.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/develop/varnish.md#L24

[Vale.Spelling] Did you really mean 'Vlang'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Vlang'?", "location": {"path": "content/doc/develop/varnish.md", "range": {"start": {"line": 24, "column": 248}}}, "severity": "ERROR"}

## Enable Varnish for your application

Create a `varnish.vcl` file in the `clevercloud/` folder at the root of your application. You can also set the `CC_VARNISH_FILE` environment variable to a custom path within your application root, written as an absolute path starting at `/` (for example `CC_VARNISH_FILE=/config/varnish.vcl`). If the file does not exist, deployment fails.

Check notice on line 28 in content/doc/develop/varnish.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/develop/varnish.md#L28

[Google.Contractions] Use 'doesn't' instead of 'does not'.
Raw output
{"message": "[Google.Contractions] Use 'doesn't' instead of 'does not'.", "location": {"path": "content/doc/develop/varnish.md", "range": {"start": {"line": 28, "column": 307}}}, "severity": "INFO"}

This file describes how Varnish caches your application's responses and when it returns a cached resource. To learn how to write your `varnish.vcl` file, refer to the [Varnish documentation](https://varnish-cache.org/docs/8.0/index.html).

The `vcl 4.1;` declaration and backend section are not necessary as they are already handled by Clever Cloud. If your `varnish.vcl` file is stored on an FS Bucket, redeploy the application for changes to take effect.

Check notice on line 32 in content/doc/develop/varnish.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/develop/varnish.md#L32

[Google.Contractions] Use 'aren't' instead of 'are not'.
Raw output
{"message": "[Google.Contractions] Use 'aren't' instead of 'are not'.", "location": {"path": "content/doc/develop/varnish.md", "range": {"start": {"line": 32, "column": 48}}}, "severity": "INFO"}

Check notice on line 32 in content/doc/develop/varnish.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/develop/varnish.md#L32

[Google.Contractions] Use 'they're' instead of 'they are'.
Raw output
{"message": "[Google.Contractions] Use 'they're' instead of 'they are'.", "location": {"path": "content/doc/develop/varnish.md", "range": {"start": {"line": 32, "column": 69}}}, "severity": "INFO"}

Check notice on line 32 in content/doc/develop/varnish.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/develop/varnish.md#L32

[Google.Passive] In general, use active voice instead of passive voice ('is stored').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('is stored').", "location": {"path": "content/doc/develop/varnish.md", "range": {"start": {"line": 32, "column": 138}}}, "severity": "INFO"}

## Listen on the right port

Varnish is managed through [Request Flow](/doc/develop/request-flow/). Once Varnish is enabled, your application must listen on port **9000** instead of **8080**. Request Flow places Varnish (and any other configured middleware) between the public port (`8080`) and your application. In runtimes where Clever Cloud manages the port configuration (FrankenPHP, Java, PHP, Static), this is handled transparently.

Check notice on line 36 in content/doc/develop/varnish.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/develop/varnish.md#L36

[Google.Passive] In general, use active voice instead of passive voice ('is managed').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('is managed').", "location": {"path": "content/doc/develop/varnish.md", "range": {"start": {"line": 36, "column": 9}}}, "severity": "INFO"}

Check notice on line 36 in content/doc/develop/varnish.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/develop/varnish.md#L36

[Google.Passive] In general, use active voice instead of passive voice ('is enabled').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('is enabled').", "location": {"path": "content/doc/develop/varnish.md", "range": {"start": {"line": 36, "column": 85}}}, "severity": "INFO"}

Check failure on line 36 in content/doc/develop/varnish.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/develop/varnish.md#L36

[Vale.Spelling] Did you really mean 'middleware'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'middleware'?", "location": {"path": "content/doc/develop/varnish.md", "range": {"start": {"line": 36, "column": 218}}}, "severity": "ERROR"}

Check notice on line 36 in content/doc/develop/varnish.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/develop/varnish.md#L36

[Google.Passive] In general, use active voice instead of passive voice ('is handled').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('is handled').", "location": {"path": "content/doc/develop/varnish.md", "range": {"start": {"line": 36, "column": 385}}}, "severity": "INFO"}

## Configure the cache size

Set the `CC_VARNISH_STORAGE_SIZE` environment variable to configure the Varnish cache size (default: `1G`).

```bash
CC_VARNISH_STORAGE_SIZE=2G
```

## Varnish migration

If you have a configuration for an older version of Varnish, read:

- [Upgrading to Varnish 7.0](https://varnish-cache.org/docs/7.0/whats-new/upgrading-7.0.html) guide
- [Upgrading to Varnish 8.0](https://varnish-cache.org/docs/8.0/whats-new/upgrading-8.0.html) guide

## Example files

Clever Cloud provides [example Varnish configuration files](https://github.com/CleverCloud/varnish-examples). Download the one that fits your needs, rename it to `varnish.vcl` and place it in the `clevercloud/` folder at the root of your application.

## Varnish with a monorepo

If you use a monorepo, you may want to use Varnish for only some of its applications. Use `CC_VARNISH_FILE` to point to a specific configuration file.

A `clevercloud/varnish.vcl` file at the root of your monorepo activates Varnish for all applications. To limit Varnish to specific applications, place the file elsewhere and create a symlink during deployment only for the applications that need it:

```bash
CC_PRE_BUILD_HOOK="mkdir $APP_HOME/clevercloud; ln -s $APP_HOME/path/to/your/file/varnish.vcl $APP_HOME/clevercloud/varnish.vcl"
```

Applications without this hook or without `CC_VARNISH_FILE` set will not use Varnish.

Check notice on line 67 in content/doc/develop/varnish.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/develop/varnish.md#L67

[Google.Contractions] Use 'won't' instead of 'will not'.
Raw output
{"message": "[Google.Contractions] Use 'won't' instead of 'will not'.", "location": {"path": "content/doc/develop/varnish.md", "range": {"start": {"line": 67, "column": 65}}}, "severity": "INFO"}

Check warning on line 67 in content/doc/develop/varnish.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/develop/varnish.md#L67

[Google.Will] Avoid using 'will'.
Raw output
{"message": "[Google.Will] Avoid using 'will'.", "location": {"path": "content/doc/develop/varnish.md", "range": {"start": {"line": 67, "column": 65}}}, "severity": "WARNING"}
4 changes: 2 additions & 2 deletions content/doc/reference/reference-environment-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@ Use these to define [commands to run](/doc/develop/build-hooks) between various
|[`CC_METRICS_PROMETHEUS_PORT`](/doc/metrics/#publish-your-own-metrics "Publish your own metrics") | Define the port on which the Prometheus endpoint is available | 9100 |
|[`CC_METRICS_PROMETHEUS_RESPONSE_TIMEOUT`](/doc/metrics/#publish-your-own-metrics "Publish your own metrics") | Define the timeout in seconds to collect the application metrics. This value **must** be below 60 seconds as data are collected every minutes | 3 |
|[`CC_METRICS_PROMETHEUS_USER`](/doc/metrics/#publish-your-own-metrics "Publish your own metrics") | Define the user for the basic auth of the Prometheus endpoint | |
|[`CC_VARNISH_FILE`](/doc/administrate/cache "Cache") | The path to the Varnish configuration file, relative to your application root | `/clevercloud/varnish.vcl` |
|[`CC_VARNISH_STORAGE_SIZE`](/doc/administrate/cache "Cache") | Configure the size of the Varnish cache. | 1G |
|[`CC_VARNISH_FILE`](/doc/develop/varnish "Cache") | The path to the Varnish configuration file, relative to your application root | `/clevercloud/varnish.vcl` |
|[`CC_VARNISH_STORAGE_SIZE`](/doc/develop/varnish "Cache") | Configure the size of the Varnish cache. | 1G |
|[`CC_WORKER_COMMAND`](/doc/develop/workers "Workers") | Command to run in background as a worker process. You can run multiple workers. | |

{{% content "mise" %}}
Expand Down
4 changes: 2 additions & 2 deletions content/guides/tutorial-wordpress.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ To uninstall the plugin, the procedure is the same as before except that you hav
## Optimise and speed-up your WordPress

There are multiple ways to optimise your WordPress and speed-up its response time.
We provide different tools and software to help you in this task as [Varnish](/doc/administrate/cache) for the HTTP cache, and [Redis](/doc/addons/redis) for the object caching.
We provide different tools and software to help you in this task as [Varnish](/doc/develop/varnish) for the HTTP cache, and [Redis](/doc/addons/redis) for the object caching.

### Performance plugins

Expand All @@ -159,7 +159,7 @@ We noticed performances problems when performance plugins are enabled and we rec

### HTTP Cache with Varnish

Enabling [Varnish](/doc/administrate/cache) for your application is very simple. All instances of PHP provide [Varnish](/doc/administrate/cache), you just have to configure your application to use it.
Enabling [Varnish](/doc/develop/varnish) for your application is very simple. All instances of PHP provide [Varnish](/doc/develop/varnish), you just have to configure your application to use it.

1. To use Varnish in your application, you have to create a `varnish.vcl` file in the `clevercloud` folder of your application. If this folder doesn't exist, create it in the **root** of your project.

Expand Down
Loading