{"id":19302139,"url":"https://github.com/wodby/varnish","last_synced_at":"2025-04-07T06:11:13.414Z","repository":{"id":46676141,"uuid":"80441239","full_name":"wodby/varnish","owner":"wodby","description":"Varnish docker container image","archived":false,"fork":false,"pushed_at":"2025-02-16T02:28:48.000Z","size":909,"stargazers_count":56,"open_issues_count":4,"forks_count":29,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-05T14:39:02.780Z","etag":null,"topics":["alpine","docker","varnish"],"latest_commit_sha":null,"homepage":"https://wodby.com/stacks/varnish","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wodby.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-01-30T16:47:57.000Z","updated_at":"2025-02-16T02:28:50.000Z","dependencies_parsed_at":"2023-11-14T03:22:44.447Z","dependency_job_id":"7f9adefd-db72-4fea-9699-6cc0538bf813","html_url":"https://github.com/wodby/varnish","commit_stats":null,"previous_names":[],"tags_count":113,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wodby%2Fvarnish","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wodby%2Fvarnish/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wodby%2Fvarnish/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wodby%2Fvarnish/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wodby","download_url":"https://codeload.github.com/wodby/varnish/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247601448,"owners_count":20964864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpine","docker","varnish"],"created_at":"2024-11-09T23:20:03.550Z","updated_at":"2025-04-07T06:11:13.384Z","avatar_url":"https://github.com/wodby.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Varnish Docker Container Image\n\n[![Build Status](https://github.com/wodby/varnish/workflows/Build%20docker%20image/badge.svg)](https://github.com/wodby/varnish/actions)\n[![Docker Pulls](https://img.shields.io/docker/pulls/wodby/varnish.svg)](https://hub.docker.com/r/wodby/varnish)\n[![Docker Stars](https://img.shields.io/docker/stars/wodby/varnish.svg)](https://hub.docker.com/r/wodby/varnish)\n\n- [Docker images](#docker-images)\n- [Environment variables](#environment-variables)\n- [Installed modules](#installed-modules)\n- [Default behaviour](#default-behaviour)\n    - [Caching rules](#caching-rules)\n    - [Cache personification](#cache-personification)\n    - [GeoIP](#geoip)\n    - [Currency](#currency)    \n    - [Flushing](#cache-flushing)\n    - [Miscellaneous](#miscellaneous)\n- [Config presets](#config-presets)\n    - [Drupal](#drupal)\n    - [WordPress](#wordpress)\n- [PageSpeed downstream caching](#pagespeed-downstream-caching)        \n- [Orchestration actions](#orchestration-actions)    \n- [Deployment](#deployment)    \n\n## Docker Images\n\n❗For better reliability we release images with stability tags (`wodby/varnish:6-X.X.X`) which correspond to [git tags](https://github.com/wodby/varnish/releases). We strongly recommend using images only with stability tags. \n\nOverview:\n\n- All images based on Alpine Linux\n- Base image: [wodby/alpine](https://github.com/wodby/alpine)\n- [GitHub actions builds](https://github.com/wodby/varnish/actions) \n- [Docker Hub](https://hub.docker.com/r/wodby/varnish)\n\nAll images built for `linux/amd64` and `linux/arm64`\n\nSupported tags and respective `Dockerfile` links:\n\n- `6.0`, `6`, `latest` [_(Dockerfile)_](https://github.com/wodby/varnish/tree/master/Dockerfile)\n\n## Environment Variables\n\n| Variable                                   | Default Value              | Description                                     |\n|--------------------------------------------|----------------------------|-------------------------------------------------|\n| `VARNISH_ALLOW_UNRESTRICTED_PURGE`         |                            | Used for ban requests as well                   |\n| `VARNISH_BACKEND_BETWEEN_BYTES_TIMEOUT`    | `60s`                      |                                                 |\n| `VARNISH_BACKEND_CONNECT_TIMEOUT`          | `3.5s`                     |                                                 |\n| `VARNISH_BACKEND_FIRST_BYTE_TIMEOUT`       | `60s`                      |                                                 |\n| `VARNISH_BACKEND_GRACE`                    | `2m`                       |                                                 |\n| `VARNISH_BACKEND_HOST`                     |                            | Mandatory                                       |\n| `VARNISH_BACKEND_PORT`                     | `80`                       |                                                 |\n| `VARNISH_CACHE_PER_COUNTRY`                |                            | Separate caches based on [country code](#geoip) |\n| `VARNISH_CACHE_PER_CURRENCY`               |                            | Separate caches based on [currency](#currency)  |\n| `VARNISH_CURRENCY_EUR_COUNTRY_CODES`       |                            | See [currencies](#currency)                     |\n| `VARNISH_CURRENCY_USD_COUNTRY_CODES`       |                            | See [currencies](#currency)                     |\n| `VARNISH_BIG_FILES_SIZE`                   | `10485760`                 | 10MB                                            |\n| `VARNISH_BIG_FILES_TTL`                    | `120s`                     |                                                 |\n| `VARNISH_CACHE_STATIC_FILES`               |                            |                                                 |\n| `VARNISH_CONFIG_PRESET`                    |                            |                                                 |\n| `VARNISH_DEFAULT_TTL`                      | `120s`                     |                                                 |\n| `VARNISH_ERRORS_GRACE`                     | `15s`                      |                                                 |\n| `VARNISH_PURGE_EXTERNAL_REQUEST_HEADER`    |                            |                                                 |\n| `VARNISH_KEEP_ALL_COOKIES`                 |                            |                                                 |\n| `VARNISH_KEEP_ALL_PARAMS`                  |                            |                                                 |\n| `VARNISH_IMPORT_MODULES`                   |                            | Separated by comma                              |\n| `VARNISH_MOBILE_DISABLE_CASH`              |                            |                                                 |\n| `VARNISH_MOBILE_SEPARATE_CASH`             |                            |                                                 |\n| `VARNISH_MOBILE_USER_AGENT`                |                            | See default value below                         |\n| `VARNISH_PIPE_CLOSE_CONNECTION`            |                            |                                                 |\n| `VARNISH_PURGE_KEY`                        |                            | Randomly generated if missing                   |\n| `VARNISH_SECONDARY_STORAGE_CONDITION`      |                            | Must be valid VCL                               |\n| `VARNISH_SECRET`                           |                            | Generated automatically if missing              |\n| `VARNISH_STATIC_FILES`                     |                            | See default value below                         |\n| `VARNISH_STATIC_TTL`                       | `86400`                    | In seconds                                      |\n| `VARNISH_STRIP_COOKIES`                    |                            | See default value below                         |\n| `VARNISH_STRIP_PARAMS`                     |                            | See default value below                         |\n| `VARNISH_STRIP_ALL_PARAMS`                 |                            | Ignored if `$VARNISH_KEEP_ALL_PARAMS` is set    |\n| `VARNISH_PAGESPEED_SECRET_KEY`             |                            | Should be used if mod_pagespeed is enabled      |\n| `VARNISHD_DEFAULT_TTL`                     | `120`                      |                                                 |\n| `VARNISHD_MEMORY_SIZE`                     | `64m`                      |                                                 |\n| `VARNISHD_PARAM_BAN_LURKER_AGE`            | `60.000`                   |                                                 |\n| `VARNISHD_PARAM_BAN_LURKER_BATCH`          | `1000`                     |                                                 |\n| `VARNISHD_PARAM_BAN_LURKER_SLEEP`          | `0.010`                    |                                                 |\n| `VARNISHD_PARAM_BETWEEN_BYTES_TIMEOUT`     | `60.000`                   |                                                 |\n| `VARNISHD_PARAM_CONNECT_TIMEOUT`           | `3.500`                    |                                                 |\n| `VARNISHD_PARAM_DEFAULT_GRACE`             | `10.000`                   |                                                 |\n| `VARNISHD_PARAM_DEFAULT_KEEP`              | `0.000`                    |                                                 |\n| `VARNISHD_PARAM_DEFAULT_TTL`               | `120.000`                  |                                                 |\n| `VARNISHD_PARAM_FETCH_CHUNKSIZE`           | `16k`                      |                                                 |\n| `VARNISHD_PARAM_FIRST_BYTE_TIMEOUT`        | `60.000`                   |                                                 |\n| `VARNISHD_PARAM_GZIP_BUFFER`               | `32k`                      |                                                 |\n| `VARNISHD_PARAM_GZIP_LEVEL`                | `6`                        |                                                 |\n| `VARNISHD_PARAM_GZIP_MEMLEVEL`             | `8`                        |                                                 |\n| `VARNISHD_PARAM_HTTP_GZIP_SUPPORT`         | `on`                       |                                                 |\n| `VARNISHD_PARAM_HTTP_MAX_HDR`              | `64`                       |                                                 |\n| `VARNISHD_PARAM_HTTP_REQ_HDR_LEN`          | `8k`                       |                                                 |\n| `VARNISHD_PARAM_HTTP_REQ_SIZE`             | `32k`                      |                                                 |\n| `VARNISHD_PARAM_HTTP_RESP_HDR_LEN`         | `8k`                       |                                                 |\n| `VARNISHD_PARAM_HTTP_RESP_SIZE`            | `32k`                      |                                                 |\n| `VARNISHD_PARAM_IDLE_SEND_TIMEOUT`         | `60.000`                   |                                                 |\n| `VARNISHD_PARAM_MAX_ESI_DEPTH`             | `5`                        |                                                 |\n| `VARNISHD_PARAM_MAX_RESTARTS`              | `4`                        |                                                 |\n| `VARNISHD_PARAM_MAX_RETRIES`               | `4`                        |                                                 |\n| `VARNISHD_PARAM_NUKE_LIMIT`                | `50`                       |                                                 |\n| `VARNISHD_PARAM_PING_INTERVAL`             | `3`                        |                                                 |\n| `VARNISHD_PARAM_PIPE_TIMEOUT`              | `60.000`                   |                                                 |\n| `VARNISHD_PARAM_POOL_REQ`                  | `10,100,10`                |                                                 |\n| `VARNISHD_PARAM_POOL_SESS`                 | `10,100,10`                |                                                 |\n| `VARNISHD_PARAM_PREFER_IPV6`               | `off`                      |                                                 |\n| `VARNISHD_PARAM_RUSH_EXPONENT`             | `3`                        |                                                 |\n| `VARNISHD_PARAM_SEND_TIMEOUT`              | `600`                      |                                                 |\n| `VARNISHD_PARAM_SHORTLIVED`                | `10.000`                   |                                                 |\n| `VARNISHD_PARAM_TCP_KEEPALIVE_INTVL`       | `75.000`                   |                                                 |\n| `VARNISHD_PARAM_TCP_KEEPALIVE_PROBES`      | `8`                        |                                                 |\n| `VARNISHD_PARAM_TCP_KEEPALIVE_TIME`        | `7200.000`                 |                                                 |\n| `VARNISHD_PARAM_THREAD_POOL_ADD_DELAY`     | `0.000`                    |                                                 |\n| `VARNISHD_PARAM_THREAD_POOL_DESTROY_DELAY` | `1.000`                    |                                                 |\n| `VARNISHD_PARAM_THREAD_POOL_FAIL_DELAY`    | `0.200`                    |                                                 |\n| `VARNISHD_PARAM_THREAD_POOL_MAX`           | `5000`                     |                                                 |\n| `VARNISHD_PARAM_THREAD_POOL_MIN`           | `100`                      |                                                 |\n| `VARNISHD_PARAM_THREAD_POOL_STACK`         | `48k`                      |                                                 |\n| `VARNISHD_PARAM_THREAD_POOL_TIMEOUT`       | `300.000`                  |                                                 |\n| `VARNISHD_PARAM_THREAD_POOLS`              | `2`                        |                                                 |\n| `VARNISHD_PARAM_THREAD_QUEUE_LIMIT`        | `20`                       |                                                 |\n| `VARNISHD_PARAM_TIMEOUT_IDLE`              | `5.000`                    |                                                 |\n| `VARNISHD_PARAM_TIMEOUT_LINGER`            | `0.050`                    |                                                 |\n| `VARNISHD_PARAM_VSL_BUFFER`                | `4k`                       |                                                 |\n| `VARNISHD_PARAM_VSL_RECLEN`                | `255b`                     |                                                 |\n| `VARNISHD_PARAM_VSL_SPACE`                 | `80M`                      |                                                 |\n| `VARNISHD_PARAM_VSM_SPACE`                 | `1M`                       |                                                 |\n| `VARNISHD_PARAM_WORKSPACE_BACKEND`         | `64k`                      |                                                 |\n| `VARNISHD_PARAM_WORKSPACE_CLIENT`          | `64k`                      |                                                 |\n| `VARNISHD_PARAM_WORKSPACE_SESSION`         | `0.50k`                    |                                                 |\n| `VARNISHD_PARAM_WORKSPACE_THREAD`          | `2k`                       |                                                 |\n| `VARNISHD_SECONDARY_STORAGE`               |                            | See example below                               |\n| `VARNISHD_SECRET_FILE`                     | `/etc/varnish/secret`      |                                                 |\n| `VARNISHD_VCL_SCRIPT`                      | `/etc/varnish/default.vcl` |                                                 |\n\n###### `VARNISH_MOBILE_USER_AGENT`:\n\nBackslashes must be escaped as `\\\\`\n\n```\nipod|android|blackberry|phone|mobile|kindle|silk|fennec|tablet|webos|palm|windows ce|nokia|philips|samsung|sanyo|sony|panasonic|ericsson|alcatel|series60|series40|opera mini|opera mobi|au-mic|audiovox|avantgo|blazer|danger|docomo|epoc|ericy|i-mode|ipaq|midp-|mot-|netfront|nitro|pocket|portalmmm|rover|sie-|symbian|cldc-|j2me|up\\\\.browser|up\\\\.link|vodafone|wap1\\\\.|wap2\\\\.\n```\n\n###### `VARNISH_STATIC_FILES`:\n\n```\nasc|doc|xls|ppt|csv|svg|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|html|htm|webp\n```\n\n###### `VARNISH_STRIP_COOKIES`\n\nIgnored if `$VARNISH_KEEP_ALL_COOKIES` is set\n\n```\n__[a-z]+|wooTracker|VCKEY-[a-zA-Z0-9-_]+\n```\n\n###### `VARNISH_STRIP_PARAMS`\n\nIgnored if `$VARNISH_KEEP_ALL_PARAMS` is set\n\n```\nutm_[a-z]+|gclid|cx|ie|cof|siteurl|fbclid\n```\n\n###### `VARNISH_SECONDARY_STORAGE_CONDITION`:\n\nAllows defining custom conditions for storing the cache object in the secondary storage; as it is injected into an `if` it has to contain valid VCL syntax for it.\n\nPlease note that `VARNISHD_SECONDARY_STORAGE` must be defined as well, otherwise the secondary storage would not be available.\n\nExample: instruct varnish to store in the secondary storage from the backend via custom header `X-Cache-Bin`:\n\n```\nVARNISH_STORAGE_CONDITION='beresp.http.x-cache-bin = \"secondary\"'\n```\n\n## Installed Modules\n\n| Module                                                                                      | Version | Imported |\n| ------                                                                                      | ------- | -------- |\n| [geoip](https://github.com/varnish/libvmod-geoip)                                           | 1.0.3   | ✓        |\n| [digest](https://github.com/varnish/libvmod-digest)                                         | 1.0.2   |          |\n| [cookie](https://github.com/varnish/varnish-modules/blob/master/docs/vmod_cookie.rst)       | latest  |          |\n| [vsthrottle](https://github.com/varnish/varnish-modules/blob/master/docs/vmod_cookie.rst)   | latest  |          |\n| [header](https://github.com/varnish/varnish-modules/blob/master/docs/vmod_header.rst)       | latest  |          |\n| [saintmode](https://github.com/varnish/varnish-modules/blob/master/docs/vmod_saintmode.rst) | latest  |          |\n| [softpurge](https://github.com/varnish/varnish-modules/blob/master/docs/vmod_softpurge.rst) | latest  |          |\n| [tcp](https://github.com/varnish/varnish-modules/blob/master/docs/vmod_tcp.rst)             | latest  |          |\n| [var](https://github.com/varnish/varnish-modules/blob/master/docs/vmod_var.rst)             | latest  |          |\n| [xkey](https://github.com/varnish/varnish-modules/blob/master/docs/vmod_xkey.rst)           | latest  |          |\n| bodyaccess                                                                                  | latest  |          |\n\nModules can be imported as `$VARNISH_IMPORT_MODULES=xkey,softpurge`.\n\n## Default Behaviour\n\n### Caching Rules\n\n- Only GET or HEAD requests are cached\n- Backend responses with `Set-Cookie` header not cached\n- Static files (see `$VARNISH_STATIC_FILES`) not cached by default, set `$VARNISH_CACHE_STATIC_FILES` to cache\n- Error pages 404 and \u003e500 not cached with grace period `$VARNISH_ERRORS_GRACE`\n- All AJAX requests not cached\n- Big files (larger than `$VARNISH_BIG_FILES_SIZE`) not cached\n\n### Cache Personification\n\nWhite-listed cookies starting with `VCKEY-` followed by alphanumeric characters, underscores or hyphens are used to build cache hash. You can use such cookies to personify cache by a certain criteria, e.g. set `VCKEY-lang` to `en` or `fr` to cache different versions for English and French users.\n\nOn your backend you should check whether `VCKEY-` cookie exists, if it does generate a personified version of a page and do not set cookie again, otherwise it won't be cached on Varnish. \n\n### GeoIP\n\nWe identify client's two-letter country code ([ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) and pass it to a backend in `X-Country-Code` header. If Varnish could not recognize the country the default value will be `Unknown`. You can optionally uniquify cache per country by setting `$VARNISH_CACHE_PER_COUNTRY=1`. We use GeoLite database from MaxMind.\n\n\nIf we see CloudFlare country code header we use it instead.\n\n### Currency\n\nWe use [the country code](#geoip) to identify the currency and pass it to a backend in `X-Currency` header. You can optionally uniquify cache per currency by setting `$VARNISH_CACHE_PER_CURRENCY=1`. \n\nWe use data from [IBAN](https://www.iban.com/currency-codes) to identify which country uses which currency, currently only USD and EUR supported.\n\nCountry codes for USD (`$VARNISH_CURRENCY_USD_COUNTRY_CODES`): \n```\nUS|AS|BQ|IO|EC|SV|GU|HT|MH|FM|MP|PA|PW|PR|TL|TC|UM|VG|VI\n```\n\nCountry codes for EUR (`$VARNISH_CURRENCY_EUR_COUNTRY_CODES`):\n```\nAD|AT|BE|CY|EE|FI|FR|GF|TF|DE|GP|GR|VA|IE|IT|LV|LT|LU|MT|MQ|YT|MC|ME|NL|PT|RE|BL|MF|PM|SM|SK|SI|ES|CE|CH|AX\n```\n\n### Cache Flushing\n\n- Purge and ban requests both use Varnish's `ban` method to flush cache and restricted by the purge key `$VARNISH_PURGE_KEY` (generated if missing). Use header `X-VC-Purge-Key` to pass the key for purge/ban requests\n- Purge requests look up for exact match but ignores query params, you can change the method by setting `X-VC-Purge-Method` to `regex` or `exact` (respects query params)\n- Additionally for ban requests cache flushed by `Cache-Tags` header (Drupal's case)\n- If you want to allow unrestricted purge/ban requests in internal network specify a header via `$VARNISH_PURGE_EXTERNAL_REQUEST_HEADER` that exists only for external requests (e.g. `X-Real-IP`). If specified header is not set Varnish will skip purge key check\n\n### Miscellaneous\n\n- Header `X-VC-Cache` set to `HIT` or `MISS` when varnish delivers content\n- Cache hash includes host (or ip) and request protocol\n- Varnish adds client's IP added to `X-Forwarded-For`\n- [Websocket requests supported](https://varnish-cache.org/docs/4.1/users-guide/vcl-example-websockets.html)\n- Query params (`$VARNISH_STRIP_PARAMS`) stripped unless `$VARNISH_KEEP_ALL_PARAMS` is set\n- Cookies (`$VARNISH_STRIP_COOKIES`) stripped unless `$VARNISH_KEEP_ALL_COOKIES` is set\n- Hashes and trailing `?` stripped from URL before passing to backend\n- By default cache mobile devices is identical. You can separate it by setting `$VARNISH_MOBILE_SEPARATE_CASH` or completely disable by setting `$VARNISH_MOBILE_DISABLE_CASH`. Regex `$VARNISH_MOBILE_USER_AGENT` used to identify mobile devices by `User-Agent` header \n- Set one of the following headers from backend to disable caching for a page: \n    ```\n    X-VC-Cacheable: NO\n    Cache-control: private\n    Cache-control: no-cache\n    ```\n- Set `X-VC-Debug` to show cache hashes and pass through header `X-VC-DebugMessage`\n- `BigPipe` supported\n- Secondary storage can be defined via `$VARNISH_STORAGE_CONDITION`\n- `./vchealthz` is a liveness endpoint with 204 response code\n\n## Config Presets\n\nYou can use one of the following config presets to extend the default behaviour:\n\n### Drupal\n\nAdd `VARNISH_CONFIG_PRESET=drupal` to use this preset.\n\n- Pages matching `$VARNISH_DRUPAL_EXCLUDE_URLS` will not be cached\n- If a cookie from `$VARNISH_DRUPAL_PRESERVED_COOKIES` is set a page will not be cached. All other cookies stripped  \n\n###### `VARNISH_DRUPAL_EXCLUDE_URLS`:\n\nBackslashes must be escaped as `\\\\`\n\n```\n^(/update\\\\.php|/([a-z]{2}/)?admin|/([a-z]{2}/)?admin/.*|/([a-z]{2}/)?system/files/.*|/([a-z]{2}/)?flag/.*|.*/ajax/.*|.*/ahah/.*)$\n```\n\n###### `VARNISH_DRUPAL_PRESERVED_COOKIES`:\n\nNot affected by `$VARNISH_KEEP_ALL_COOKIES`\n\n```\nSESS[a-z0-9]+|SSESS[a-z0-9]+|NO_CACHE\n```\n\n### WordPress\n\nAdd `VARNISH_CONFIG_PRESET=wordpress` to use this preset.\n\n- Requests with `ak_action|app-download` query params or `akm_mobile` cookie not cached (Jetpack plugin)\n- Strips `replytocom=` query param\n- Use `$VARNISH_WP_ADMIN_SUBDOMAIN` if you have your admin on a subdomain to disable caching \n- If a cookie from `$VARNISH_WP_PRESERVED_COOKIES` is set a page will not be cached. All other cookies stripped\n\n###### `VARNISH_WP_PRESERVED_COOKIES`:\n\nNot affected by `$VARNISH_KEEP_ALL_COOKIES`\n\n```\nPHPSESSID|wp-postpass_[a-z0-9]+|wordpress_[_a-z0-9]+|wordpress_logged_in_[a-z0-9]+|woocommerce_cart_hash|woocommerce_items_in_cart|wp_woocommerce_session_[a-z0-9]+|akm_mobile\n```\n\n## PageSpeed Downstream Caching\n\nThis image contains implementation for modpagespeed downstream caching as described at https://www.modpagespeed.com/doc/downstream-caching. You can enable this behavior by specifying `$VARNISH_PAGESPEED_SECRET_KEY` to the value that matches `DownstreamCacheRebeaconingKey` in your Nginx/Apache config. This value will be used as `PS-ShouldBeacon` for 5% of hits and 25% of misses. Also, when static files cache enabled on Varnish, `PS-CapabilityList`  will be set to `fully general optimizations only` to [unify behavior for all browsers](https://www.modpagespeed.com/doc/downstream-caching#ps-capabilitylist).\n\n## Orchestration Actions\n\n```\nmake COMMAND [params ...]\n\ncommands:\n    check-ready [host max_try wait_seconds delay_seconds]\n    flush [host]\n \ndefault params values:\n    host localhost\n    max_try 1\n    wait_seconds 1\n    delay_seconds 0\n```\n\n## Deployment\n\nDeploy Varnish container to your own server via [![Wodby](https://www.google.com/s2/favicons?domain=wodby.com) Wodby](https://wodby.com/stacks/varnish).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwodby%2Fvarnish","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwodby%2Fvarnish","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwodby%2Fvarnish/lists"}