Help Center

Choosing versions and upgrading a Stack

Each Stack family is installed with the language version and database version you choose. Only combinations that work together exist: if you ask for one that does not, the installer rejects it and shows the valid alternatives.

How a Stack is named

The identifier combines the language, the database and their versions:

Identifier Meaning
flask-python3.12-postgres-16 Flask with Python 3.12 and PostgreSQL 16
php8.5-mariadb PHP 8.5 with the compatible stable MariaDB
tomcat11.0-java21-mariadb Tomcat 11, Java 21 and the stable MariaDB
spring-java17-postgres-16 Spring with Java 17 and PostgreSQL 16
express-node22-mysql-8.4 Express with Node.js 22 and MySQL 8.4

If you omit a version, the installer uses the stable one: the newest the vendor still maintains. To see the available identifiers:

bash
docker-deploy-stack --list

To also see the versions the vendor no longer maintains:

bash
docker-deploy-stack --list --legacy

Installing an unsupported version asks for confirmation.

Upgrading an installed Stack

From the Stack directory (for example /root/stack/python/flask-python3.12-postgres-16/):

bash
./upgrade.sh status
./upgrade.sh plan flask-python3.14-postgres-18
./upgrade.sh apply flask-python3.14-postgres-18
./upgrade.sh rollback
  • plan shows the steps, which are always valid combinations.
  • apply stops the application, backs up the database and applies the steps. After each database step the tables and data are checked.
  • rollback returns to the state before the last upgrade.

Switching between MySQL and MariaDB

It is done through a logical dump and requires confirming with --allow-logical. Database accounts other than the Stack’s own must be created again. There is no engine change between MongoDB, Redis and the SQL databases.

Guide g.0394 · Source version 1 · en