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:
docker-deploy-stack --list
To also see the versions the vendor no longer maintains:
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/):
./upgrade.sh status
./upgrade.sh plan flask-python3.14-postgres-18
./upgrade.sh apply flask-python3.14-postgres-18
./upgrade.sh rollback
planshows the steps, which are always valid combinations.applystops the application, backs up the database and applies the steps. After each database step the tables and data are checked.rollbackreturns 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.