Updating
OpenTraderWorld tells you when a new version is available in Settings → Update app (it checks GitHub). The app cannot update itself by design (it runs without shell or Docker access, to keep the attack surface small), so updates are two commands on the host.
Before you update
- Take a database backup: see Backup & restore.
- Skim the release notes for breaking changes.
Update
From the repository root on the host. Refresh the repo, then pull the new prebuilt images and restart:
git fetch origin
git reset --hard origin/master
docker compose -f deploy/docker-compose.yml -f deploy/docker-compose.images.yml \
--env-file deploy/.env --env-file deploy/network.env \
pull
docker compose -f deploy/docker-compose.yml -f deploy/docker-compose.images.yml \
--env-file deploy/.env --env-file deploy/network.env \
up -dUse git reset --hard, not git pull
Each release is published as a fresh snapshot of the repository, so git pull reports "divergent branches" and fails. git reset --hard origin/master makes your checkout match the new release exactly. Your data and configuration are untouched: they live in Docker volumes and in .env / network.env, which are not tracked by git. If you edited tracked files locally, stash them first (git stash).
Built from source?
If you installed with ./setup.sh --build, update by rebuilding instead:
git fetch origin
git reset --hard origin/master
docker compose -f deploy/docker-compose.yml \
--env-file deploy/.env --env-file deploy/network.env \
up -d --buildThat's it:
- Containers are recreated with the new version and restarted.
- Database migrations run automatically on the new core container's first boot.
- Your data is untouched: it lives in Docker volumes, independent of the images.
The app is briefly offline while containers recreate. The exact commands (with your configured paths) are also shown in Settings → Update app.