diff --git a/assets/style.css b/assets/style.css index 76370cc4f..04fdd26bb 100644 --- a/assets/style.css +++ b/assets/style.css @@ -495,9 +495,12 @@ article aside.note a { font-weight: var(--font-weight-bold, 700); } -article aside.note code.language-plaintext { +article aside.note code.language-plaintext, +article .stack:not(table .stack) { background-color: var(--color-primary-purple-200-60); color: var(--color-primary-purple-800); + padding: 0 0.33rem; + border-radius: 6px; } article aside.warning { @@ -765,7 +768,8 @@ article pre { } } -article code.language-plaintext { +article code.language-plaintext, +article .stack:not(table .stack) { background-color: var(--color-sc-gray-3); color: var(--color-sc-gray-2); font-family: var(--font-mono); @@ -1206,3 +1210,36 @@ ol.deploy-timeline { } } } + +article .stack { + align-items: center; + display: inline-flex; + gap: 0.33rem; + + &::after { + content: "\25CF"; /* ⏺ (black circle) */ + } + + &.default, + &.supported { + &::after { + color: rgb(103, 194, 58); + margin-top: -0.1rem; /* Small adj. for v-alignment */ + } + } + + &.deprecated { + &::after { + color: rgb(230, 162, 60); + content: "\25B2"; /* ▲ (plain up-pointing triangle) */ + margin-top: -0.2rem; /* Small adj. for v-alignment */ + } + } + + &.discontinued { + &::after { + color: rgb(245, 108, 108); + content: "\1F7AD"; /* 🞭 (very heavy saltire) */ + } + } +} diff --git a/src/_includes/nginx_versions.md b/src/_includes/nginx_versions.md index 6c596547b..2bd5c284e 100644 --- a/src/_includes/nginx_versions.md +++ b/src/_includes/nginx_versions.md @@ -7,4 +7,4 @@ Scalingo supports the following versions of Nginx: {% include scalingo_22_deprecation_note.md %} -[EOL]: {% post_url platform/internals/stacks/2000-01-01-stacks %}#stack-end-of-life +[EOL]: {% post_url platform/internals/stacks/2000-01-01-overview %}#lifecycle diff --git a/src/_includes/scalingo_22_deprecation_note.md b/src/_includes/scalingo_22_deprecation_note.md index e5f63cd04..67e512255 100644 --- a/src/_includes/scalingo_22_deprecation_note.md +++ b/src/_includes/scalingo_22_deprecation_note.md @@ -1,4 +1,11 @@ {% note %} -The [`scalingo-22`]({% post_url platform/internals/stacks/2000-01-01-scalingo-22-stack %}) stack is deprecated and will be discontinued on June 1, 2027. -Applications must be migrated to [`scalingo-24`]({% post_url platform/internals/stacks/2000-01-01-scalingo-24-stack %}) or [`scalingo-26`]({% post_url platform/internals/stacks/2000-01-01-scalingo-26-stack %}) before this date. +[{% scalingo 22 %}][scalingo-22] is now deprecated.\\ +It will be discontinued on June 1, 2027. Applications must be migrated to +another [stack], such as [{% scalingo 24 %}][scalingo-24] or +[{% scalingo 26 %}][scalingo-26] before this date. {% endnote %} + +[stack]: {% post_url platform/internals/stacks/2000-01-01-overview %} +[scalingo-22]: {% post_url platform/internals/stacks/2000-01-01-scalingo-22-stack %} +[scalingo-24]: {% post_url platform/internals/stacks/2000-01-01-scalingo-24-stack %} +[scalingo-26]: {% post_url platform/internals/stacks/2000-01-01-scalingo-26-stack %} diff --git a/src/_plugins/jekyll-stack-tag.rb b/src/_plugins/jekyll-stack-tag.rb new file mode 100644 index 000000000..2c3084a81 --- /dev/null +++ b/src/_plugins/jekyll-stack-tag.rb @@ -0,0 +1,25 @@ +module Jekyll + class StackTag < Liquid::Tag + CLASSES = { + "26" => "supported", + "24" => "supported", + "22" => "deprecated", + "20" => "discontinued", + "18" => "discontinued", + "14" => "discontinued" + }.freeze + + def initialize(tag_name, markup, tokens) + super + @stack = markup.strip + end + + def render(context) + css_class = CLASSES.fetch(@stack, "unknown") + + %(scalingo-#{@stack}) + end + end +end + +Liquid::Template.register_tag("scalingo", Jekyll::StackTag) diff --git a/src/_posts/addons/scalingo-openvpn/2000-01-01-start.md b/src/_posts/addons/scalingo-openvpn/2000-01-01-start.md index 358c062e4..c41779438 100644 --- a/src/_posts/addons/scalingo-openvpn/2000-01-01-start.md +++ b/src/_posts/addons/scalingo-openvpn/2000-01-01-start.md @@ -144,7 +144,7 @@ It depends on the stack: * `scalingo-24`: [2.6.x](https://packages.ubuntu.com/noble/amd64/openvpn) * `scalingo-26`: [2.7.x](https://packages.ubuntu.com/resolute/amd64/openvpn) -_[More information about stacks]({% post_url platform/internals/stacks/2000-01-01-stacks %})_ +_[More information about stacks]({% post_url platform/internals/stacks/2000-01-01-overview %})_ ### I would like to configure the DNS with the `dhcp-option` configuration, is it possible? diff --git a/src/_posts/languages/go/2000-01-01-start.md b/src/_posts/languages/go/2000-01-01-start.md index 2d4559db2..cc3048a0e 100644 --- a/src/_posts/languages/go/2000-01-01-start.md +++ b/src/_posts/languages/go/2000-01-01-start.md @@ -1,7 +1,7 @@ --- title: Go nav: Introduction -modified_at: 2026-06-16 00:00:00 +modified_at: 2026-06-22 00:00:00 tags: go index: 1 --- @@ -14,11 +14,11 @@ The Go programming language is supported. The following versions of Go are available: -| Go Version | `scalingo-22` ([EOL]) | `scalingo-24` | `scalingo-26` | -| ----------: | --------------------: | --------------: | --------------: | -| **`1.26`** | up to `1.26.4` | up to `1.26.4` | up to `1.26.4` | -| **`1.25`** | up to `1.25.11` | up to `1.25.11` | up to `1.25.11` | -| **`1.24`** | up to `1.24.13` | up to `1.24.13` | up to `1.24.13` | +| Go Version | {% scalingo 22 %} | {% scalingo 24 %} | {% scalingo 26 %} | +| ---------: | ----------------: | ----------------: | ----------------: | +| **`1.26`** | up to `1.26.4` | up to `1.26.4` | up to `1.26.4` | +| **`1.25`** | up to `1.25.11` | up to `1.25.11` | up to `1.25.11` | +| **`1.24`** | up to `1.24.13` | up to `1.24.13` | up to `1.24.13` | The default Go version on all stacks is the latest `go1.25` version. @@ -88,5 +88,5 @@ limit for the full process memory. For more details, refer to the More information at [https://github.com/Scalingo/go-buildpack](https://github.com/Scalingo/go-buildpack). -[go-runtime-env]: https://pkg.go.dev/runtime#hdr-Environment_Variables -[EOL]: {% post_url platform/internals/stacks/2000-01-01-stacks %}#stack-end-of-life + +[EOL]: {% post_url platform/internals/stacks/2000-01-01-overview %}#lifecycle diff --git a/src/_posts/languages/java/2000-01-01-start.md b/src/_posts/languages/java/2000-01-01-start.md index 31d6496a2..b10e1452e 100644 --- a/src/_posts/languages/java/2000-01-01-start.md +++ b/src/_posts/languages/java/2000-01-01-start.md @@ -1,7 +1,7 @@ --- title: Java on Scalingo nav: Introduction -modified_at: 2026-05-26 00:00:00 +modified_at: 2026-06-22 00:00:00 tags: java index: 1 --- @@ -14,14 +14,14 @@ Java is officially supported on Scalingo The following Java versions are available: -| Java SE Version | `scalingo-22` ([EOL]) | `scalingo-24` | `scalingo-26` | -| --------------: | --------------------: | ----------------: | ----------------: | -| **`26`** | up to `26.0.1` | up to `26.0.1` | up to `26.0.1` | -| **`25 (LTS)`** | up to `25.0.3` | up to `25.0.3` | up to `25.0.3` | -| **`21 (LTS)`** | up to `21.0.11` | up to `21.0.11` | up to `21.0.11` | -| **`17 (LTS)`** | up to `17.0.19` | up to `17.0.19` | up to `17.0.19` | -| **`11 (LTS)`** | up to `11.0.31` | up to `11.0.31` | up to `11.0.31` | -| **`8 (LTS)`** | up to `1.8.0_492` | up to `1.8.0_492` | up to `1.8.0_492` | +| Java SE Version | {% scalingo 22 %} | {% scalingo 24 %} | {% scalingo 26 %} | +| --------------: | ----------------: | ----------------: | ----------------: | +| **`26`** | up to `26.0.1` | up to `26.0.1` | up to `26.0.1` | +| **`25 (LTS)`** | up to `25.0.3` | up to `25.0.3` | up to `25.0.3` | +| **`21 (LTS)`** | up to `21.0.11` | up to `21.0.11` | up to `21.0.11` | +| **`17 (LTS)`** | up to `17.0.19` | up to `17.0.19` | up to `17.0.19` | +| **`11 (LTS)`** | up to `11.0.31` | up to `11.0.31` | up to `11.0.31` | +| **`8 (LTS)`** | up to `1.8.0_492` | up to `1.8.0_492` | up to `1.8.0_492` | For Java SE 8, the JDK version is numbered `1.8`. @@ -213,4 +213,4 @@ More information at [https://github.com/Scalingo/java-buildpack](https://github.com/Scalingo/java-buildpack). [java-command]: https://docs.oracle.com/en/java/javase/25/docs/specs/man/java.html -[EOL]: {% post_url platform/internals/stacks/2000-01-01-stacks %}#stack-end-of-life +[EOL]: {% post_url platform/internals/stacks/2000-01-01-overview %}#lifecycle diff --git a/src/_posts/languages/nodejs/2000-01-01-start.md b/src/_posts/languages/nodejs/2000-01-01-start.md index d9f987ac7..c1e9e8832 100644 --- a/src/_posts/languages/nodejs/2000-01-01-start.md +++ b/src/_posts/languages/nodejs/2000-01-01-start.md @@ -1,7 +1,7 @@ --- title: Node.js nav: Introduction -modified_at: 2026-06-16 12:00:00 +modified_at: 2026-06-22 12:00:00 tags: nodejs index: 1 --- @@ -20,11 +20,11 @@ The file `package.json` should be present at the root of the project. The following Node.js versions are available: -| Node.js version | `scalingo-22` ([EOL]) | `scalingo-24` | `scalingo-26` | -| --------------: | --------------------: | --------------: | --------------: | -| `v26` | up to `26.3.0` | up to `26.3.0` | up to `26.3.0` | -| `v24` (LTS) | up to `24.16.0` | up to `24.16.0` | up to `24.16.0` | -| `v22` (LTS) | up to `22.22.3` | up to `22.22.3` | up to `22.22.3` | +| Node.js version | {% scalingo 22 %} | {% scalingo 24 %} | {% scalingo 26 %} | +| --------------: | ----------------: | ----------------: | ----------------: | +| `v26` | up to `26.3.0` | up to `26.3.0` | up to `26.3.0` | +| `v24` (LTS) | up to `24.16.0` | up to `24.16.0` | up to `24.16.0` | +| `v22` (LTS) | up to `22.22.3` | up to `22.22.3` | up to `22.22.3` | {% include scalingo_22_deprecation_note.md %} @@ -467,4 +467,4 @@ web: node server.js ``` [nodejs-memory-guide]: https://nodejs.org/learn/diagnostics/memory/understanding-and-tuning-memory -[EOL]: {% post_url platform/internals/stacks/2000-01-01-stacks %}#stack-end-of-life +[EOL]: {% post_url platform/internals/stacks/2000-01-01-overview %}#lifecycle diff --git a/src/_posts/languages/php/2000-01-01-dependencies.md b/src/_posts/languages/php/2000-01-01-dependencies.md index 233e78ba0..7c0ea7857 100644 --- a/src/_posts/languages/php/2000-01-01-dependencies.md +++ b/src/_posts/languages/php/2000-01-01-dependencies.md @@ -115,4 +115,4 @@ development dependencies installed (e.g. to debug your app). In addition to the `--[no-]dev` flag, the platform always runs `composer install` with the `--prefer-dist` and `--optimize-autoloader` flags. -[EOL]: {% post_url platform/internals/stacks/2000-01-01-stacks %}#stack-end-of-life +[EOL]: {% post_url platform/internals/stacks/2000-01-01-overview %}#lifecycle diff --git a/src/_posts/languages/php/2000-01-01-start.md b/src/_posts/languages/php/2000-01-01-start.md index 0cde2367e..7551ada93 100644 --- a/src/_posts/languages/php/2000-01-01-start.md +++ b/src/_posts/languages/php/2000-01-01-start.md @@ -37,12 +37,12 @@ parameters like `upload_max_filesize` or `post_max_size`. The following PHP versions are available: -| PHP Version | `scalingo-22` ([EOL]) | `scalingo-24` | `scalingo-26` | -| ----------: | --------------------: | -------------: | -------------: | -| **`8.5`** | up to `8.5.7` | up to `8.5.7` | up to `8.5.7` | -| **`8.4`** | up to `8.4.22` | up to `8.4.22` | up to `8.4.22` | -| **`8.3`** | up to `8.3.31` | up to `8.3.31` | up to `8.3.31` | -| **`8.2`** | up to `8.2.31` | up to `8.2.31` | up to `8.2.31` | +| PHP Version | {% scalingo 22 %} | {% scalingo 24 %} | {% scalingo 26 %} | +| ----------: | ----------------: | ----------------: | ----------------: | +| **`8.5`** | up to `8.5.7` | up to `8.5.7` | up to `8.5.7` | +| **`8.4`** | up to `8.4.22` | up to `8.4.22` | up to `8.4.22` | +| **`8.3`** | up to `8.3.31` | up to `8.3.31` | up to `8.3.31` | +| **`8.2`** | up to `8.2.31` | up to `8.2.31` | up to `8.2.31` | {% include scalingo_22_deprecation_note.md %} @@ -453,5 +453,3 @@ location / { try_files $uri $uri/ /index.php?$args; } ``` - -[EOL]: {% post_url platform/internals/stacks/2000-01-01-stacks %}#stack-end-of-life diff --git a/src/_posts/languages/python/2000-01-01-start.md b/src/_posts/languages/python/2000-01-01-start.md index c8cb6e52c..915125cac 100644 --- a/src/_posts/languages/python/2000-01-01-start.md +++ b/src/_posts/languages/python/2000-01-01-start.md @@ -1,7 +1,7 @@ --- title: Python nav: Introduction -modified_at: 2026-06-10 12:00:00 +modified_at: 2026-06-22 12:00:00 tags: python index: 1 --- @@ -21,12 +21,12 @@ your app. The following versions of Python are available: -| Python Version | `scalingo-22` ([EOL]) | `scalingo-24` | `scalingo-26` | -| -------------- | -------------------: | --------------: | --------------: | -| **`3.14`** | up to `3.14.5` | up to `3.14.5` | up to `3.14.5` | -| **`3.13`** | up to `3.13.13` | up to `3.13.13` | up to `3.13.13` | -| **`3.12`** | up to `3.12.13` | up to `3.12.13` | up to `3.12.13` | -| **`3.11`** | up to `3.11.15` | up to `3.11.15` | up to `3.11.15` | +| Python Version | {% scalingo 22 %} | {% scalingo 24 %} | {% scalingo 26 %} | +| -------------- | ---------------: | ----------------: | ----------------: | +| **`3.14`** | up to `3.14.5` | up to `3.14.5` | up to `3.14.5` | +| **`3.13`** | up to `3.13.13` | up to `3.13.13` | up to `3.13.13` | +| **`3.12`** | up to `3.12.13` | up to `3.12.13` | up to `3.12.13` | +| **`3.11`** | up to `3.11.15` | up to `3.11.15` | up to `3.11.15` | {% include scalingo_22_deprecation_note.md %} @@ -131,4 +131,4 @@ For further details about this calculation, please see the [WEB_CONCURRENCY.sh]( To override the automatically defined value, set the `WEB_CONCURRENCY` environment variable to the desired value. -[EOL]: {% post_url platform/internals/stacks/2000-01-01-stacks %}#stack-end-of-life +[EOL]: {% post_url platform/internals/stacks/2000-01-01-overview %}#lifecycle diff --git a/src/_posts/languages/ruby/2000-01-01-start.md b/src/_posts/languages/ruby/2000-01-01-start.md index 606768625..a8f5328ba 100644 --- a/src/_posts/languages/ruby/2000-01-01-start.md +++ b/src/_posts/languages/ruby/2000-01-01-start.md @@ -81,11 +81,11 @@ $ git push scalingo master ### Availability -| Ruby Version | `scalingo-22` ([EOL]) | `scalingo-24` | `scalingo-26` | -| -----------: | --------------------: | -------------: | -------------: | -| **`4.0`** | up to `4.0.5` | up to `4.0.5` | up to `4.0.5` | -| **`3.4`** | up to `3.4.9` | up to `3.4.9` | up to `3.4.9` | -| **`3.3`** | up to `3.3.11` | up to `3.3.11` | up to `3.3.11` | +| Ruby Version | {% scalingo 22 %} | {% scalingo 24 %} | {% scalingo 26 %} | +| -----------: | ----------------: | ----------------: | ----------------: | +| **`4.0`** | up to `4.0.5` | up to `4.0.5` | up to `4.0.5` | +| **`3.4`** | up to `3.4.9` | up to `3.4.9` | up to `3.4.9` | +| **`3.3`** | up to `3.3.11` | up to `3.3.11` | up to `3.3.11` | {% include scalingo_22_deprecation_note.md %} @@ -176,4 +176,4 @@ environment variable to the desired value. [web_concurrency_file]: https://github.com/Scalingo/ruby-buildpack/blob/master/lib/language_pack/ruby.rb -[EOL]: {% post_url platform/internals/stacks/2000-01-01-stacks %}#stack-end-of-life +[EOL]: {% post_url platform/internals/stacks/2000-01-01-overview %}#lifecycle diff --git a/src/_posts/platform/app/2000-01-01-review-apps.md b/src/_posts/platform/app/2000-01-01-review-apps.md index e10250065..260b17264 100644 --- a/src/_posts/platform/app/2000-01-01-review-apps.md +++ b/src/_posts/platform/app/2000-01-01-review-apps.md @@ -67,7 +67,7 @@ application is a child application. Child applications clone some information from the parent app: * the [container formation]({% post_url platform/app/scaling/2000-01-01-scaling %}) -* the [stack]({% post_url platform/internals/stacks/2000-01-01-stacks %}) +* the [stack]({% post_url platform/internals/stacks/2000-01-01-overview %}) * the [environment variables]({% post_url platform/app/2000-01-01-environment %}) * the databases and addons: including version and plans (can be overridden in `scalingo.json`), but _excluding_ the content of the databases. * the collaborators diff --git a/src/_posts/platform/app/2000-01-01-tailscale.md b/src/_posts/platform/app/2000-01-01-tailscale.md index ba4e8a2bd..98d979a24 100644 --- a/src/_posts/platform/app/2000-01-01-tailscale.md +++ b/src/_posts/platform/app/2000-01-01-tailscale.md @@ -34,9 +34,9 @@ tailscale :repo:deb [trusted=yes] https://pkgs.tailscale.com/stable/ubuntu [dist] main ``` -Replace `[dist]` with the codename of the [stack]({% post_url platform/internals/stacks/2000-01-01-stacks %}) you are using: -* `resolute` for `scalingo-26` -* `noble` for `scalingo-24` (default) +Replace `[dist]` with the codename of the [stack] you are using: +* `resolute` for `scalingo-26` (default) +* `noble` for `scalingo-24` * `jammy` for `scalingo-22` ## Step 3: Set TAILSCALE_AUTHKEY Environment Variable @@ -99,3 +99,6 @@ You can verify the connection by running a [one-off container]({% post_url platf {% note %} The `ALL_PROXY` environment variable directs software that respects it (like `curl`) to use the local SOCKS5 proxy provided by Tailscale. {% endnote %} + + +[stack]: {% post_url platform/internals/stacks/2000-01-01-overview %} diff --git a/src/_posts/platform/deployment/2000-01-01-deploy-java-jar-war.md b/src/_posts/platform/deployment/2000-01-01-deploy-java-jar-war.md index 1e7d91c74..bbe27fc77 100644 --- a/src/_posts/platform/deployment/2000-01-01-deploy-java-jar-war.md +++ b/src/_posts/platform/deployment/2000-01-01-deploy-java-jar-war.md @@ -119,4 +119,4 @@ Even though we still support this version, we strongly advise against using the please consider migrating to a more recent version. {% endnote %} -[EOL]: {% post_url platform/internals/stacks/2000-01-01-stacks %}#stack-end-of-life +[EOL]: {% post_url platform/internals/stacks/2000-01-01-overview %}#lifecycle diff --git a/src/_posts/platform/deployment/buildpacks/2000-01-01-apt.md b/src/_posts/platform/deployment/buildpacks/2000-01-01-apt.md index 33c4524d9..17bffb28c 100644 --- a/src/_posts/platform/deployment/buildpacks/2000-01-01-apt.md +++ b/src/_posts/platform/deployment/buildpacks/2000-01-01-apt.md @@ -14,7 +14,7 @@ installing additional packages using the `apt` package manager. Details about the default environment can be found on the following page: [Scalingo Builder - Our base Docker image]({% post_url -platform/internals/stacks/2000-01-01-stacks %}) +platform/internals/stacks/2000-01-01-overview %}) ## Set up this buildpack for your application @@ -67,7 +67,7 @@ http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.1/wkhtmltox-0.12.1_lin {% warning %} You have to make sure the chosen packages are compatible with the stack base distribution. -See [our documentation page]({% post_url platform/internals/stacks/2000-01-01-stacks %}) +See [our documentation page]({% post_url platform/internals/stacks/2000-01-01-overview %}) to see how to change your stack and see which is the default base distribution. {% endwarning %} diff --git a/src/_posts/platform/deployment/buildpacks/2000-01-01-jemalloc.md b/src/_posts/platform/deployment/buildpacks/2000-01-01-jemalloc.md index 25e89115f..ce4662c5d 100644 --- a/src/_posts/platform/deployment/buildpacks/2000-01-01-jemalloc.md +++ b/src/_posts/platform/deployment/buildpacks/2000-01-01-jemalloc.md @@ -75,4 +75,4 @@ variable, like so: scalingo env-set JEMALLOC_VERSION=4.5.0 ``` -[EOL]: {% post_url platform/internals/stacks/2000-01-01-stacks %}#stack-end-of-life +[EOL]: {% post_url platform/internals/stacks/2000-01-01-overview %}#lifecycle diff --git a/src/_posts/platform/deployment/buildpacks/2000-01-01-locale.md b/src/_posts/platform/deployment/buildpacks/2000-01-01-locale.md index b56ed1afe..3dcbeae46 100644 --- a/src/_posts/platform/deployment/buildpacks/2000-01-01-locale.md +++ b/src/_posts/platform/deployment/buildpacks/2000-01-01-locale.md @@ -13,7 +13,7 @@ at installing additional language packs. Details about the default environment can be found on the following page: [Scalingo Builder - Our base Docker image]({% post_url -platform/internals/stacks/2000-01-01-stacks %}) +platform/internals/stacks/2000-01-01-overview %}) ## Set up this buildpack for your application diff --git a/src/_posts/platform/internals/stacks/2000-01-01-overview.md b/src/_posts/platform/internals/stacks/2000-01-01-overview.md new file mode 100644 index 000000000..97752bded --- /dev/null +++ b/src/_posts/platform/internals/stacks/2000-01-01-overview.md @@ -0,0 +1,263 @@ +--- +title: Stacks +nav: Overview +modified_at: 2026-06-22 +index: 1 +--- + +Applications on Scalingo run inside Linux containers. These containers are +built from a base image maintained by Scalingo, itself derived from an +**official Ubuntu Long-Term Support** Docker image. + +This base image is referred to as a ***stack***. + +Scalingo currently supports three stacks: + +| Stack | Base Distribution | Supported Through | Status | +| ----------------- | ----------------: | ----------------: | ---------------------------------------------------: | +| **[scalingo-26]** | Ubuntu 26.04 LTS | May 2031 | Supported | +| **[scalingo-24]** | Ubuntu 24.04 LTS | May 2029 | Supported | +| **[scalingo-22]** | Ubuntu 22.04 LTS | May 2027 | Deprecated | +| scalingo-20 | Ubuntu 20.04 LTS | April 2025 | Discontinued | +| scalingo-18 | Ubuntu 18.04 LTS | April 2023 | Discontinued | +| scalingo-14 | Ubuntu 14.04 LTS | December 2019 | Discontinued | + +The default stack for all newly created applications is {% scalingo 26 %}. + +{% note %} +We recommend to always prioritize deployment of your applications on the latest +stack available (currently {% scalingo 26 %}). +{% endnote %} + +## Understanding How the Stack is Built {#content} + +Since the stacks are shared across all applications hosted on the platform, +they are designed to remain **generic** and **unspecialized**. +{: #para-one} + +We complete the Ubuntu LTS base image with different libraries and softwares +commonly used in build processes or used by human when running [one-off] +containers: + +- Build essentials utility (GCC, make, autotools, ...) +- curl, git, telnet, ssh, ssh-client, openssl, dnsutils, sqlite, rsync, jq, ... +- Ruby, Perl, Python +- ImageMagick +- PostgreSQL and MySQL related tools and libraries + +Please refer to the dedicated page of each stack for an exhaustive list of +packages available. + + +## Understanding How the Stack is Used {#operation} + +Each time an application is built, a new specific container image is generated +for your app. This image consists of the stack, plus an additional layer +containing the application. This additional layer is built by the platform, +using [buildpacks]. A buildpack typically transforms (e.g. compiles, installs +dependencies, ...) the application's source code into an executable *artifact*. + +Once the build process succeeds, the resulting image is pushed to our private +registry, where it is later retrieved by our orchestrator to run the +application within our infrastructure. + +Using a shared base image (i.e. the stack) provides a significant performance +advantage: once it has been downloaded onto a hosting node, it can be reused +for all applications relying on the same stack. Although this approach slightly +increases disk usage due to the inclusion of additional tools and libraries in +the image (see above), starting a new container only requires fetching the +application-specific layer, thus reducing both startup time and network +transfers. + + +## Understanding the Stack Lifecycle {#lifecycle} + +Because the stack is built on Ubuntu Long-Term Support releases, its +availability, maintenance, and retirement follow as much as possible the +support milestones defined by Ubuntu. This approach ensures that the stack +benefits from the stability, security updates, and predictable release cadence +of the upstream Ubuntu LTS ecosystem. We also hope it provides a clear timeline +for upgrades and support. + +- A stack lifecycle begins when a new Ubuntu LTS release comes out. We create a + new stack from this Ubuntu release, thoroughly test it against our official + buildpacks, and release it as soon as everything looks good. From this point, + the stack's status is **Supported**. + {: #stack-supported} + + During this period, the stack receives regular updates. Packages included in + the stack are updated approximately every quarter, and new packages may be + introduced to provide additional features. If a security issue affecting the + stack is identified, a new version is released as quickly as possible. + +- Roughly a year **before** support for the base distribution ends, the stack + enters its End-Of-Life (EOL) phase. Its status changes from Supported to + **Deprecated**. + {: #stack-deprecated} + + During this phase, the stack still remains actively supported, and keeps + receiving regular updates. Yet, users are strongly encouraged to move their + applications to a more recent stack to avoid any future unforeseen + consequences. + +- When the official support for the base distribution ends, the stack status + switches to **Discontinued**, meaning + it no longer receives updates, nor security fixes. + {: #stack-discontinued} + + Existing applications running on a Discontinued stack keep running. However, + the stack is no longer available on the platform. Consequently, all new + deployments of the application, including Review Apps, are done using the new + default stack. + + + +| Status | Meaning | +| ------------ | ----------------------------------------------------------------------------------------- | +| Supported | The stack receives regular updates and can be used for new deployments. | +| Deprecated | The stack is still supported. Users are encouraged to migrate to a newer supported stack. | +| Discontinued | The stack no longer receives updates and cannot be used for new deployments. | + + +## Viewing Your App's Stack Name + +### Using the Command Line + +1. Make sure you have correctly [setup the Scalingo command line tool][cli] +2. From the command line, list the information for the application: + ```shell + scalingo --app my-app apps-info + ``` + + The output should look like this: + ```shell + +----------------+-------------+ + | SETTINGS | VALUE | + +----------------+-------------+ + [...] + | Stack | scalingo-24 | + [...] + +----------------+-------------+ + ``` + +## Migrating to a Different Stack + +### Planning the Migration + +{% note %} +Updating the stack can have a significant impact on your application, and may +even require code changes. Consequently, we warmly recommend to test your +application before migrating your production instances. +{% endnote %} + +- If you have a staging application hosted on Scalingo, [follow the + instructions below](#migrating) to migrate to a more recent stack. Conduct + your tests and deploy your fixes until your validation process is all green + lights. + +- Another way to test the stack upgrade without affecting your currently + running application consists in creating a [review app]. Add a + `scalingo.json` file to your project to specify the stack used to deploy the + review app, like so: + + ```json + { + "stack": "" + } + ``` + + Make sure your review app deploys successfully and works flawlessly. + +- As always, make sure you have a valid, tested backup before you actually + migrate your production applications. Also prioritize low-traffic hours to + minimize a potential negative impact. + +- Once your application is ready for the new stack, migrate to the desired + stack and redeploy using a [method described hereafter](#migrating). + +### Migrating + +{% note %} +A stack change only takes effect after the application is redeployed (i.e. +restarting it is **not** enough). +{% endnote %} + +#### Using the Dashboard + +1. From your web browser, open your [dashboard] +2. Open the target application +3. Click the **Settings** tab +4. In the **Settings** submenu, select **General** +5. In the **Scalingo Stack** section, click **Change Scalingo Stack** +6. Select the new stack +7. Click **Change** +8. Trigger a new deployment to apply the stack change immediately +9. Run your functional tests to validate compatibility with the new stack + +#### Using the Command Line + +1. Make sure you have correctly [setup the Scalingo command line tool][cli] +2. From the command line, list available stacks: + ```shell + scalingo stacks + ``` + + The output should look like this: + ```shell + ┌─────────────────────────────────────────┬─────────────────────┬──────────────────────────────────────────────────┬───────────┐ + │ ID │ NAME │ DESCRIPTION │ DEFAULT ? │ + ├─────────────────────────────────────────┼─────────────────────┼──────────────────────────────────────────────────┼───────────┤ + │ st-460d3f35-573b-40da-9316-b8f7e737f416 │ scalingo-26 │ Scalingo Stack based on Ubuntu 26.04 LTS │ Yes │ + │ st-e063df00-0cef-4950-bdc7-4d0a9f72c6b0 │ scalingo-24 │ Scalingo Stack based on Ubuntu 24.04 LTS │ No │ + │ st-7ccbf8e6-04d3-4e2c-98e3-604a4700cebc │ scalingo-22 │ Scalingo Stack based on Ubuntu 22.04 LTS │ No │ + ``` + +3. Set the stack used to run your application: + ```shell + scalingo --app my-app stacks-set + ``` + With `stack name` being the **name** of the stack you want to run. + +4. Redeploy your application: + ```shell + git commit --allow-empty -m "Upgrading to " + git push scalingo master + ``` + + +## Setting the Timezone + +The timezone configured inside our base image is **UTC±00:00**. You can set it +to a different value by setting the environment variable **`TZ`** with the +desired [timezone][timezones]: +{: #timezone} + +```shell +scalingo --app my-app env-set TZ=Europe/Paris +``` + +Our stacks are standard Docker images, and are free to download, use, or +inspect: + +```shell +docker pull scalingo/scalingo-26 +docker run --rm -it scalingo/scalingo-26:latest bash +``` + + +*[EOL]: End Of Life +*[LTS]: Long-Term Support + + +[timezones]: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List + +[dashboard]: https://dashboard.scalingo.com/ + + +[cli]: {% post_url tools/cli/2000-01-01-start %} +[buildpacks]: {% post_url platform/deployment/buildpacks/2000-01-01-intro %} +[scalingo-22]: {% post_url platform/internals/stacks/2000-01-01-scalingo-22-stack %} +[scalingo-24]: {% post_url platform/internals/stacks/2000-01-01-scalingo-24-stack %} +[scalingo-26]: {% post_url platform/internals/stacks/2000-01-01-scalingo-26-stack %} +[review app]: {% post_url platform/app/2000-01-01-review-apps %} +[one-off]: {% post_url platform/app/2000-01-01-tasks %} diff --git a/src/_posts/platform/internals/stacks/2000-01-01-scalingo-22-stack.md b/src/_posts/platform/internals/stacks/2000-01-01-scalingo-22-stack.md index 716f67bb1..23f973aa8 100644 --- a/src/_posts/platform/internals/stacks/2000-01-01-scalingo-22-stack.md +++ b/src/_posts/platform/internals/stacks/2000-01-01-scalingo-22-stack.md @@ -1,44 +1,56 @@ --- title: Scalingo-22 Stack -nav: Scalingo-22 -modified_at: 2026-06-10 00:00:00 +nav: scalingo-22 +modified_at: 2026-06-22 index: 4 --- {% warning %} -The scalingo-22 stack, based on Ubuntu 22.04 LTS, is deprecated and will be discontinued on June 1, 2027. -This date follows the end of Ubuntu 22.04 LTS standard support after May 2027, as described in the [Ubuntu releases list](https://documentation.ubuntu.com/project/release-team/list-of-releases/).\\ -From this date, Scalingo will no longer support applications running on scalingo-22, and new deployments, including Review Apps, must use [scalingo-24]({% post_url platform/internals/stacks/2000-01-01-scalingo-24-stack %}) or later. +The {% scalingo 22 %} stack is now **[deprecated][stack-lifecycle]**. It will +be [discontinued][stack-lifecycle] on June 1, 2027. + +We strongly encourage migrating to {% scalingo 24 %} or later as soon as +possible. {% endwarning %} -This article describes the scalingo-22 stack, based on Ubuntu 22.04. [What is a stack?]({% post_url platform/internals/stacks/2000-01-01-stacks %}) +The {% scalingo 22 %} [stack] is based on Ubuntu 22.04 Long-Term Support. + -## Support Period +## Lifecycle -scalingo-22 is based on Ubuntu 22.04. It will be supported through May 2027. +{% scalingo 22 %} is currently **[deprecated][stack-lifecycle]**. -## Testing and Migrating Your App +| Status | From | Through | +| ---------------------------------------------------: | ------------: | -----------: | +| Supported | May 2022 | May 2026 | +| **Deprecated** | **June 2026** | **May 2027** | +| Discontinued | June 2027 | - | -Learn how to test and [migrate your app]({% post_url platform/internals/stacks/2000-01-01-stacks %}#migrating-to-a-new-stack) to scalingo-22. ## Docker Image -This base image is a completely standard Docker image. The image is available on [Docker Hub](https://hub.docker.com/r/scalingo/scalingo-22). You can run it locally with this command: +This base image is a completely standard Docker image. The image is available +on [Docker Hub]. You can run it locally with this command: -``` +```shell docker pull scalingo/scalingo-22:latest docker run --rm -it scalingo/scalingo-22:latest bash ``` -## Ubuntu Packages +## Packages -The following table lists available packages and versions for the stack scalingo-22. +The following table lists available packages and versions for the stack +{% scalingo 22 %}. -In general, apps do not typically interact directly with this level of operating system services. Some app dependencies may, as well as apps that directly rely on the underlying operating system. The list below is provided to document the available operating system packages. - -
-{: .table } | Name | Version | | ---- | ------- | {% include scalingo_22_stack_packages.md %} -
+ + +*[LTS]: Long-Term Support + +[Docker Hub]: https://hub.docker.com/r/scalingo/scalingo-22 + +[stack]: {% post_url platform/internals/stacks/2000-01-01-overview %} +[stack-lifecycle]: {% post_url platform/internals/stacks/2000-01-01-overview %}#lifecycle + diff --git a/src/_posts/platform/internals/stacks/2000-01-01-scalingo-24-stack.md b/src/_posts/platform/internals/stacks/2000-01-01-scalingo-24-stack.md index c01ee7f8b..d78de61dd 100644 --- a/src/_posts/platform/internals/stacks/2000-01-01-scalingo-24-stack.md +++ b/src/_posts/platform/internals/stacks/2000-01-01-scalingo-24-stack.md @@ -1,42 +1,48 @@ --- title: Scalingo-24 Stack -nav: Scalingo-24 -modified_at: 2026-06-10 00:00:00 +nav: scalingo-24 +modified_at: 2026-06-22 index: 3 --- -{% note %} -scalingo-24 is the current default stack. -{% endnote %} -This article describes the scalingo-24 stack, based on Ubuntu 24.04. [What is a stack?]({% post_url platform/internals/stacks/2000-01-01-stacks %}) +The {% scalingo 24 %} [stack] is based on Ubuntu 24.04 Long-Term Support. -## Support Period -scalingo-24 is based on Ubuntu 24.04. It will be supported through May 2029. +## Lifecycle -## Testing and Migrating Your App +{% scalingo 24 %} is currently **[supported][stack-lifecycle]**. + +| Status | From | Through | +| ---------------------------------------------------: | ------------: | -----------: | +| **Supported** | **May 2025** | **May 2028** | +| Deprecated | June 2028 | May 2029 | +| Discontinued | June 2029 | - | -Learn how to test and [migrate your app]({% post_url platform/internals/stacks/2000-01-01-stacks %}#migrating-to-a-new-stack) to scalingo-24. ## Docker Image -This base image is a completely standard Docker image. The image is available on [Docker Hub](https://hub.docker.com/r/scalingo/scalingo-24). You can run it locally with this command: +This base image is a completely standard Docker image. The image is available +on [Docker Hub]. You can run it locally with this command: -``` +```shell docker pull scalingo/scalingo-24:latest docker run --rm -it scalingo/scalingo-24:latest bash ``` -## Ubuntu Packages +## Packages -The following table lists available packages and versions for the stack scalingo-24. +The following table lists available packages and versions for the stack +{% scalingo 24 %}. -In general, apps do not typically interact directly with this level of operating system services. Some app dependencies may, as well as apps that directly rely on the underlying operating system. The list below is provided to document the available operating system packages. - -
-{: .table } | Name | Version | | ---- | ------- | {% include scalingo_24_stack_packages.md %} -
+ + +*[LTS]: Long-Term Support + +[Docker Hub]: https://hub.docker.com/r/scalingo/scalingo-24 + +[stack]: {% post_url platform/internals/stacks/2000-01-01-overview %} +[stack-lifecycle]: {% post_url platform/internals/stacks/2000-01-01-overview %}#lifecycle diff --git a/src/_posts/platform/internals/stacks/2000-01-01-scalingo-26-stack.md b/src/_posts/platform/internals/stacks/2000-01-01-scalingo-26-stack.md index 2d20fbfa7..8ac6d1222 100644 --- a/src/_posts/platform/internals/stacks/2000-01-01-scalingo-26-stack.md +++ b/src/_posts/platform/internals/stacks/2000-01-01-scalingo-26-stack.md @@ -1,38 +1,49 @@ --- title: Scalingo-26 Stack -nav: Scalingo-26 -modified_at: 2026-05-26 00:00:00 +nav: scalingo-26 +modified_at: 2026-06-22 index: 2 --- -This article describes the scalingo-26 stack, based on Ubuntu 26.04. [What is a stack?]({% post_url platform/internals/stacks/2000-01-01-stacks %}) +The {% scalingo 26 %} [stack] is based on Ubuntu 26.04 Long-Term Support. -## Support Period +It's currently the default stack when deploying applications on Scalingo. -scalingo-26 is based on Ubuntu 26.04. It will be supported through May 2031. -## Testing and Migrating Your App +## Lifecycle + +{% scalingo 26 %} is currently **[supported][stack-lifecycle]**. + +| Status | From | Through | +| ---------------------------------------------------: | ------------: | -----------: | +| **Supported** | **May 2026** | **May 2031** | +| Deprecated | June 2031 | May 2032 | +| Discontinued | June 2032 | - | -Learn how to test and [migrate your app]({% post_url platform/internals/stacks/2000-01-01-stacks %}#migrating-to-a-new-stack) to scalingo-26. ## Docker Image -This base image is a completely standard Docker image. The image is available on [Docker Hub](https://hub.docker.com/r/scalingo/scalingo-26). You can run it locally with this command: +This base image is a completely standard Docker image. The image is available +on [Docker Hub]. You can run it locally with this command: -``` +```shell docker pull scalingo/scalingo-26:latest docker run --rm -it scalingo/scalingo-26:latest bash ``` -## Ubuntu Packages - -The following table lists available packages and versions for the stack scalingo-26. +## Packages -In general, apps do not typically interact directly with this level of operating system services. Some app dependencies may, as well as apps that directly rely on the underlying operating system. The list below is provided to document the available operating system packages. +The following table lists available packages and versions for the stack +{% scalingo 26 %}. -
-{: .table } | Name | Version | | ---- | ------- | {% include scalingo_26_stack_packages.md %} -
+ + +*[LTS]: Long-Term Support + +[Docker Hub]: https://hub.docker.com/r/scalingo/scalingo-26 + +[stack]: {% post_url platform/internals/stacks/2000-01-01-overview %} +[stack-lifecycle]: {% post_url platform/internals/stacks/2000-01-01-overview %}#lifecycle diff --git a/src/_posts/platform/internals/stacks/2000-01-01-stacks.md b/src/_posts/platform/internals/stacks/2000-01-01-stacks.md deleted file mode 100644 index e8b77326d..000000000 --- a/src/_posts/platform/internals/stacks/2000-01-01-stacks.md +++ /dev/null @@ -1,193 +0,0 @@ ---- -title: Stacks -nav: Stacks -modified_at: 2026-05-28 00:00:00 -index: 1 ---- - -Applications on Scalingo run inside Linux containers. These containers are built on a base image maintained by Scalingo, which itself is derived from the official Docker image of a well-known Linux distribution. - -Scalingo currently supports two stacks based on Ubuntu LTS. - -| Name | Base Distribution | Supported Until | Status | -|-----------------------|-------------------|-----------------|--------------| -| [scalingo-26] | Ubuntu 26.04 | May 2031 | Supported | -| [scalingo-24] | Ubuntu 24.04 | May 2029 | Supported | -| [scalingo-22] ([EOL]) | Ubuntu 22.04 | May 2027 | Deprecated | -| scalingo-20 | Ubuntu 20.04 | April 2025 | Discontinued | -| scalingo-18 | Ubuntu 18.04 | April 2023 | Discontinued | -| scalingo-14 | Ubuntu 14.04 | December 2019 | Discontinued | - -All Scalingo-supported buildpacks are compatible with supported stacks. - -The default stack for all newly created applications is `scalingo-24`. - -{% note %} -We recommend prioritizing deployment of your applications on the latest stack to receive stability -and security updates. -{% endnote %} - -These base images are used for all applications hosted on the -platform, as a result, it is a *generic image* which is *unspecialized*. -That's why they are based on a stable **Ubuntu LTS** environment. - -## Viewing Stack Used by your Application - -The stack used by your application is available using Scalingo [CLI]({% -post_url tools/cli/2000-01-01-start %}): - -```shell -scalingo --app my-app apps-info -+----------------+-------------+ -| SETTINGS | VALUE | -+----------------+-------------+ -[...] -| Stack | scalingo-26 | -[...] -+----------------+-------------+ -``` - -## Migrating to a New Stack - -Updating the stack can have a significant impact on your application. Consequently, we warmly recommend testing your applications in a staging environment before making changes in production. - -{% note %} -A stack change only takes effect after the application is redeployed. -{% endnote %} - -### Using the Dashboard - -1. From your web browser, open your [dashboard] -2. Open the target application -3. Click the **Settings** tab -4. In the **Settings** submenu, select **General** -5. In the **Scalingo Stack** section, click **Change Scalingo Stack** -6. Select `scalingo-26` -7. Click **Change** -8. Trigger a new deployment to apply the stack change immediately -9. Run your functional tests to validate compatibility with the new stack - -### Using the CLI - -You can migrate to the latest stack with: - -```shell -scalingo --app my-app stacks-set scalingo-26 -``` - -Then redeploy your application: - -```shell -git commit --allow-empty --message="Upgrading to scalingo-26" -git push scalingo master -``` - -You can view the list of all available stacks with the [CLI]({% post_url -tools/cli/2000-01-01-start %}): - -```shell -scalingo stacks -``` - -### Using a Staging Application - -It is advisable to first test this change on a staging application. You may -already have such staging application hosted on Scalingo. In such situation, the -above-mentioned migration steps can be applied to it. - -### Using a Review App - -Otherwise, a nice solution to test the stack upgrade without affecting your -currently running application is to create a [review app]({% post_url -platform/app/2000-01-01-review-apps %}) and add a `scalingo.json` file -containing: - -```json -{ - "stack": "scalingo-26" -} -``` - -Make sure your review app deploys successfully and works flawlessly. Once your -application is ready for the new stack, migrate to the desired stack and redeploy -with the method described above. - -## The Build Process - -Each time any user deploys a new release of their applications, a new container -image is created. A new layer is added on top of the base -image. It's built using the buildpack and contains the application code and all -its dependencies. When the build is done, the resulting image is sent to -our private repository and our orchestrator will use it subsequently to actually -run the application in our infrastructure. - -The **maximum build time is 30 minutes**. After that duration the build will be cancelled by the platform. - -## Installed Libraries - -We've installed different libraries and softwares which are commonly used in -the build process or used by human when running [one-off -container]({% post_url platform/app/2000-01-01-tasks %}). - -You'll find: - -* Build essentials utility (GCC, make, autotools, ...) -* Curl, git, telnet, ssh, ssh-client, openssl, dnsutils, sqlite -* Node.js, Ruby, Perl, Python, Java -* ImageMagick - -The advantage of using a single base image is that **once it has been -fetched on a hosting node, we're done**. Even if we sacrifice a few megabytes -of disk space, when a new container starts, only the application layer is -fetched and nothing else. - -Of course you can inspect this base image: it's a completely standard Docker -image after all! You can use something like: - -```console -$ docker pull scalingo/scalingo-26 -$ docker run --rm -it scalingo/scalingo-26:latest bash -``` - -## Timezone - -The timezone configured inside our base image is UTC±00:00. You can set it to a -different value by setting the environment variable `TZ` with the desired -timezone: - -``` -scalingo --app my-app env-set TZ=Europe/Paris -``` - -A list of existing timezones is available -[here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). - - -## Stack End-Of-Life - -EOL stands for End-of-Life and describes the retirement process of a stack. -During this process, a stack remains supported until its documented -end-of-support date. After that date, customers must migrate to a newer -supported stack. - -A stack usually enters the end-of-life process about one year before its -end-of-support date. Scalingo informs customers using a stack scheduled for -end-of-life when this process starts. - -| Status | Meaning | -| ------ | ------- | -| Supported | The stack receives updates and can be used for new deployments. | -| Deprecated | The stack is still supported, but customers should plan a migration to a newer supported stack. | -| Discontinued | The stack no longer receives updates and cannot be used for new deployments. | - -Applications already deployed on a deprecated stack continue to run, even after -the stack is discontinued. However, once the stack is discontinued, -all new deployments, including Review Apps, must use a newer supported stack. - -[scalingo-22]: {% post_url platform/internals/stacks/2000-01-01-scalingo-22-stack %} -[scalingo-24]: {% post_url platform/internals/stacks/2000-01-01-scalingo-24-stack %} -[scalingo-26]: {% post_url platform/internals/stacks/2000-01-01-scalingo-26-stack %} - -[EOL]: #stack-end-of-life - -[dashboard]: https://dashboard.scalingo.com/ diff --git a/src/changelog/base_image/_posts/2023-07-06-scalingo-20-v6-scalingo-22-v3.md b/src/changelog/base_image/_posts/2023-07-06-scalingo-20-v6-scalingo-22-v3.md index 0c184bc2c..26d871617 100644 --- a/src/changelog/base_image/_posts/2023-07-06-scalingo-20-v6-scalingo-22-v3.md +++ b/src/changelog/base_image/_posts/2023-07-06-scalingo-20-v6-scalingo-22-v3.md @@ -10,7 +10,7 @@ This new versions contain the following changes: For a comprehensive list of packages installed in each stack, please refer to our documentation: -* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-stacks %}) +* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-overview %}) * [scalingo-22]({% post_url platform/internals/stacks/2000-01-01-scalingo-22-stack %}#ubuntu-packages) As always, the Docker images are available on Docker Hub: diff --git a/src/changelog/base_image/_posts/2023-10-17-scalingo-20-v8-scalingo-22-v6.md b/src/changelog/base_image/_posts/2023-10-17-scalingo-20-v8-scalingo-22-v6.md index fe76a9271..64bdef602 100644 --- a/src/changelog/base_image/_posts/2023-10-17-scalingo-20-v8-scalingo-22-v6.md +++ b/src/changelog/base_image/_posts/2023-10-17-scalingo-20-v8-scalingo-22-v6.md @@ -11,7 +11,7 @@ This new versions contain the following changes: For a comprehensive list of packages installed in each stack, please refer to our documentation: -* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-stacks %}) +* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-overview %}) * [scalingo-22]({% post_url platform/internals/stacks/2000-01-01-scalingo-22-stack %}#ubuntu-packages) As always, the Docker images are available on Docker Hub: diff --git a/src/changelog/base_image/_posts/2023-11-06-scalingo-20-v9.md b/src/changelog/base_image/_posts/2023-11-06-scalingo-20-v9.md index d53ceb486..ce7a77f3e 100644 --- a/src/changelog/base_image/_posts/2023-11-06-scalingo-20-v9.md +++ b/src/changelog/base_image/_posts/2023-11-06-scalingo-20-v9.md @@ -10,7 +10,7 @@ This new versions contain the following changes: For a comprehensive list of packages installed in the scalingo-20 stack, please refer to our documentation: -* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-stacks %}) +* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-overview %}) As always, the Docker images are available on Docker Hub: diff --git a/src/changelog/base_image/_posts/2024-01-02-scalingo-20-v10-scalingo-22-v7.md b/src/changelog/base_image/_posts/2024-01-02-scalingo-20-v10-scalingo-22-v7.md index 5978cba33..5f5c2a7d0 100644 --- a/src/changelog/base_image/_posts/2024-01-02-scalingo-20-v10-scalingo-22-v7.md +++ b/src/changelog/base_image/_posts/2024-01-02-scalingo-20-v10-scalingo-22-v7.md @@ -9,7 +9,7 @@ This new versions contain the following changes: For a comprehensive list of packages installed in the different stacks, please refer to our documentation: -* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-stacks %}) +* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-overview %}) * [scalingo-22]({% post_url platform/internals/stacks/2000-01-01-scalingo-22-stack %}#ubuntu-packages) As always, the Docker images are available on Docker Hub: diff --git a/src/changelog/base_image/_posts/2024-04-25-scalingo-20-v11-scalingo-22-v8.md b/src/changelog/base_image/_posts/2024-04-25-scalingo-20-v11-scalingo-22-v8.md index c04f72e5d..e9ff64cc7 100644 --- a/src/changelog/base_image/_posts/2024-04-25-scalingo-20-v11-scalingo-22-v8.md +++ b/src/changelog/base_image/_posts/2024-04-25-scalingo-20-v11-scalingo-22-v8.md @@ -9,7 +9,7 @@ This new versions contain the following changes: For a comprehensive list of packages installed in the different stacks, please refer to our documentation: -* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-stacks %}) +* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-overview %}) * [scalingo-22]({% post_url platform/internals/stacks/2000-01-01-scalingo-22-stack %}#ubuntu-packages) As always, the Docker images are available on Docker Hub: diff --git a/src/changelog/base_image/_posts/2024-06-17-scalingo-20-v12-scalingo-22-v9.md b/src/changelog/base_image/_posts/2024-06-17-scalingo-20-v12-scalingo-22-v9.md index 764a066e5..cb7d9f49f 100644 --- a/src/changelog/base_image/_posts/2024-06-17-scalingo-20-v12-scalingo-22-v9.md +++ b/src/changelog/base_image/_posts/2024-06-17-scalingo-20-v12-scalingo-22-v9.md @@ -12,7 +12,7 @@ This new versions contain the following changes: For a comprehensive list of packages installed in the different stacks, please refer to our documentation: -* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-stacks %}) +* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-overview %}) * [scalingo-22]({% post_url platform/internals/stacks/2000-01-01-scalingo-22-stack %}#ubuntu-packages) As always, the Docker images are available on Docker Hub: diff --git a/src/changelog/base_image/_posts/2024-06-18-scalingo-20-v13-scalingo-22-v10.md b/src/changelog/base_image/_posts/2024-06-18-scalingo-20-v13-scalingo-22-v10.md index abd418776..3b302065b 100644 --- a/src/changelog/base_image/_posts/2024-06-18-scalingo-20-v13-scalingo-22-v10.md +++ b/src/changelog/base_image/_posts/2024-06-18-scalingo-20-v13-scalingo-22-v10.md @@ -10,7 +10,7 @@ This new versions contain the following changes: For a comprehensive list of packages installed in the different stacks, please refer to our documentation: -* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-stacks %}) +* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-overview %}) * [scalingo-22]({% post_url platform/internals/stacks/2000-01-01-scalingo-22-stack %}#ubuntu-packages) As always, the Docker images are available on Docker Hub: diff --git a/src/changelog/base_image/_posts/2024-10-23-scalingo-20-v14-scalingo-22-v11.md b/src/changelog/base_image/_posts/2024-10-23-scalingo-20-v14-scalingo-22-v11.md index 93a03c5ac..00694fcab 100644 --- a/src/changelog/base_image/_posts/2024-10-23-scalingo-20-v14-scalingo-22-v11.md +++ b/src/changelog/base_image/_posts/2024-10-23-scalingo-20-v14-scalingo-22-v11.md @@ -9,7 +9,7 @@ This new versions contain the following changes: For a comprehensive list of packages installed in the different stacks, please refer to our documentation: -* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-stacks %}) +* [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-overview %}) * [scalingo-22]({% post_url platform/internals/stacks/2000-01-01-scalingo-22-stack %}#ubuntu-packages) As always, the Docker images are available on Docker Hub: diff --git a/src/changelog/base_image/_posts/2025-02-07-scalingo-20-deprecation-plan.md b/src/changelog/base_image/_posts/2025-02-07-scalingo-20-deprecation-plan.md index 9b7175bbe..c5ad0eba7 100644 --- a/src/changelog/base_image/_posts/2025-02-07-scalingo-20-deprecation-plan.md +++ b/src/changelog/base_image/_posts/2025-02-07-scalingo-20-deprecation-plan.md @@ -3,7 +3,7 @@ modified_at: 2025-02-07 14:00:00 title: 'Deprecation Plan for scalingo-20' --- -The [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-stacks %}) stack, based on the Ubuntu 20.04 LTS operating system, will be deprecated in April 2025. +The [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-overview %}) stack, based on the Ubuntu 20.04 LTS operating system, will be deprecated in April 2025. Applications using scalingo-20 will continue to function after this date. However, to ensure the security, performance, and reliability of both your applications and our platform, we strongly encourage you to plan their migration to scalingo-22, based on Ubuntu 22.04 LTS, as soon as possible. @@ -23,6 +23,6 @@ Existing applications using the scalingo-20 stack will continue to function norm To ensure the security, performance, and reliability of your applications, we encourage you to migrate to scalingo-22 as soon as possible. Resources to guide you: -- [Scalingo Stacks](https://doc.scalingo.com/platform/internals/stacks/stacks) -- [Details on scalingo-22](https://doc.scalingo.com/platform/internals/stacks/scalingo-22-stack) +- [Scalingo Stacks]({% post_url platform/internals/stacks/2000-01-01-overview %}) +- [Details on scalingo-22]({% post_url platform/internals/stacks/2000-01-01-scalingo-22-stack %}) - [Overview of scalingo-22](https://scalingo.com/blog/scalingo-22-new-stack) diff --git a/src/changelog/base_image/_posts/2025-05-01-scalingo-20-deprecated.md b/src/changelog/base_image/_posts/2025-05-01-scalingo-20-deprecated.md index df5c096e3..94b38a776 100644 --- a/src/changelog/base_image/_posts/2025-05-01-scalingo-20-deprecated.md +++ b/src/changelog/base_image/_posts/2025-05-01-scalingo-20-deprecated.md @@ -3,7 +3,7 @@ modified_at: 2025-05-01 07:00:00 title: 'scalingo-20 is now deprecated' --- -The [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-stacks %}) stack, based on the Ubuntu 20.04 LTS operating system, is now deprecated. +The [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-overview %}) stack, based on the Ubuntu 20.04 LTS operating system, is now deprecated. Applications using scalingo-20 will continue to work. However, to ensure the security, performance, and reliability of both your applications and our platform, we strongly encourage you to plan their migration to scalingo-22, based on Ubuntu 22.04 LTS, as soon as possible. diff --git a/src/changelog/base_image/_posts/2025-08-05-scalingo-20-v15.md b/src/changelog/base_image/_posts/2025-08-05-scalingo-20-v15.md index 6e3e61f5e..7038944bf 100644 --- a/src/changelog/base_image/_posts/2025-08-05-scalingo-20-v15.md +++ b/src/changelog/base_image/_posts/2025-08-05-scalingo-20-v15.md @@ -12,7 +12,7 @@ This new versions contain the following changes: For a comprehensive list of packages installed in the different stacks, please refer to our documentation: -- [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-stacks %}) +- [scalingo-20]({% post_url platform/internals/stacks/2000-01-01-overview %}) The Docker images are available on Docker Hub: