Skip to content
Merged
Show file tree
Hide file tree
Changes from 13 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
41 changes: 39 additions & 2 deletions assets/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -520,9 +520,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 {
Expand Down Expand Up @@ -789,7 +792,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);
Expand Down Expand Up @@ -1233,3 +1237,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) */
}
}
}
2 changes: 1 addition & 1 deletion src/_includes/nginx_versions.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
11 changes: 9 additions & 2 deletions src/_includes/scalingo_22_deprecation_note.md
Original file line number Diff line number Diff line change
@@ -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 %}
25 changes: 25 additions & 0 deletions src/_plugins/jekyll-stack-tag.rb

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like it! It displays nicely and makes it clear the status of the mentioned stack

Original file line number Diff line number Diff line change
@@ -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")

%(<span class="stack #{css_class}" title="Current status: #{css_class.capitalize}">scalingo-#{@stack}</span>)
end
end
end

Liquid::Template.register_tag("scalingo", Jekyll::StackTag)
20 changes: 12 additions & 8 deletions src/_posts/addons/scalingo-openvpn/2000-01-01-start.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Scalingo OpenVPN Addon
nav: Introduction
modified_at: 2026-05-26 00:00:00
modified_at: 2026-08-20 00:00:00
tags: vpn addon OpenVPN
---

Expand Down Expand Up @@ -138,14 +138,18 @@ everything you might need to configure the OpenVPN client and server.

### What version of the OpenVPN client is available?

It depends on the stack:
It depends on the [stack]:

* `scalingo-22`: [2.5.x](https://packages.ubuntu.com/jammy/amd64/openvpn)
* `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 %})_
* {% scalingo 22 %}: [2.5.x](https://packages.ubuntu.com/jammy/amd64/openvpn)
* {% scalingo 24 %}: [2.6.x](https://packages.ubuntu.com/noble/amd64/openvpn)
* {% scalingo 26 %}: [2.7.x](https://packages.ubuntu.com/resolute/amd64/openvpn)

### I would like to configure the DNS with the `dhcp-option` configuration, is it possible?

The use of the `dhcp-option` is not possible on Scalingo. It is mandatory to use Scalingo DNS, for instance to resolve databases domain name. A solution to circumvent this limitation is to create a public domain name which resolves to a private IP address.
The use of the `dhcp-option` is not possible on Scalingo. It is mandatory to
use Scalingo DNS, for instance to resolve databases domain name. A solution to
circumvent this limitation is to create a public domain name which resolves to
a private IP address.


[stack]: {% post_url platform/internals/stacks/2000-01-01-overview %}
12 changes: 6 additions & 6 deletions src/_posts/languages/go/2000-01-01-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ 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.6` | up to `1.26.6` | up to `1.26.6` |
| **`1.25`** | up to `1.25.13` | up to `1.25.13` | up to `1.25.13` |
| Go Version | {% scalingo 22 %} | {% scalingo 24 %} | {% scalingo 26 %} |
| ---------: | ----------------: | ----------------: | ----------------: |
| **`1.26`** | up to `1.26.6` | up to `1.26.6` | up to `1.26.6` |
| **`1.25`** | up to `1.25.13` | up to `1.25.13` | up to `1.25.13` |

The default Go version on all stacks is the latest `go1.25` version.

Expand Down Expand Up @@ -87,5 +87,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
22 changes: 11 additions & 11 deletions src/_posts/languages/java/2000-01-01-start.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Java on Scalingo
nav: Introduction
modified_at: 2026-07-31 00:00:00
modified_at: 2026-08-20 00:00:00
tags: java
index: 1
---
Expand All @@ -14,22 +14,22 @@ 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.2` | up to `26.0.2` | up to `26.0.2` |
| **`25 (LTS)`** | up to `25.0.4` | up to `25.0.4` | up to `25.0.4` |
| **`21 (LTS)`** | up to `21.0.12` | up to `21.0.12` | up to `21.0.12` |
| **`17 (LTS)`** | up to `17.0.20` | up to `17.0.20` | up to `17.0.20` |
| **`11 (LTS)`** | up to `11.0.32` | up to `11.0.32` | up to `11.0.32` |
| **`8 (LTS)`** | up to `1.8.0_502` | up to `1.8.0_502` | up to `1.8.0_502` |
| Java SE Version | {% scalingo 22 %} | {% scalingo 24 %} | {% scalingo 26 %} |
| --------------: | ----------------: | ----------------: | ----------------: |
| **`26`** | up to `26.0.2` | up to `26.0.2` | up to `26.0.2` |
| **`25 (LTS)`** | up to `25.0.4` | up to `25.0.4` | up to `25.0.4` |
| **`21 (LTS)`** | up to `21.0.12` | up to `21.0.12` | up to `21.0.12` |
| **`17 (LTS)`** | up to `17.0.20` | up to `17.0.20` | up to `17.0.20` |
| **`11 (LTS)`** | up to `11.0.32` | up to `11.0.32` | up to `11.0.32` |
| **`8 (LTS)`** | up to `1.8.0_502` | up to `1.8.0_502` | up to `1.8.0_502` |

For Java SE 8, the JDK version is numbered `1.8`.

{% include scalingo_22_deprecation_note.md %}

### Selecting a Version

The default Java version on `scalingo-22` is the latest `1.8`.
The default Java version on {% scalingo 22 %} is the latest `1.8`.
For the other stacks, the default Java version is the latest `25`.

You can, however, instruct the platform to use another version.
Expand Down Expand Up @@ -214,4 +214,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
57 changes: 36 additions & 21 deletions src/_posts/languages/nodejs/2000-01-01-puppeteer.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
---
title: Install Puppeteer
modified_at: 2026-04-09 00:00:00
modified_at: 2026-08-20 00:00:00
tags: nodejs puppeteer
---

Puppeteer is a library to headless Chrome API. In short, most things that you can do manually in the browser can be achieved with a program using Puppeteer. By default, installing Puppeteer on a Scalingo application fails because the X11 library are not included in Scalingo base image. The error message is:
Puppeteer is a library to headless Chrome API. In short, most things that you
can do manually in the browser can be achieved with a program using Puppeteer.
By default, installing Puppeteer on a Scalingo application fails because the
X11 libraries are not included in Scalingo base image. The error message is:

```
[Nest] 31 - 10/24/2019, 4:08:50 PM [ExceptionsHandler] Failed to launch chrome!
/app/node_modules/puppeteer/.local-chromium/linux-686378/chrome-linux/chrome: error while loading shared libraries: libX11-xcb.so.1: cannot open shared object file: No such file or directory
```


## Install Puppeteer on a Scalingo Application

To install Puppeteer on a Scalingo application, you need to make use of [the APT buildpack]({% post_url platform/deployment/buildpacks/2000-01-01-apt %}). Such a buildpack should be used as part of a [multi-buildpack]({% post_url platform/deployment/buildpacks/2000-01-01-multi %}).
To install Puppeteer on a Scalingo application, you need to make use of the
[apt-buildpack]. Such a buildpack should be used as part of a
[multi-buildpack].

```bash
echo 'https://github.com/Scalingo/apt-buildpack' > .buildpacks
Expand All @@ -22,30 +28,39 @@ git add .buildpacks
git commit --message="Add multi-buildpack"
```

Depending on your stack, you'll need different system dependencies in the `Aptfile` at the root of your project.

- For `scalingo-22`:
Depending on your stack, you'll need different system dependencies in the
`Aptfile` at the root of your project.

```
libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb
```
- For {% scalingo 22 %}:
```
libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb
```

- For `scalingo-24`:

```
libgtk-3-0t64 libgbm-dev libnotify-dev libnss3 libxss1 libasound2t64 libxtst6 xauth xvfb
```
- For {% scalingo 24 %}:
```
libgtk-3-0t64 libgbm-dev libnotify-dev libnss3 libxss1 libasound2t64 libxtst6 xauth xvfb
```

- For `scalingo-26`:

```
libgtk-3-0t64 libgbm-dev libnotify-dev libnss3 libxss1 libasound2t64 libxtst6 xauth xvfb
```
- For {% scalingo 26 %}:
```
libgtk-3-0t64 libgbm-dev libnotify-dev libnss3 libxss1 libasound2t64 libxtst6 xauth xvfb
```

{% note %}
These are minimal dependencies originally documented by [cypress](https://docs.cypress.io/app/get-started/install-cypress#Linux-Prerequisites). A more thorough list of system dependencies is available in the chromium [source repository](https://source.chromium.org/chromium/chromium/src/+/main:chrome/installer/linux/debian/dist_package_versions.json;l=150)
These are minimal dependencies originally documented by [cypress]. A more
thorough list of system dependencies is available in the [chromium source
repository].
{% endnote %}

{% warning %}
Puppeteer must be run with the option `--no-sandbox` on Scalingo. This option must be added with care. You should only add this option against some code you own.
Puppeteer must be run with the option `--no-sandbox` on Scalingo. This option
must be added with care. You should only add this option against some code you
own.
{% endwarning %}


[cypress]: https://docs.cypress.io/app/get-started/install-cypress#Linux-Prerequisites
[chromium source repository]: https://source.chromium.org/chromium/chromium/src/+/main:chrome/installer/linux/debian/dist_package_versions.json;l=150

[apt-buildpack]: {% post_url platform/deployment/buildpacks/2000-01-01-apt %}
[multi-buildpack]: {% post_url platform/deployment/buildpacks/2000-01-01-multi %}
12 changes: 6 additions & 6 deletions src/_posts/languages/nodejs/2000-01-01-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.7.0` | up to `26.7.0` | up to `26.7.0` |
| `v24` (LTS) | up to `24.19.0` | up to `24.19.0` | up to `24.19.0` |
| `v22` (LTS) | up to `22.23.2` | up to `22.23.2` | up to `22.23.2` |
| Node.js version | {% scalingo 22 %} | {% scalingo 24 %} | {% scalingo 26 %} |
| --------------: | ----------------: | ----------------: | ----------------: |
| `v26` | up to `26.7.0` | up to `26.7.0` | up to `26.7.0` |
| `v24` (LTS) | up to `24.19.0` | up to `24.19.0` | up to `24.19.0` |
| `v22` (LTS) | up to `22.23.2` | up to `22.23.2` | up to `22.23.2` |

{% include scalingo_22_deprecation_note.md %}

Expand Down Expand Up @@ -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
12 changes: 5 additions & 7 deletions src/_posts/languages/php/2000-01-01-dependencies.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Managing Dependencies
nav: Managing Dependencies
modified_at: 2026-07-03 12:00:00
modified_at: 2026-08-20 12:00:00
tags: php
index: 3
---
Expand Down Expand Up @@ -95,10 +95,10 @@ You can select the Composer version to install by specifying it in your

Scalingo currently supports the following versions of Composer:

| Composer | `scalingo-22` ([EOL]) | `scalingo-24` | `scalingo-26` |
| ----------: | --------------------: | -------------: | -------------: |
| `2.10` | up to `2.10.2` | up to `2.10.2` | up to `2.10.2` |
| `2.2` (LTS) | up to `2.2.28` | up to `2.2.28` | up to `2.2.28` |
| Composer | {% scalingo 22 %} | {% scalingo 24 %} | {% scalingo 26 %} |
| ----------: | ----------------: | ----------------: | ----------------: |
| `2.10` | up to `2.10.2` | up to `2.10.2` | up to `2.10.2` |
| `2.2` (LTS) | up to `2.2.28` | up to `2.2.28` | up to `2.2.28` |

{% include scalingo_22_deprecation_note.md %}

Expand All @@ -114,5 +114,3 @@ 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
14 changes: 6 additions & 8 deletions src/_posts/languages/php/2000-01-01-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.9` | up to `8.5.9` | up to `8.5.9` |
| **`8.4`** | up to `8.4.24` | up to `8.4.24` | up to `8.4.24` |
| **`8.3`** | up to `8.3.33` | up to `8.3.33` | up to `8.3.33` |
| **`8.2`** | up to `8.2.33` | up to `8.2.33` | up to `8.2.33` |
| PHP Version | {% scalingo 22 %} | {% scalingo 24 %} | {% scalingo 26 %} |
| ----------: | ----------------: | ----------------: | ----------------: |
| **`8.5`** | up to `8.5.9` | up to `8.5.9` | up to `8.5.9` |
| **`8.4`** | up to `8.4.24` | up to `8.4.24` | up to `8.4.24` |
| **`8.3`** | up to `8.3.33` | up to `8.3.33` | up to `8.3.33` |
| **`8.2`** | up to `8.2.33` | up to `8.2.33` | up to `8.2.33` |

{% include scalingo_22_deprecation_note.md %}

Expand Down Expand Up @@ -454,5 +454,3 @@ location / {
try_files $uri $uri/ /index.php?$args;
}
```

[EOL]: {% post_url platform/internals/stacks/2000-01-01-stacks %}#stack-end-of-life
Loading