Updating

A deployment has two independent updates. Updating one never updates the other.

DataMind OSDataMind Installer
Starts fromStatus → Check for updates → UpdateThe Installer update available pill in the top bar
Deployment offlineYes, while changed services are recreatedNo. Only the DataMind Installer restarts; DataMind OS keeps running
Health checkYou confirm it with docker compose ps -aBuilt in. Waits up to 300 seconds for the new build
RollbackFrom your backupOne automatic rollback of the image. Your database dump covers the schema

Back up before you update

Take both backups in Backup and restore: the DataMind Installer backup, and DataMind OS data. The second one stops the deployment, so plan a maintenance window. A DataMind Installer update can change its database schema, and the dump returns it to the state before the update.

Keep a copy of the deployment's environment file to compare afterwards:

bash
sudo cp /opt/delamain/deployment/.env /root/datamind-env-before-update

Check it worked. sudo ls -l /root/datamind-backup /root/datamind-env-before-update shows today's files.

Update DataMind OS

  1. Open Status and click the Check for updates icon (circular arrow) beside Update. It compares the images on the host with the registry. If nothing is newer, Update stays greyed out with the tooltip DataMind OS is already up to date.
  2. Open Release Notes in the sidebar and read every release you are about to take.
  3. Click Update and confirm.

The job runs three phases:

PhaseWhat it does
DownloadingReplaces deployment/docker-compose.yml and the configuration template with the published ones. Rewrites deployment/.env
PullingPulls every service image. An image that is still missing fails the job with Missing local images: …
ComposingRuns docker compose up -d --pull never --remove-orphans. After a successful run it prunes dangling images

What changes besides the images

ItemWhat happens
Services no longer in the published Compose file--remove-orphans deletes their containers. Their volumes stay
deployment/docker-compose.ymlReplaced. Put local changes in deployment/docker-compose.override.yml, which the DataMind Installer always applies and never writes
Values you edited in ConfigurationKept
Values you never editedMove to the new template's default
Generated values, such as passwordsKept
Keys the new template no longer hasRemoved from Configuration and from .env, even if you edited them

Check it worked.

bash
cd /opt/delamain/deployment && sudo docker compose ps -a

Every long-running service shows Up, with (healthy) where it has a health check. One-shot jobs show Exited (0). None shows Restarting. Running from deployment picks up docker-compose.override.yml.

Then compare the environment file:

bash
sudo diff /root/datamind-env-before-update /opt/delamain/deployment/.env

Ignore the memory-limits block, between the lines that start with # >>> and # <<<: the DataMind Installer recalculates it every time it writes the file. Every other changed or missing line is a value the update moved or removed. Set it again in Configuration, then use Apply changes.

If the update fails

What you seeWhat to do
The job failed during Downloading or PullingFix the cause in the job log, then click Update again. It starts from the beginning
Some services were recreated, others were notClick Start. It recreates the services that were not recreated. If Start is greyed out because images are missing, click Update
A service keeps restarting after a successful jobRead its log from the service panel. See Troubleshooting
You need the previous version backSee Roll back a DataMind OS update

Roll back a DataMind OS update

An update also changes the DataMind Installer's configuration, so a rollback restores both backups you took before the update.

  1. Restore the DataMind Installer backup, as in Restore.
  2. Restore DataMind OS data, as in Restore DataMind OS data.
  3. Pull the images and start, as in Start the deployment.
  4. Check the tags you got back: grep 'image:' docker-compose.yml in deployment/.
  5. Do not click Update until you want the newer release.

Update the DataMind Installer

When a newer build of the DataMind Installer is published, the top bar shows the pill Installer update available.

  1. Take the DataMind Installer backup, as in Back up, steps 1 to 4.
  2. Wait until no job is running. Until then the Update Installer button is disabled.
  3. Click the pill and confirm with Update Installer. The DataMind Installer is unreachable for one to three minutes while it restarts.

What it does

StageWhat happens
PreparationTags the running image rollback, downloads the published Compose file and pulls the new image. If any of this fails, nothing changes, and a toast Couldn’t start the Manager update shows the reason, for example Update preparation failed; nothing has changed: …
SwitchThe update helper container copies docker-compose.yml in the install directory to docker-compose.yml.pre-update, installs the published file and starts the new build. The new build runs its database migrations
Health waitWaits up to 300 seconds for the backend container to report healthy
RollbackIf the new build is not healthy, restores docker-compose.yml.pre-update and starts the rollback image. Waits up to another 300 seconds

The update replaces docker-compose.yml in the install directory and keeps the Installer's .env. It always moves to the newest build on the channel, prod-latest. Leave VERSION unset; see What lives on the host.

Important

Pair the image rollback with your database dump. If the new build migrated the database before the rollback, the DataMind Installer records ROLLED BACK ONTO A CHANGED SCHEMA. Restore the dump from step 1, as in Roll back only the DataMind Installer database.

Check it worked.

The page shows Updating DataMind Installer and reloads itself when the DataMind Installer is back. If it shows Installer update did not finish, read .self-update-status on the host. The result toast appears only in the browser you started the update from.

You seeMeaning
Toast Manager updated to <tag>, and the pill no longer reads Installer update availableThe update worked
Toast Manager update rolled back — still on <tag>, or the pill reads Installer update available againThe new build did not stick and the previous one runs. See Troubleshooting
A red dot on the pill, and the tooltip Last update failed: …The last update failed. The tooltip gives the reason

On the host:

bash
cat /opt/delamain/.self-update-status
curl -sS http://localhost:8000/api/health

.self-update-status reads ok, rolled-back or failed. It keeps the result of the last update that reached the switch, so an update that stopped in Preparation does not change it. The health check answers {"status":"ok","db":"up"}.

Then open User Management on the Register User screen and check the admin badges. Keep the Admin role only on the accounts that administer the deployment, and use Make regular user on the others. See Users.

If the rollback also fails

The DataMind Installer stays down. Read the update helper's log before you try another update:

bash
docker logs delamain-self-updater

Then follow Troubleshooting.

Questions, answered

Can I roll back a DataMind OS update?

Yes, from your backup. See Roll back a DataMind OS update.

Why did a setting disappear after an update?

The new configuration template no longer has that key, so the update removed it, even if you edited it. Compare against the copy of deployment/.env you saved before the update.

Can I pin the DataMind Installer to a version?

Leave VERSION unset and update from the pill. See What lives on the host.